Kubeadm с containerd не может использовать локально загруженные образы

Я пытаюсь собрать kubernetes с containerd на голом-металлическом сервере (RHEL8).

Нет подключения к Интернету, поэтому я вручную загрузил нужные изображения (например. k8s.gcr.io/kube-scheduler:v1.22.1)и загрузил их с помощью «импорта изображения ctr».

Похоже, изображения успешно загружены.

#ctr images ls -q
k8s.gcr.io/coredns/coredns:v1.8.4
k8s.gcr.io/etcd:3.5.0-0
k8s.gcr.io/kube-apiserver:v1.22.1
k8s.gcr.io/kube-controller-manager:v1.22.1
k8s.gcr.io/kube-proxy:v1.22.1
k8s.gcr.io/kube-scheduler:v1.22.1
k8s.gcr.io/pause:3.5

Затем я выполнил «kubeadm init», но он завершился ошибкой ImagePull.

#kubeadm init --kubernetes-version=1.22.1 --cri-socket=/run/containerd/containerd.sock
[init] Using Kubernetes version: v1.22.1
[preflight] Running pre-flight checks
        [WARNING FileExisting-tc]: tc not found in system path
[preflight] Pulling images required for setting up a Kubernetes cluster
[preflight] This might take a minute or two, depending on the speed of your internet connection
[preflight] You can also perform this action in beforehand using 'kubeadm config images pull'
error execution phase preflight: [preflight] Some fatal errors occurred:

Как разрешить kubeadm использовать локальные образы? Или можно игнорировать эти ошибки предварительной проверки?

Править:Эта процедура (ручной загрузки образов вместо выполнения kubeadm config images pull)хорошо работала с Docker и CentOS7.

0
задан 2 October 2021 в 12:13
2 ответа

Оказалось, что мне пришлось загружать изображения в пространство имен k8s.iocontainerd, чтобы Kubernetes мог их распознать. Я импортировал изображения в неправильное пространство имен (по умолчанию).

ctr -n k8s.io images import xxx.tar
...

После загрузки всех образов, которые нужны Kubernetes, kubeadm init работал без выполнения
kubeadm config images pull. Изображения, которые может использовать Kubernetes, показаны в
ctr -n k8s.io images lsили crictl images.

# crictl images
IMAGE                                                          TAG                 IMAGE ID            SIZE
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.1             f30469a2491a5       130MB
k8s.gcr.io/kube-controller-manager                             v1.22.1             6e002eb89a881       123MB
k8s.gcr.io/kube-proxy                                          v1.22.1             36c4ebbc9d979       105MB
k8s.gcr.io/kube-scheduler                                      v1.22.1             aca5ededae9c8       53.9MB
k8s.gcr.io/pause                                               3.5                 ed210e3e4a5ba       686kB
1
ответ дан 16 November 2021 в 05:26

Чтобы загрузить образы вручную, выполните следующие действия.:

kubeadm config images list
kubeadm config images pull

В документации Kubernetes также есть раздел для запуска kubeadm без подключения к Интернету .

1
ответ дан 2 October 2021 в 20:37

Теги

Похожие вопросы