使用kubeadmin設(shè)置 Kubernetes 集群時,會使用一個init命令選項來設(shè)置 Kubernetes 控制平面。Kubernetes 有許多將在引導(dǎo)集群時使用的容器鏡像。
在互聯(lián)網(wǎng)訪問不可靠的環(huán)境中,或者當(dāng)您使用代理服務(wù)器時互聯(lián)網(wǎng)訪問受限,或者如果您的 Kubernetes 節(jié)點根本沒有互聯(lián)網(wǎng)訪問權(quán)限,預(yù)拉要使用的容器鏡像是有意義的.
首先,您需要打印 kubeadm 將使用的圖像列表(在安裝了 kubeadm 的機器上)。
<span style="background-color:#051e30"><span style="color:#ffffff"><code>$ <strong>sudo kubeadm config images list</strong>
k8s.gcr.io/kube-apiserver:v1.22.2
k8s.gcr.io/kube-controller-manager:v1.22.2
k8s.gcr.io/kube-scheduler:v1.22.2
k8s.gcr.io/kube-proxy:v1.22.2
k8s.gcr.io/pause:3.5
k8s.gcr.io/etcd:3.5.0-0
k8s.gcr.io/coredns/coredns:v1.8.4</code></span></span>
使用的默認注冊表是k8s.gcr.io,您可以選擇使用不同的注冊表。例如使用碼頭工人:
<span style="background-color:#051e30"><span style="color:#ffffff"><code>$<strong> sudo kubeadm config images list --image-repository docker.io</strong>
docker.io/kube-apiserver:v1.22.2
docker.io/kube-controller-manager:v1.22.2
docker.io/kube-scheduler:v1.22.2
docker.io/kube-proxy:v1.22.2
docker.io/pause:3.5
docker.io/etcd:3.5.0-0
docker.io/coredns:v1.8.4</code></span></span>
這將使用最新穩(wěn)定版本的 Kubernetes。您還可以指定要使用的 Kubernetes 版本,例如stable、latest
<span style="background-color:#051e30"><span style="color:#ffffff"><code>$ sudo kubeadm config images list --kubernetes-version latest</code></span></span>
使用 kubeadm 命令拉取容器鏡像
如果您的 Kubernetes 機器可以訪問互聯(lián)網(wǎng)以拉取容器鏡像,您可以使用 kubeadm 命令預(yù)拉取所需的鏡像:
<span style="background-color:#051e30"><span style="color:#ffffff"><code><strong><em>### Pull from default registry: k8s.gcr.io ###
</em></strong>$ sudo kubeadm config images pull
<strong><em>### Pull from a different registry, e.g docker.io or internal ###
</em></strong>$ sudo kubeadm config images pull --image-repository docker.io</code></span></span>
對于 docker,您可能需要登錄才能拉取圖像:
<span style="background-color:#051e30"><span style="color:#ffffff"><code>$<strong> sudo docker login</strong>
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: jmutai
Password:
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded</code></span></span>
請注意,如果更改容器存儲庫,則需要在運行init時執(zhí)行相同的操作。
<span style="background-color:#051e30"><span style="color:#ffffff"><code>$ sudo kubeadm init --image-repository <registry> <options></code></span></span>
使用 docker / podman 命令拉取容器鏡像
對于無法訪問 Internet 的 Kubernetes 節(jié)點,您需要從本地計算機下載圖像并將其上傳到您的 Kubernetes 節(jié)點。
- 使用kubeadm列出要在機器上使用的圖像
<span style="background-color:#051e30"><span style="color:#ffffff"><code>sudo kubeadm config images list </code></span></span>
- 本地下載圖片
<span style="background-color:#051e30"><span style="color:#ffffff"><code>for image in k8s.gcr.io/kube-apiserver:v1.22.2 \
k8s.gcr.io/kube-controller-manager:v1.22.2 \
k8s.gcr.io/kube-scheduler:v1.22.2 \
k8s.gcr.io/kube-proxy:v1.22.2 \
k8s.gcr.io/pause:3.5 \
k8s.gcr.io/etcd:3.5.0-0 \
k8s.gcr.io/coredns:1.8.4; do
sudo docker pull $image;
done</code></span></span>
如果使用 podman:
<span style="background-color:#051e30"><span style="color:#ffffff"><code>for image in k8s.gcr.io/kube-apiserver:v1.22.2 \
k8s.gcr.io/kube-controller-manager:v1.22.2 \
k8s.gcr.io/kube-scheduler:v1.22.2 \
k8s.gcr.io/kube-proxy:v1.22.2 \
k8s.gcr.io/pause:3.5 \
k8s.gcr.io/etcd:3.5.0-0 \
k8s.gcr.io/coredns/coredns:v1.8.4; do
sudo docker pull $image;
done</code></span></span>
- 將圖像另存為.tar文件
<span style="background-color:#051e30"><span style="color:#ffffff"><code># Example
mkdir ~/k8s-images
docker save k8s.gcr.io/kube-apiserver:v1.22.2 > ~/k8s-images/kube-apiserver.tar
# Do the same for all other images</code></span></span>
- 將保存的圖像上傳到 Kubernetes 節(jié)點
<span style="background-color:#051e30"><span style="color:#ffffff"><code>rsync -av ~/k8s-images/* k8s-node:~/k8s-images/</code></span></span>
- 將.tar圖像文件導(dǎo)入 Docker。
<span style="background-color:#051e30"><span style="color:#ffffff"><code>cd k8s-images/
ls * | while read image; do sudo docker load < $image; done</code></span></span>
這是一個示例負載輸出。
<span style="background-color:#051e30"><span style="color:#ffffff"><code># <strong>ls * | while read image; do docker load < $image; done</strong>
225df95e717c: Loading layer [==================================================>] 336.4kB/336.4kB
7c9b0f448297: Loading layer [==================================================>] 41.37MB/41.37MB
Loaded image: k8s.gcr.io/coredns:1.6.5
fe9a8b4f1dcc: Loading layer [==================================================>] 43.87MB/43.87MB
ce04b89b7def: Loading layer [==================================================>] 224.9MB/224.9MB
1b2bc745b46f: Loading layer [==================================================>] 21.22MB/21.22MB
Loaded image: k8s.gcr.io/etcd:3.4.3-0
fc4976bd934b: Loading layer [==================================================>] 53.88MB/53.88MB
f103db1d7ea4: Loading layer [==================================================>] 118.6MB/118.6MB
Loaded image: k8s.gcr.io/kube-apiserver:v1.17.0
01b437934b9d: Loading layer [==================================================>] 108.5MB/108.5MB
Loaded image: k8s.gcr.io/kube-controller-manager:v1.17.0
ac06623e44c6: Loading layer [==================================================>] 42.1MB/42.1MB
Loaded image: k8s.gcr.io/kube-scheduler:v1.17.0
682fbb19de80: Loading layer [==================================================>] 21.06MB/21.06MB
2dc2f2423ad1: Loading layer [==================================================>] 5.168MB/5.168MB
ad9fb2411669: Loading layer [==================================================>] 4.608kB/4.608kB
597151d24476: Loading layer [==================================================>] 8.192kB/8.192kB
0d8d54147a3a: Loading layer [==================================================>] 8.704kB/8.704kB
6bc5ae70fa9e: Loading layer [==================================================>] 37.81MB/37.81MB
Loaded image: k8s.gcr.io/kube-proxy:v1.17.0
e17133b79956: Loading layer [==================================================>] 744.4kB/744.4kB
Loaded image: k8s.gcr.io/pause:3.1</code></span></span>
確認圖像已導(dǎo)入:文章來源:http://www.zghlxwxcb.cn/news/detail-642219.html
<span style="background-color:#051e30"><span style="color:#ffffff"><code>[root@k8s-master-01 ~]# <strong>crictl images</strong>
IMAGE TAG IMAGE ID SIZE
docker.io/calico/apiserver v3.20.1 4e7da027faaa7 53.2MB
docker.io/calico/cni v3.20.1 e69ccb66d1b65 146MB
docker.io/calico/kube-controllers v3.20.1 5df320a38f63a 63.2MB
docker.io/calico/node v3.20.1 355c1ee44040b 158MB
docker.io/calico/pod2daemon-flexvol v3.20.1 55fa5eb71e097 21.8MB
docker.io/calico/typha v3.20.1 8473ae43d01b8 59.4MB
k8s.gcr.io/coredns/coredns v1.8.4 8d147537fb7d1 47.7MB
k8s.gcr.io/etcd 3.5.0-0 0048118155842 296MB
k8s.gcr.io/kube-apiserver v1.22.2 e64579b7d8862 130MB
k8s.gcr.io/kube-controller-manager v1.22.2 5425bcbd23c54 123MB
k8s.gcr.io/kube-proxy v1.22.2 873127efbc8a7 105MB
k8s.gcr.io/kube-scheduler v1.22.2 b51ddc1014b04 53.9MB
k8s.gcr.io/pause 3.2 80d28bedfe5de 688kB
k8s.gcr.io/pause 3.5 ed210e3e4a5ba 690kB
quay.io/tigera/operator v1.20.3 98e04bee27575 48.2MB</code></span></span>
然后,您可以使用本地添加的映像繼續(xù) Kubernetes 安裝。根據(jù)您使用的 CNI,如果進行離線安裝,您可能還需要提前拉取其鏡像。文章來源地址http://www.zghlxwxcb.cn/news/detail-642219.html
到了這里,關(guān)于手動拉取 Kubernetes kubeadm 使用的容器鏡像的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!