【发布时间】:2021-08-27 07:28:59
【问题描述】:
我创建了一个由 k0s 在 aws ec2 实例上安装的 k8s。为了更快地交付新集群,我尝试为它制作一个 AMI。
但是我启动了一个新的ec2实例,内部IP变了,节点变成了NotReady
ubuntu@ip-172-31-26-46:~$ k get node
NAME STATUS ROLES AGE VERSION
ip-172-31-18-145 NotReady <none> 95m v1.21.1-k0s1
ubuntu@ip-172-31-26-46:~$
可以重新配置吗?
解决方法
我找到了使 AWS AMI 正常工作的解决方法
简答
- 使用 kubelet 的
--extra-args安装节点 - 更新 kube-api 到新 IP 并重启 kubelet
详情 :: 1
在 kubernete 集群中,kubelet 扮演节点代理节点。它会告诉kube-api“嘿,我在这里,我叫XXX”。
节点的名称是它的主机名,创建后不能更改。可以通过--hostname-override设置。
如果不更改节点名,kube-api 会尝试使用主机名,然后出现 old-node-name not found 导致的错误。
详情 :: 2
到k0s,它把kubelet的KUBECONFIG放到/var/lib/k0s/kubelet.conf里面,有一个kubelet api server位置
server: https://172.31.18.9:6443
为了连接一个新的 kube-api 位置,请更新它
【问题讨论】:
标签: kubernetes k0s