使用不同选项重新启动Kubernetes API服务器

时间:2017-01-10 10:17:25

标签: authentication kubernetes kubectl kubeadm

我对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

我有几个问题:

  • 那么所有这些选项都设置在哪里?
  • 我可以直接杀死此进程并使用我需要的选项重新启动它吗?
  • 重新启动系统时会启动吗?

2 个答案:

答案 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可用。