将Kubernetes默认镜像仓库切换为registry.k8s.io的方法咨询
查看当前Kubernetes镜像仓库
方法1:查看kubeadm配置文件
kubeadm会在集群初始化或升级时生成配置文件,查看以下路径的文件即可获取当前镜像仓库:
cat /var/lib/kubeadm/config.yaml
找到其中的imageRepository字段,对应的值就是当前使用的镜像仓库(旧版本通常为k8s.gcr.io或gcr.io/google-containers)。
方法2:查看本地已拉取的K8s镜像
通过Docker命令过滤K8s组件镜像,从镜像名称前缀判断仓库:
docker images | grep -E 'k8s.gcr.io|gcr.io/google-containers|registry.k8s.io'
例如输出中的k8s.gcr.io/kube-apiserver:v1.21.x,说明当前使用的是k8s.gcr.io仓库。
方法3:通过kubeadm命令查看配置
执行以下命令查看kubeadm的当前配置:
kubeadm config view
在输出结果中查找imageRepository字段的值即可。
切换默认镜像仓库为registry.k8s.io
方式1:升级集群时临时指定
执行kubeadm upgrade apply命令时,通过--image-repository参数直接指定新仓库:
kubeadm upgrade apply v1.25.xx --image-repository registry.k8s.io
该参数会让kubeadm从新仓库拉取v1.25版本的所有组件镜像,并完成集群升级。
方式2:永久修改kubeadm默认配置
若希望后续所有kubeadm操作(如添加节点、重新拉取镜像)默认使用新仓库,可修改kubeadm配置文件:
- 编辑或创建kubeadm主配置文件:
vi /etc/kubernetes/kubeadm-config.yaml
- 添加或修改
imageRepository字段:
apiVersion: kubeadm.k8s.io/v1beta3 kind: ClusterConfiguration imageRepository: registry.k8s.io
- 保存文件后,后续执行
kubeadm命令将默认使用该仓库。
方式3:预拉取新仓库的镜像
若需提前验证镜像拉取是否正常,可单独执行拉取命令:
kubeadm config images pull --image-repository registry.k8s.io --kubernetes-version v1.25.xx
注意:从v1.21跨版本升级到v1.25需遵循Kubernetes升级规则,建议依次升级到v1.23、v1.24,最后升级到v1.25,每一步均使用上述方法指定新镜像仓库,避免版本兼容性问题。
内容的提问来源于stack exchange,提问作者mona moghadampanah
相关产品推荐
相关产品推荐

