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

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

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?


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

查看所有标签

猜你喜欢:

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

爆品手记

爆品手记

金错刀 / 中国友谊出版公司 / 2016-9-20 / 39.80

互联网时代,一切都被颠覆。 B2B、B2C、O2O等商业模式的建立,对传统企业构成了巨大冲击。人们的生意往来逐渐从线下转移到了线上,传统的定位理论逐渐失效,依靠爆品引爆市场才是王道;传统企业经营多年的渠道营销模式正遭遇前所未有的阻力,网上商城正成为众多商家角逐血拼的主要战场。 在互联网的黑暗森林里,一切传统的商业模式统统失效,一场依靠爆品点燃市场、引爆市场、占据市场的营销革命正悄然兴起......一起来看看 《爆品手记》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

在线进制转换器
在线进制转换器

各进制数互转换器

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具