Kubernetes仪表盘未经授权。如何配置

Kubernetes仪表盘未经授权。如何配置,kubernetes,coreos,Kubernetes,Coreos,我正在按照Coreos的教程(我需要一个Cloudformation模板)在我已经存在的VPC中创建Kubernetes 一切都已正确配置,群集已成功安装,但我在使用Heapster/KubeDNS时遇到了困难 我的群集信息和配置视图如下所示: 因此,我注意到,与 所有“开箱即用”的服务,如Kibana/Grafana都丢失了(但这些您可能可以自己安装) 没有带有用户名和密码的“用户”部分可进入仪表板,只有一个具有证书 当我试图到达这些端点时,我会立即得到“未授权”,api甚至不会向我询问用户名

我正在按照Coreos的教程(我需要一个Cloudformation模板)在我已经存在的VPC中创建Kubernetes

一切都已正确配置,群集已成功安装,但我在使用Heapster/KubeDNS时遇到了困难

我的群集信息和配置视图如下所示:

因此,我注意到,与

  • 所有“开箱即用”的服务,如Kibana/Grafana都丢失了(但这些您可能可以自己安装)
  • 没有带有用户名和密码的“用户”部分可进入仪表板,只有一个具有证书
  • 当我试图到达这些端点时,我会立即得到“未授权”,api甚至不会向我询问用户名和密码

    那个么,我如何为新创建的集群设置基本身份验证,或者是否有一种使用.pem证书登录的方法


    谢谢

    CoreOS kubernetes工具旨在部署功能齐全的kubernetes集群,但将可选/附加应用程序留给集群管理员决定。在这种情况下,kibana和grafana对于一个功能齐全的集群不是严格要求的——因此默认情况下不会部署它们

    与身份验证类似,默认情况下不启用基本身份验证(使用基于证书的身份验证和承载令牌)。但是,您应该能够通过创建文件和向api服务器清单添加标志来添加基本身份验证:

    • 按照此处描述的格式创建基本身份验证文件:

    • /etc/kubernetes/manifests/kube apiserver.yaml
      中,添加一个指向您在上面创建的文件的标志
      --basic auth file=SOMEFILE

    当您对
    kube-apiserver.yaml
    清单进行更改时,kubelet将看到更改并自动重新启动pod。如果您在多台主机上运行APIServer,请确保对每台主机进行上述更改

    另一个选项是使用
    kubectl proxy
    命令首先对api服务器进行身份验证。请参阅:-基本上kubectl代理将进行身份验证,然后允许您在计算机上本地访问端点。

    当我尝试连接到127.0.0.1:9999时,Chrome使用
    kubectl代理--port=9999
    ,告诉我“此站点无法提供安全连接”。curl说:
    $curl-vhttps://127.0.0.1:9999/api/v1/proxy/namespaces/kube-system/services/kubernetes dashboard curl:(35)连接到127.0.0.1时出现未知SSL协议错误:-9847
    知道原因吗?
    kubectl --kubeconfig=kubeconfig cluster-info
    Kubernetes master is running at https://my-cluster-endpoint.company.com.
    Heapster is running at https://my-cluster-endpoint.company.com./api/v1/proxy/namespaces/kube-system/services/heapster
    KubeDNS is running at https://my-cluster-endpoint.company.com./api/v1/proxy/namespaces/kube-system/services/kube-dns
    
    kubectl --kubeconfig=kubeconfig config view
    apiVersion: v1
    clusters:
    - cluster:
        certificate-authority: credentials/ca.pem
        server: https://my-cluster-endpoint.company.com.
      name: kube-aws-my-cluster-name-cluster
    contexts:
    - context:
        cluster: kube-aws-my-cluster-name-cluster
        namespace: default
        user: kube-aws-my-cluster-name-admin
      name: kube-aws-my-cluster-name-context
    current-context: kube-aws-my-cluster-name-context
    kind: Config
    preferences: {}
    users:
    - name: kube-aws-my-cluster-name-admin
      user:
        client-certificate: credentials/admin.pem
        client-key: credentials/admin-key.pem