k8s集群更改IP的相关问题解决

栏目: IT技术 · 发布时间: 5年前

k8s学习过程中遇到的几个问题,也供大家参考一下~

1、k8s集群更换IP地址导致相关问题

学习k8s时,已经搭建好了k8s集群,因为之前使用的koolshare软路由模拟内网环境,后换成nat模式之后更改了k8s节点的IP地址,导致出现问题:

Unable to fetch the kubeadm-config ConfigMap from cluster: failed to get config map: Get https://192.168.10.10:6443/api/v1/namespaces/kube-system/configmaps/kubeadm-config : dial tcp 192.168.10.10:6443: connect: connection refused

k8s集群更改IP的相关问题解决

对于我来说,本来就是初接触,肯定是不想再经历一遍搭建的过程,所以:

① 修改/etc/kubernetes/文件夹里的*.conf文件,把这些文件中有旧IP的地方全都替换成你的新IP

k8s集群更改IP的相关问题解决

② 修改$HOME/.kube/config文件,同样将旧的IP地址修改为新的IP地址

k8s集群更改IP的相关问题解决

③ cd $HOME/.kube/cache/discovery/,这里应该有个子文件夹名字是“旧IP地址_6443”(如127.0.0.1_6443),把这个文件夹名字里的IP改成你新IP

k8s集群更改IP的相关问题解决

④ 备份旧证书

# mv /etc/kubernetes/pki/apiserver.key /etc/kubernetes/pki/apiserver.key.old
# mv /etc/kubernetes/pki/apiserver.crt /etc/kubernetes/pki/apiserver.crt.old
# mv /etc/kubernetes/pki/apiserver-kubelet-client.crt /etc/kubernetes/pki/apiserver-kubelet-client.crt.old
# mv /etc/kubernetes/pki/apiserver-kubelet-client.key /etc/kubernetes/pki/apiserver-kubelet-client.key.old
# mv /etc/kubernetes/pki/front-proxy-client.crt /etc/kubernetes/pki/front-proxy-client.crt.old
# mv /etc/kubernetes/pki/front-proxy-client.key /etc/kubernetes/pki/front-proxy-client.key.old

k8s集群更改IP的相关问题解决

⑤ 更改kubeadm-config.yaml中的IP地址

因为我是指定从kubeadm-config.yaml配置文件初始化安装,所以我需要更改kubeadm-config.yaml中的IP地址( 如未则不需 )

k8s集群更改IP的相关问题解决

⑥ 尝试初始化集群

# kubeadm init --config=kubeadm-config.yaml --upload-certs | tee kubeadm-init.log

k8s集群更改IP的相关问题解决

这时候就会报错,端口已使用,文件已存在等问题

 [ERROR Port-10251]: Port 10251 is in use  [ERROR Port-10252]: Port 10252 is in use  [ERROR FileAvailable--etc-kubernetes-manifests-kube-apiserver.yaml]: /etc/kubernetes/manifests/kube-apiserver.yaml already exists  [ERROR FileAvailable--etc-kubernetes-manifests-kube-controller-manager.yaml]: /etc/kubernetes/manifests/kube-controller-manager.yaml already exists  [ERROR FileAvailable--etc-kubernetes-manifests-kube-scheduler.yaml]: /etc/kubernetes/manifests/kube-scheduler.yaml already exists  [ERROR FileAvailable--etc-kubernetes-manifests-etcd.yaml]: /etc/kubernetes/manifests/etcd.yaml already exists  [ERROR Port-10250]: Port 10250 is in use  [ERROR Port-2379]: Port 2379 is in use  [ERROR Port-2380]: Port 2380 is in use  [ERROR DirAvailable--var-lib-etcd]: /var/lib/etcd is not empty

这个问题可以使用reset命令解决(所有节点):

# kubeadm reset

运行这条命令将会还原当前节点上 kubeadm init 或者 kubeadm join 所做的所有更改。且如果使用外部 etcd,kubeadm reset 将不会删除任何 etcd 数据。这意味着如果再次使用相同的 etcd 节点运行 kubeadm init,你将看到以前的集群状态。

k8s集群更改IP的相关问题解决

⑦ 重新初始化集群

k8s集群更改IP的相关问题解决

k8s集群更改IP的相关问题解决

此时初始化成功

重新初始化成功之后尝试获取node状态(遇到以下问题,其实不单get命令,所有命令都会报下面这个错误):

2、Unable to connect to the server: x509: certificate signed by unknown authority

k8s集群更改IP的相关问题解决

① 删除目录

重新创建集群时,用户家目录下的.kube这个目录还是存在的,我们先删除它

# rm -rf $HOME/.kube

② 然后执行以下步骤:

# mkdir -p $HOME/.kube
# cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
# chown $(id -u):$(id -g) $HOME/.kube/config

问题解决!

k8s集群更改IP的相关问题解决

接下来的flanel、node节点的加入就不再说了(node节点也得reset,然后重新加入集群)

第三个问题是因为没有 拷贝集群管理员的配置文件到 .kube 这个目录下

3、The connection to the server localhost:8080 was refused - did you specify the right host or port?


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Learning Processing

Learning Processing

Daniel Shiffman / Morgan Kaufmann / 2008-08-15 / USD 49.95

Book Description Teaches graphic artists the fundamentals of computer programming within a visual playground! Product Description This book introduces programming concepts in the context of c......一起来看看 《Learning Processing》 这本书的介绍吧!

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具