如何更新镜像文件
本文档介绍 Kubernetes 集群中各类镜像的更新方法,包括 Kubelet、静态 POD、CoreDNS 和 Calico 等组件。
更新 Kubelet 使用的镜像
配置文件位置
Kubelet 的配置文件位于
/var/lib/kubelet/kubeadm-flags.env
修改配置文件中的 pod-infra-container-image 参数:
# Kubernetes 1.26 及更早版本的示例;1.27+ 不再支持这些旧参数。
# 新版本请在 KubeletConfiguration 中设置 containerRuntimeEndpoint,
# 并通过 kubeadm 的 imageRepository 或 Pod 配置指定 pause 镜像。
KUBELET_KUBEADM_ARGS="--container-runtime=remote --container-runtime-endpoint=unix:///var/run/containerd/containerd.sock --pod-infra-container-image=internal.com:5000/pause:3.7"修改完成后,重启 kubelet 使配置生效:
systemctl restart kubelet更新静态 POD 的镜像
静态 POD 配置目录
静态 POD 的配置文件位于
/etc/kubernetes/manifests目录下
在该目录下有以下几个静态 POD 的配置文件:
kube-apiserver.yamlkube-controller-manager.yamlkube-scheduler.yamletcd.yaml

更新方法
只需修改配置文件中的
image字段,Kubelet 会自动检测变化并使用新镜像重新创建 POD。
更新 CoreDNS 和 Calico 的镜像
只需修改对应 Deployment 和 DaemonSet 的镜像地址即可:
CoreDNS

Calico

证书更新
重要提示
证书更新后需要重启静态 POD 才能生效!
官方文档
证书更新步骤
# 1. 检查证书有效性
kubeadm certs check-expiration
# 2. 备份证书信息
mkdir -p /data/k8s-backup/etc/kubernetes/
mkdir -p /data/k8s-backup/.kube/
cp -rf /etc/kubernetes/ /data/k8s-backup/etc/kubernetes/
cp $HOME/.kube/config /data/k8s-backup/.kube/config
# 3. 更新证书
kubeadm certs renew all
# 4. 更新后检查证书日期
kubeadm certs check-expiration
# 5. 重启静态 POD(通过移动 manifests 目录)
mv /etc/kubernetes/manifests/ /data/k8s-backup/manifests
# 6. 等待 20s 静态 POD 停止后重新迁移回去
sleep 20
mv /data/k8s-backup/manifests /etc/kubernetes/manifests/
# 7. 更新 kubeconfig 文件
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config多节点集群注意事项
上述方法需要在所有控制节点运行,确保证书更新完整。
相关链接
- K8S调度问题 - 调度相关问题排查
- 如何查看底层的文件系统路径 - 容器文件系统路径查看
- Docker/00 Docker配置 - Docker 基础配置
返回: Kubernetes