准备k8s集群镜像
准备k8s集群镜像
一、在安装kubernetes集群之前,必须要提前准备好集群需要的镜像,所需平面镜像可以通过下面命令查看
kubeadm config images list
二、由于网络原因registry.k8s.io这个镜像仓库源访问不了,就需要变通一下切换镜像仓库地址为阿里云的地址,并打上镜像标签
三、更换镜像方法步骤
- 变更为阿里镜像地址:registry.cn-hangzhou.aliyuncs.com/google_containers
-
把所需要的镜像定义为一个数组
-
从数组中循环去取对应的镜像名,拼接上阿里镜像地址,然后进行下载
-
下载完成后,打上标签
-
然后删除掉之前没有镜像的标签
注意:使用kubeadm config images list 后,再拷贝所需镜像的时候回,一定要删除镜像前缀:registry.k8s.io/ 之前没注意忘记了删除,导致下载不下来,以为是阿里镜像地址变了,还折腾找了半天其他地址
如registry.k8s.io/kube-apiserver:v1.25.3 改为: kube-apiserver:v1.25.3
#创建一个shell脚本
cd /usr/local
vim pull_images.sh
#定义一个镜像数组 如 a=(1 2 3 ) 访问第一个索引的话,使用 ${a[0]},访问全部 ${a[@]}
images=(kube-apiserver:v1.25.3
kube-controller-manager:v1.25.3
kube-scheduler:v1.25.3
kube-proxy:v1.25.3
pause:3.8
etcd:3.5.4-0
coredns/coredns:v1.9.3
)
for i in ${images[@]}
do
#下载镜像
nerdctl pull registry.cn-hangzhou.aliyuncs.com/google_containers/${i}
#打上标签
nerdctl tag registry.cn-hangzhou.aliyuncs.com/google_containers/${i} registry.k8s.io/${i}
#删除之前镜像
nerdctl rmi registry.cn-hangzhou.aliyuncs.com/google_containers/${i}
done
下载过程中又提示有一个镜像下载失败了
其他的镜像是下载成功了的
修改shell脚本里的coredns镜像配置为,最终shell脚本为
#定义一个镜像数组 如 a=(1 2 3 ) 访问第一个索引的话,使用 ${a[0]},访问全部 ${a[@]}
images=(kube-apiserver:v1.25.3
kube-controller-manager:v1.25.3
kube-scheduler:v1.25.3
kube-proxy:v1.25.3
pause:3.8
etcd:3.5.4-0
coredns:v1.9.3
)
for i in ${images[@]}
do
#下载镜像
nerdctl pull registry.cn-hangzhou.aliyuncs.com/google_containers/${i}
#打上标签
nerdctl tag registry.cn-hangzhou.aliyuncs.com/google_containers/${i} registry.k8s.io/${i}
#删除之前镜像
nerdctl rmi registry.cn-hangzhou.aliyuncs.com/google_containers/${i}
done
四、终于全部下载完成
注意坑点
kubeadm config images list
其中coredns的tag 和要求的不一致,所以还需要更改一下
nerdctl tag registry.k8s.io/coredns:v1.9.3 registry.k8s.io/coredns/coredns:v1.9.3
nerdctl rmi registry.k8s.io/coredns:v1.9.3
五、集群初始化
下面操作只在master节点操作,本地已经有需要的依赖了,但是仍然回去拉取镜像。而如果把image-repository参数加上则可以跳过,直接使用已存在的镜像
kubeadm init \
--kubernetes-version=v1.25.4 \
--pod-network-cidr=10.244.0.0/16 \
--service-cidr=10.96.0.0/12 \
--apiserver-advertise-address=192.168.48.200
--image-repository registry.cn-hangzhou.aliyuncs.com/google_containers
kubeadm init --kubernetes-version=v1.25.4 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12 --apiserver-advertise-address=192.168.48.200 --image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers
本文来自博客园,作者:弩哥++,转载请注明原文链接:https://www.cnblogs.com/bangbangzoutianya/p/16807730.html