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