Kubernetes 仪表板未经授权。如何配置
Kubernetes Dashboards are unauthorised. how to configure
我正在按照 Coreos Kubernetes on AWS 的教程(我需要一个 Cloudformation 模板)在我现有的 VPC 中创建一个 Kubernetes。
一切都已正确配置并且集群已成功设置,但我遇到了 Heapster/KubeDNS
方面的困难
我的集群信息和配置视图如下所示:
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
与 getting started guides from kubernetes.io 相比,我注意到了一些问题:
- 缺少所有 "out of the box" 服务,例如 Kibana/Grafana(但您可以自行安装)
- 没有 "user" 用于进入控制面板的用户名和密码部分,只有一个带有证书
同样,当我尝试到达这些端点时,我立即得到 "unauthorised" 并且 api 甚至没有向我询问用户名密码
那么如何为我新创建的集群设置基本身份验证或者有没有办法使用 .pem 证书登录?
谢谢。
CoreOS-kubernetes 工具旨在部署功能齐全的 Kubernetes 集群,但将可选/附加应用程序保留为集群管理员的决定。在这种情况下,kibana 和 grafana 并不是功能齐全的集群所必需的——因此默认情况下不会部署它们。
与身份验证类似,默认情况下不启用基本身份验证(基于证书的身份验证和 Bearer 令牌)。但是,您应该能够通过创建文件并向 api-server 清单添加标志来添加基本身份验证:
按照此处描述的格式创建基本授权文件:http://kubernetes.io/docs/admin/authentication
在/etc/kubernetes/manifests/kube-apiserver.yaml
中添加一个标志,指向您在上面创建的文件--basic-auth-file=SOMEFILE
当您对 kube-apiserver.yaml
清单进行更改时,kubelet 将看到更改并自动重启 pod。如果您是 运行 api 多个主机上的服务器,请务必对每个主机进行上述更改。
另一种选择是使用 kubectl proxy
命令首先对您的 api 服务器进行身份验证。请参阅:http://kubernetes.io/docs/user-guide/connecting-to-applications-proxy - 本质上,kubectl 代理将进行身份验证,然后允许您在计算机上本地访问端点。
我正在按照 Coreos Kubernetes on AWS 的教程(我需要一个 Cloudformation 模板)在我现有的 VPC 中创建一个 Kubernetes。
一切都已正确配置并且集群已成功设置,但我遇到了 Heapster/KubeDNS
方面的困难我的集群信息和配置视图如下所示:
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
与 getting started guides from kubernetes.io 相比,我注意到了一些问题:
- 缺少所有 "out of the box" 服务,例如 Kibana/Grafana(但您可以自行安装)
- 没有 "user" 用于进入控制面板的用户名和密码部分,只有一个带有证书
同样,当我尝试到达这些端点时,我立即得到 "unauthorised" 并且 api 甚至没有向我询问用户名密码
那么如何为我新创建的集群设置基本身份验证或者有没有办法使用 .pem 证书登录?
谢谢。
CoreOS-kubernetes 工具旨在部署功能齐全的 Kubernetes 集群,但将可选/附加应用程序保留为集群管理员的决定。在这种情况下,kibana 和 grafana 并不是功能齐全的集群所必需的——因此默认情况下不会部署它们。
与身份验证类似,默认情况下不启用基本身份验证(基于证书的身份验证和 Bearer 令牌)。但是,您应该能够通过创建文件并向 api-server 清单添加标志来添加基本身份验证:
按照此处描述的格式创建基本授权文件:http://kubernetes.io/docs/admin/authentication
在
/etc/kubernetes/manifests/kube-apiserver.yaml
中添加一个标志,指向您在上面创建的文件--basic-auth-file=SOMEFILE
当您对 kube-apiserver.yaml
清单进行更改时,kubelet 将看到更改并自动重启 pod。如果您是 运行 api 多个主机上的服务器,请务必对每个主机进行上述更改。
另一种选择是使用 kubectl proxy
命令首先对您的 api 服务器进行身份验证。请参阅:http://kubernetes.io/docs/user-guide/connecting-to-applications-proxy - 本质上,kubectl 代理将进行身份验证,然后允许您在计算机上本地访问端点。