Kubernetes 重命名集群

Kubernetes 重命名集群

Kubernetes 新手。如何在 kubeadm init 之后重命名集群。默认集群名称是 kubenetes,我想将其重命名为更有意义的名称。搜索了所有地方,找不到任何说明。谢谢!

答案1

正如你所读到的这里

在 期间kubeadm init,kubeadm 将对象上传到命名空间中 ClusterConfiguration 名为 的 ConfigMap 中的集群。然后在、和期间读取此配置 。要查看此 ConfigMap,请调用。kubeadm-configkube-systemkubeadm joinkubeadm resetkubeadm upgradekubeadm config view

除此之外,kubeadm config view您还可以使用kubectl get configmaps -n kube-system kubeadm-config -o yaml它来查看此内容ConfigMap

只需编辑即可更改 kubernetes 集群名称 kubeadm-config ConfigMap使用以下命令:

kubectl edit configmaps -n kube-system kubeadm-config

改变字段的值clusterName例如:

clusterName: new-fancy-kubernetes-clustername

保存文件更改后,您将看到编辑成功的确认:

configmap/kubeadm-config edited

现在您可以使用命令查看新的集群名称kubeadm config view

# kubeadm config view
...
clusterName: new-fancy-kubernetes-clustername
...

或者这样:

# kubectl get configmaps -n kube-system kubeadm-config -o yaml
...
    clusterName: new-fancy-kubernetes-clustername
...

kubectl你的角度来看kubernetes 集群可以与 中的命名完全不同kubeadm-config ConfigMap。它们是独立配置的。实际上,在.kube/config文件中,您可以引用您的clusters您可以使用任何您想要的名称,但您需要在部分中进行更改contexts。请看下面的示例:

apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: ...
    server: https://10.123.0.2:6443
  name: yet-another-fancy-name
contexts:
- context:
    cluster: yet-another-fancy-name
    user: kubernetes-admin
  name: kubernetes-admin@kubernetes
current-context: kubernetes-admin@kubernetes
kind: Config
preferences: {}
users:
- name: kubernetes-admin
  user:
    client-certificate-data: ...

您可能还想更改上下文名称以反映当前集群名称,但您不必这样做。您可以只是为了保持一致性而这样做:

contexts:
- context:
    cluster: yet-another-fancy-name
    user: kubernetes-admin
  name: kubernetes-admin@yet-another-fancy-name
current-context: kubernetes-admin@yet-another-fancy-name

答案2

我遇到过类似的情况,需要远程管理两个集群,因此我决定使用库贝克工具。我使用的是 kubectx 0.9.4 版本。

我创建了一个.bash_配置文件文件(我没有)并添加库贝康菲指向我的集群的两个配置文件的变量。我的集群是使用kubeadm最初创建时没有指定具体名称。这在尝试使用 kubectx 时产生了问题,因为当我使用 kubectx 时,它只显示一个集群。

为了解决这个问题,我必须更改上下文块中的上下文名称

- context:
    cluster: new-name
    user: kubernetes-admin
  name: kubernetes-admin@new-name
current-context: kubernetes-admin@new-name

然后 kubectx 就可以列出我的两个集群。

相关内容