kubernetes更换master的ip
记录一下之前更换 kubeadm init
通过 --apiserver-advertise-address
设置的ip的过程
- 将 kubernetes 配置目录
/etc/kubernetes
中的旧ip替换成新ip
# 暂时申请root权限,避免之后的语句没有添加 sudo 导致权限不足
sudo su
# 定义旧ip变量
oldip=192.168.49.2
# 定义新ip变量
newip=192.168.49.1
# 进入 /etc/kubernetes 目录
cd /etc/kubernetes
# see before ------ 查看包含旧ip的文件
find . -type f | xargs grep $oldip
# modify files in place ------ 查询并替换ip
find . -type f | xargs sed -i "s/$oldip/$newip/"
# see after ------ 查看包含新ip的文件
find . -type f | xargs grep $newip
## 备份证书目录
mkdir ~/k8s-old-pki
cp -Rvf /etc/kubernetes/pki/* ~/k8s-old-pki
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
- 生成新的 config 配置文件文件
# 重命名配置文件,达到删除作用,避免因为存在该文件导致直接使用此文件。
mv admin.conf admin.conf.bak
# 生成新的配置文件
kubeadm init phase kubeconfig admin --apiserver-advertise-address=192.168.49.1 --kubernetes-version=v1.21.
1
2
3
4
2
3
4
需要在目录 /etc/kubernetes
中进行,若当前目录不是,则需先通过cd /etc/kubernetes
进入该目录
文件 admin.conf
中包含需修改的ip以及基于该ip的证书,所以必须重新生成,不然之后访问浏览器会因证书ip与访问的不同问题拦截访问。
--kubernetes-version
用于指定安装的版本号,在kubeadm init
不是必须参数,若出现如下提示,可通过该参数清除:
I0911 21:37:17.744247 340548 version.go:254] remote version is much newer: v1.22.1; falling back to: stable-1.21
1
- 删除老证书,生成新证书
cd pki
# 重命名老证书,达到删除作用
mv apiserver.key apiserver.key.bak
mv apiserver.crt apiserver.crt.bak
# 生成新证书
kubeadm init phase certs apiserver --apiserver-advertise-address 192.168.49.1 --kubernetes-version=v1.21.4
1
2
3
4
5
6
2
3
4
5
6
- 重启docker
service docker restart
service kubelet restart
1
2
2
- 检测效果
下面的选一种检测即可
# 1. 查看 kubelet 启动状态
systemctl status kubelet
# 2.1 查看当前集群配置
kubeadm config view
# 2.2 查看当前集群配置,执行上一条语句时,新版的会提示指令已被弃用,请用下面这条语句查看
kubectl get cm -o yaml -n kube-system kubeadm-config
# 3. 获取节点信息,当在 /etc/kubernetes 中执行该语句时可增加 --kubeconfig=admin.conf 更新kubectl使用的admin.conf配置文件
kubectl get nodes
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
参考资料
预览
除特别注明外,本站所有文章均为 windcoder 原创,转载请注明出处来自: kubernetesgenghuanmasterdeip
Loading comments...

预览
暂无数据