如何在单节点 K8s 节点上更改主机名

如何在单节点 K8s 节点上更改主机名

环境:

操作系统:Ubuntu 18.04.5 LTS
Kubernetes:v1.16.15
部署工具:kubeadm v1.16.15

我使用以下配置在工作站上初始化单节点 K8s:

---
apiVersion: kubeadm.k8s.io/v1beta2
kind: ClusterConfiguration
kubernetesVersion: v1.16.15
imageRepository: k8s.gcr.io
clusterName: kubernetes
controlPlaneEndpoint: HOSTNAME-01
networking:
  dnsDomain: cluster.local
  podSubnet: 10.244.0.0/16
  serviceSubnet: 10.96.0.0/12
apiServer:
  certSANs:
    - HOSTNAME-01
  extraArgs:
    advertise-address: 0.0.0.0
    authorization-mode: Node,RBAC
  timeoutForControlPlane: 4m0s
---
apiVersion: kubeadm.k8s.io/v1beta2
kind: InitConfiguration
nodeRegistration:
  name: HOSTNAME-01

我想将主机名从主机名-01主机名-02,并将设置应用到我的工作站和 K8s 集群。

除了重置集群之外,有没有更好的方法?

答案1

欢迎加入社区!

答案很简单——重置然后重新初始化集群是实现此目标的最快和最简单的方法。我无法使用其他方法做到这一点。仅更改主机名会导致集群尚未准备好。

同样,如果工作节点的主机名发生更改,则kubeadm需要重置。这在StackOverflow 上的好帖子或者有一个例子视频如何使用--hostname-override工作节点。

有可能通过停止集群并手动编辑etcd、重新生成证书和其他更改来实现这一点。此外,没有这方面的教程,也不能保证它会成功。

另外还有备份/迁移解决方案,例如velero.io可用于集群迁移

PS 我还建议将集群版本至少更新到 1.19。这里是如何做到的。

相关内容