为 heapster 提供身份验证以连接到 GKE 中的安全 kube API 服务器

Provide authentication for heapster to connect to secured kube API server in GKE

我正在尝试在集群中部署 heapster 并收集指标并将其存储在 Influxdb 中。我可以为 Influxdb 提供 sink。但我不确定如何为 --source 标志提供值以连接到 secured kube API server。谁能帮我查一下。

Note: I am trying to deploy heapster in the same cluster where the kube API server is running.

提前致谢。

我使用带参数的heapster

--source=kubernetes:http://kubernetes.default?inClusterConfig=false&insecure=true&auth=/etc/kubernetes/admin.conf

  • inClusterConfig=false 表示我没有在集群中使用 serviceaccount。
  • insecure=true表示我信任这个集群中的ApiServer。
  • 最重要的是,auth=/etc/kubernetes/admin.conf 是尝试连接到 ApiServer 时的身份验证配置,这与您 kubectl/kubelet 使用的 kubeconfig 相同。您可以使用 Configmap 或普通卷将此配置安装到 heapster pod 中。

更多源码配置,可参考here

我找到了解决办法。我使用的参数是

--source=kubernetes:https://masterIP?auth=/var/lib/kube-proxy/kubeconfig&apiVersion=v1

--sink=influxdb:http://influxdbIP:8086?user=xxx&pw=xxx&db=xxx

我将 /var/lib/kube-proxy/kubeconfig 安装到 kube-proxy 使用的 heapster 容器,现在 heapster 可以与安全的 API 服务器通信。 另外,我将 heapster 图像更改为 gcr.io/google_containers/heapster:v1.2.0

Note: InfluxDB must be of the latest version in order to make this work. I am using v1.2

我不确定这是不是正确的方法。但它对我有用。

谢谢大家的回复。