我对 Kubernetes 和集群很陌生,所以这可能非常简单。
我使用 kubeadm
设置了一个具有 5 个节点的 Kubernetes 集群关注 this guide .我遇到了一些问题,但最终都奏效了。所以现在我想安装Web UI (Dashboard) .为此,我需要设置身份验证:
Please note, this works only if the apiserver is set up to allow authentication with username and password. This is not currently the case with the some setup tools (e.g., kubeadm). Refer to the authentication admin documentation for information on how to configure authentication manually.
所以我必须阅读 authentication page的文档。我决定通过 Static Password File 添加身份验证.为此,我必须附加选项
--basic-auth-file=SOMEFILE
到 Api 服务器。当我这样做时
ps -aux | grep kube-apiserver
这是结果,所以它已经在运行。 (这是有道理的,因为我在调用 kubectl
时使用它)kube-apiserver
--insecure-bind-address=127.0.0.1
--admission-control=NamespaceLifecycle,LimitRanger,ServiceAccount,PersistentVolumeLabel,DefaultStorageClass,ResourceQuota
--service-cluster-ip-range=10.96.0.0/12
--service-account-key-file=/etc/kubernetes/pki/apiserver-key.pem
--client-ca-file=/etc/kubernetes/pki/ca.pem
--tls-cert-file=/etc/kubernetes/pki/apiserver.pem
--tls-private-key-file=/etc/kubernetes/pki/apiserver-key.pem
--token-auth-file=/etc/kubernetes/pki/tokens.csv
--secure-port=6443
--allow-privileged
--advertise-address=192.168.1.137
--kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname
--anonymous-auth=false
--etcd-servers=http://127.0.0.1:2379
我有几个问题:
最佳答案
在 /etc/kubernetes/manifests
是一个名为 kube-apiserver.json
的文件.这是一个 JSON 文件,包含您可以设置的所有选项。我已经附加了 --basic-auth-file=SOMEFILE
并重新启动系统(在文件更改后 kubectl
不再工作并且 API 已关闭)
重新启动后,整个系统再次工作。
更新
我没有设法使用它运行仪表板。我最后做的是在集群上安装仪表板。将 key 从主节点 (/etc/kubernetes/admin.conf) 复制到我的笔记本电脑并做了 kubectl proxy
将仪表板的流量代理到我的本地机器。现在我可以通过 127.0.0.1:8001/ui 在我的笔记本电脑上访问它
关于authentication - 使用不同的选项重新启动 Kubernetes API 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41566408/