如何在Google Container VM映像中安装Stackdriver监控代理?

时间:2016-10-05 01:46:53

标签: google-kubernetes-engine stackdriver google-container-os

我遵循了这条指令 https://cloud.google.com/monitoring/agent/install-agent#linux-install

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

/ etc / os-release的内容。

$ 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

  

为了更新特定包,需要更新整个操作系统映像

所以,似乎我们必须等到更新堆栈驱动程序代理安装的映像版本或放弃它。

此vm图像也不是我的选择。默认情况下,新创建的GKE节点使用Container-VM映像。所以现在我将尝试通过gcloud container node-pools create --image-type

创建节点

4 个答案:

答案 0 :(得分:5)

据我所知(以及Google已向我确认的内容),新的Chromium操作系统映像目前不支持Stackdriver代理。作为一种解决方法,我使用以下命令将节点池升级回'container-vm'(具有Debian映像):

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

替换群集名称并将节点池名称设置为之前升级为gci的名称(在我的情况下为“default-pool”)。节点版本将升级到最新版本。但是,您可以添加一个选项来部署另一个版本。

您现在应该可以像以前一样安装Stackdriver代理并设置所需的自定义指标。

答案 1 :(得分:5)

您可以在Container OS VM实例上启用Stackdriver Monitoring Agent,只需运行此命令(然后重新启动)即可启用监视代理程序:

gcloud compute instances add-metadata instance-name --metadata=google-monitoring-enabled=true

答案 2 :(得分:2)

我能够解决代理与新Chromium映像不兼容的问题的方法是将代理部署为以特权模式运行的容器(方便地已经构建:https://github.com/wikiwi/stackdriver-agent)一个kubernetes DaemonSet,所以它在每个主机上运行。这是我最终使用的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

答案 3 :(得分:1)

您可以

sudo systemctl start stackdriver-logging
sudo systemctl start stackdriver-monitoring

它将在代理运行时启动一些容器。几分钟后,数据将显示在您的stackdriver仪表板中。

我在任何地方都没有找到文档,因此我无法确定在哪些图像中完全可用。但我在Container-Optimized OS 77-12371.114.0 stable

中对其进行了测试