如何禁用heapster的安全性?

How to disable heapster's security?

在我的 k8s 集群中安装 heapster 后,出现以下错误:

2016-04-09T16:08:27.437604037Z I0409 16:08:27.433278       1 heapster.go:60] /heapster --source=kubernetes:https://kubernetes.default --sink=influxdb:http://monitoring-influxdb:8086
2016-04-09T16:08:27.437781968Z I0409 16:08:27.433390       1 heapster.go:61] Heapster version 1.1.0-beta1
2016-04-09T16:08:27.437799021Z F0409 16:08:27.433556       1 heapster.go:73] Failed to create source provide: open /var/run/secrets/kubernetes.io/serviceaccount/token: no such file or directory

安全性对我的演示来说是低优先级;所以我想先禁用它。我的 apiserver 也没有启用安全性。有什么建议吗?

  1. 使用“--admission_control=ServiceAccount”启动 apiserver,因此它将为默认服务帐户创建秘密(使用 kubernetes 1.2 测试)
  2. 使用 "http" 而不是 "https" 以避免安全问题

注意:它仅用于演示该功能;不能用于生产。

查看 heapster 文档,其中描述了如何在没有安全保护的情况下配置源:

https://github.com/kubernetes/heapster/blob/master/docs/source-configuration.md

--source=kubernetes:http://<YOUR_API_SERVER>?inClusterConfig=false

不确定这是否适用于您的设置,但它适用于此处(前提是 kubernetes 安装;不涉及 gcp :))。

最良好的祝愿, 马蒂亚斯

如果您没有为 API 服务器启用 https,您可能会看到此错误。查看 Matthias 的官方指南答案。下面是我使用的 Heapster 复制控制器的 YAML 文件。将 api 服务器 ip 和端口替换为您的。

apiVersion: v1
kind: ReplicationController
metadata:
  labels:
    k8s-app: heapster
    name: heapster
    version: v6
  name: heapster
  namespace: kube-system
spec:
  replicas: 1
  selector:
    k8s-app: heapster
    version: v6
  template:
    metadata:
      labels:
        k8s-app: heapster
        version: v6
    spec:
      containers:
      - name: heapster
        image: kubernetes/heapster:canary
        imagePullPolicy: Always
        command:
        - /heapster
        - --source=kubernetes:http://<api server ip>:<port>?inClusterConfig=false
        - --sink=influxdb:http://monitoring-influxdb:8086