我正在遵循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相比,我注意到了一些问题:
当我尝试到达这些端点时,我立即得到“未经授权”,而api甚至没有挑战我的用户名密码
那么如何为我新创建的集群设置基本身份验证?还是有办法使用.pem证书登录?
感谢。
答案 0 :(得分:3)
CoreOS-kubernetes工具旨在部署功能完善的Kubernetes集群,但将可选/插件应用程序作为集群管理员的决策。在这种情况下,kibana&对于功能完备的群集,并不严格要求使用grafana - 因此默认情况下不会部署它们。
与身份验证类似,默认情况下不启用basic-auth(基于证书的auth和Bearer令牌)。但是,您应该能够通过创建文件和向api-server清单添加标志来添加基本身份验证:
按照此处所述的格式创建基本身份验证文件:http://kubernetes.io/docs/admin/authentication
在/etc/kubernetes/manifests/kube-apiserver.yaml
中,添加指向您在上面创建的文件的标记--basic-auth-file=SOMEFILE
当你对kube-apiserver.yaml
清单进行更改时,kubelet会看到更改自动重启pod。如果您在多台主机上运行apiservers,请务必对每台主机进行上述更改。
另一种选择是使用kubectl proxy
命令首先针对您的api-server进行身份验证。请参阅:http://kubernetes.io/docs/user-guide/connecting-to-applications-proxy - 实际上kubectl代理将进行身份验证,然后允许您在计算机上本地访问端点。