我对Kubernetes和群集很新,所以这可能非常简单。
我在this guide之后使用kubeadm
设置了一个包含5个节点的Kubernetes群集。我遇到了一些问题,但最终都有效。所以现在我要安装Web UI (Dashboard)。为此,我需要设置身份验证:
请注意,仅当apiserver设置为允许使用用户名和密码进行身份验证时,此功能才有效。对于一些设置工具(例如,kubeadm),目前不是这种情况。有关如何手动配置身份验证的信息,请参阅身份验证管理员文档。
所以我得阅读文档的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
我有几个问题:
答案 0 :(得分:7)
public Form1()
{
ServiceReference1.Service1Client s1 = new ServiceReference1.Service1Client();
Person p1 = s1.GetPerson();
}
中的是一个名为/etc/kubernetes/manifests
的文件。这是一个JSON文件,包含您可以设置的所有选项。我已添加kube-apiserver.json
并重新启动了系统(文件--basic-auth-file=SOMEFILE
更改后不再工作且API已关闭)
重新启动后,整个系统再次运行。
我没有设法使用此功能运行仪表板。我最后做的是在集群上安装仪表板。将密钥从主节点(/etc/kubernetes/admin.conf)复制到我的笔记本电脑,并kubectl
将仪表板的流量代理到我的本地计算机。现在我可以通过127.0.0.1:8001/ui
答案 1 :(得分:3)
我只是在类似的用例中发现了这一点,并且在添加带有文件路径的Option之后,API服务器崩溃了。
我能够解决它,也许这对其他人也有帮助:
如https://kubernetes.io/docs/reference/setup-tools/kubeadm/implementation-details/#constants-and-well-known-values-and-paths中所述,/etc/kubernetes/manifests
中的文件是静态容器定义。因此,容器规则适用。
因此,如果您添加带有文件路径的选项,请确保对具有hostPath卷的Pod可用。