5

我跟着這個指令 https://cloud.google.com/monitoring/agent/install-agent#linux-install如何在Google Container VM映像中安裝Stackdriver監控代理?

$ curl -O "https://repo.stackdriver.com/stack-install.sh" 
$ sudo bash stack-install.sh --write-gcm 
Unidentifiable or unsupported platform. 

的/ etc/OS-版本的內容。

$ cat /etc/os-release 
BUILD_ID=8820.0.0 
NAME="Container-VM Image" 
GOOGLE_CRASH_ID=Lakitu 
VERSION_ID=55 
BUG_REPORT_URL=https://crbug.com/new 
PRETTY_NAME="Google Container-VM Image" 
VERSION=55 
GOOGLE_METRICS_PRODUCT_ID=26 
HOME_URL="https://cloud.google.com/compute/docs/containers/vm-image/" 
ID=gci 

https://cloud.google.com/compute/docs/containers/vm-image/faq#what_is_the_software_package_manager_for_container-vm_image

爲了更新一個特定的包,整個OS圖像需要被

所以更新,看來我們必須等到更新了爲Stackdriver劑安裝版本的圖像或放棄。

此外,這個VM鏡像不是我的選擇。新創建的GKE節點默認使用Container-VM映像。所以現在我會嘗試通過gcloud container node-pools create --image-type

+0

在GCE默認圖像上,節點已經安裝了stackdriver。或者至少他們有一個流利的記錄器,轉發的東西谷歌/ stackdriver –

+1

真的嗎?由於堆棧驅動程序仍處於測試階段,因此它們沒有預先安裝代理程序。我曾問過一次雲服務支持問題。如果代理未安裝,我們無法監視內存使用情況。 – hiroshi

+1

我看到了,也許不是內存..但是我看到日誌從kubernetes應用程序在stackdriver日誌無需任何操作。你在使用GKE嗎? –

回答

5

創建節點據我所知(以及已被谷歌向我證實),新的Chromium OS映像目前不支持爲Stackdriver劑。

$ gcloud container clusters upgrade YOUR_CLUSTER_NAME --image-type=container_vm --node-pool=YOUR_NODE_POOL 

替換簇名稱和節點池的名稱設置爲其中一個是:作爲一種變通方法我通過使用下面的命令升級的節點池回「容器-VM」(其具有的Debian圖像)之前升級到gci(在我的情況下'默認池')。節點版本將升級到最新版本。但是,您可以添加一個選項來部署另一個版本。

您現在應該可以像您習慣的那樣安裝Stackdriver代理並設置您所需的自定義指標。

+0

謝謝。我做了同樣的解決方法。 – hiroshi

2

我能夠解決代理與新Chromium映像不兼容的問題的方式是將代理部署爲在kubernetes DaemonSet中以特權模式運行的容器(方便地已經構建:https://github.com/wikiwi/stackdriver-agent),因此它在每個主機。這裏是我最終使用的YAML:

apiVersion: extensions/v1beta1 
kind: DaemonSet 
metadata: 
    name: stackdriver-agent 
spec: 
    template: 
    metadata: 
     labels: 
     app: stackdriver-agent 
    spec: 
     containers: 
     - name: stackdriver-agent 
     image: wikiwi/stackdriver-agent 
     securityContext: 
      privileged: true 
     volumeMounts: 
     - mountPath: /mnt/proc 
      name: procmnt 
     env: 
      - name: MONITOR_HOST 
      value: "true" 
     volumes: 
     - name: procmnt 
     hostPath: 
      path: /proc 
相關問題