14

我对 Kubernetes 和集群还很陌生,所以这可能很简单。

kubeadm我按照本指南设置了一个具有 5 个节点的 Kubernetes 集群。我遇到了一些问题,但最终都奏效了。所以现在我想安装Web UI (Dashboard)。为此,我需要设置身份验证:

请注意,这仅在 apiserver 设置为允许使用用户名和密码进行身份验证时才有效。某些设置工具(例如,kubeadm)目前不是这种情况。有关如何手动配置身份验证的信息,请参阅身份验证管理文档。

所以我必须阅读文档的身份验证页面。我决定要通过静态密码文件添加身份验证。为此,我必须将选项附加--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

我有几个问题:

  • 那么所有这些选项设置在哪里呢?
  • 我可以杀死这个过程并使用我需要的选项重新启动它吗?
  • 当我重新启动系统时它会启动吗?
4

2 回答 2

10

in/etc/kubernetes/manifests是一个名为kube-apiserver.json. 这是一个 JSON 文件,包含您可以设置的所有选项。我已附加--basic-auth-file=SOMEFILE并重新启动系统(在文件更改kubectl不再起作用并且 API 已关闭之后)

重新启动后,整个系统再次工作。

更新

我没有设法使用它来运行仪表板。我最后做的是在集群上安装仪表板。将密钥从主节点 (/etc/kubernetes/admin.conf) 复制到我的笔记本电脑,kubectl proxy并将仪表板的流量代理到我的本地计算机。现在我可以在我的笔记本电脑上通过 127.0.0.1:8001/ui 访问它

于 2017-01-10T11:26:07.460 回答
3

我刚刚发现了一个类似的用例,并且在添加带有文件路径的选项后 API 服务器崩溃了。

我能够解决它,也许这对其他人也有帮助:

https://kubernetes.io/docs/reference/setup-tools/kubeadm/implementation-details/#constants-and-well-known-values-and-paths中所述,其中的文件/etc/kubernetes/manifests是静态 pod 定义。因此容器规则适用。

因此,如果您添加带有文件路径的选项,请确保将其提供给带有 hostPath 卷的 pod。

于 2020-06-05T20:52:49.310 回答