记录一下之前更换 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 ------ 查询并替换ipfind . -type f | xargs sed -i "s/$oldip/$newip/"# see after ------ 查看包含新ip的文件find . -type f | xargs grep $newip## 备份证书目录mkdir ~/k8s-old-pkicp -Rvf /etc/kubernetes/pki/* ~/k8s-old-pki- 生成新的 config 配置文件文件
# 重命名配置文件,达到删除作用,避免因为存在该文件导致直接使用此文件。mv admin.conf admin.conf.bak# 生成新的配置文件kubeadm init phase kubeconfig admin --apiserver-advertise-address=192.168.49.1 --kubernetes-version=v1.21.需要在目录 /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- 删除老证书,生成新证书
cd pki# 重命名老证书,达到删除作用mv apiserver.key apiserver.key.bakmv apiserver.crt apiserver.crt.bak# 生成新证书kubeadm init phase certs apiserver --apiserver-advertise-address 192.168.49.1 --kubernetes-version=v1.21.4- 重启docker
service docker restartservice kubelet restart- 检测效果
下面的选一种检测即可
# 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
评论