По какой-то причине мне пришлось построить пустой кластер Kubernetes без подключения к Интернету.
Поскольку dockerhim устарел, я решил использовать containerd в качестве CRI, но автономная установка с kubeadm не удалась при выполнении. инициализация кубеадм
из-за тайм-аута.
К сожалению, произошла ошибка:
истекло время ожидания условия
Эта ошибка, вероятно, вызвана:
- Кубелет не запущен
- Кублет неисправен из-за неправильной настройки узла (необходимые cgroups отключены)
Если вы работаете в системе на основе systemd, вы можете попытаться устранить ошибку с помощью следующих команд:
- 'кубелет статуса systemctl'
- 'journalctl -xeu кубелет'
И я вижу много журналов ошибок в результате журналctl -u кубелет -f
:
11 24 16:25:25 rhel8 kubelet[9299]: E1124 16:25:25.473188 9299 controller.go:144] не удалось убедиться, что аренда существует, повторная попытка через 7 с, ошибка: Get "https://133.117.20.57:6443 /apis/coordinate.k8s.io/v1/namespaces/kube-node-lease/leases/rhel8?timeout=10s": наберите tcp 133.117.20.57:6443: соединение: соединение отклонено
11 24 16:25:25 rhel8 kubelet[9299]: E1124 16:25:25.533555 9299 kubelet.go:2407] "Ошибка при получении узла" err="узел \"rhel8\" не найден"
11 24 16:25:25 rhel8 kubelet[9299]: I1124 16:25:25.588986 9299 kubelet_node_status.go:71] "Попытка зарегистрировать узел" node="rhel8"
11 24 16:25:25 rhel8 kubelet[9299]: E1124 16:25:25.589379 9299 kubelet_node_status.go:93] «Невозможно зарегистрировать узел на сервере API» err="Post \"https://133.117.20.57:6443 /api/v1/nodes\": наберите tcp 133.117.20.57:6443: соединение: соединение отклонено" node="rhel8"
11 24 16:25:25 rhel8 kubelet[9299]: E1124 16:25:25.634625 9299 kubelet.go:2407] "Ошибка при получении узла" err="узел \"rhel8\" не найден"
11 24 16:25:25 rhel8 kubelet[9299]: E1124 16:25:25.735613 9299 kubelet.go:2407] "Ошибка при получении узла" err="узел \"rhel8\" не найден"
11 24 16:25:25 rhel8 kubelet[9299]: E1124 16:25:25.835815 9299 kubelet.go:2407] "Ошибка получения узла" err="узел \"rhel8\" не найден"
11 24 16:25:25 rhel8 kubelet[9299]: E1124 16:25:25.936552 9299 kubelet.go:2407] "Ошибка при получении узла" err="узел \"rhel8\" не найден"
11 24 16:25:26 rhel8 kubelet[9299]: E1124 16:25:26.036989 9299 kubelet.go:2407] "Ошибка получения узла" err="узел \"rhel8\" не найден"
11 24 16:25:26 rhel8 kubelet[9299]: E1124 16:25:26.137464 9299 kubelet.go:2407] "Ошибка при получении узла" err="узел \"rhel8\" не найден"
11 24 16:25:26 rhel8 kubelet[9299]: E1124 16:25:26.238594 9299 kubelet.go:2407] "Ошибка получения узла" err="узел \"rhel8\" не найден"
11 24 16:25:26 rhel8 kubelet[9299]: E1124 16:25:26.338704 9299 kubelet.go:2407] "Ошибка получения узла" err="узел \"rhel8\" не найден"
11 24 16:25:26 rhel8 kubelet[9299]: E1124 16:25:26.394465 9299 event.go:273] Невозможно записать событие: '&v1.Event{TypeMeta:v1.TypeMeta{Вид: "", APIVersion:" "}, ObjectMeta:v1.ObjectMeta{Name:"rhel8.16ba6aab63e58bd8", GenerateName:"", пространство имен:"default", SelfLink:"", UID:"", ResourceVersion:"", Generation:0, CreationTimestamp:v1 .Time{Time:time.Time{wall:0x0, ext:0, loc:(*time.Location)(nil)}}, DeletionTimestamp:(*v1.Time)(nil), DeletionGracePeriodSeconds:(*int64)( nil), Labels:map[string]string(nil), Annotations:map[string]string(nil), OwnerReferences:[]v1.OwnerReference(nil), Finalizers:[]string(nil), ClusterName:"", ManagedFields:[]v1.ManagedFieldsEntry(nil)}, InvolvedObject:v1.ObjectReference{Вид:"Узел", Пространство имен:"", Имя:"rhel8", UID:"rhel8", APIVersion:"", ResourceVersion:"" , FieldPath:""}, Reason:"Starting", Message:"Starting kubelet.", Source:v1.EventSource{Component:"kubelet", Host:"rhel8"}, FirstTimestamp:v1.Time{Time:time. Время {стена: 0xc05f9812b2b227d8, доб: 5706873656, местоположение: (* ti me.Location)(0x55a228f25680)}}, LastTimestamp:v1.Time{Time:time.Time{wall:0xc05f9812b2b227d8, ext:5706873656, loc:(*time.Location)(0x55a228f25680)}}, Count:1, Type: "Обычный", EventTime:v1.MicroTime{Time:time.Time{wall:0x0, ext:0, loc:(*time.Location)(nil)}}, Series:(*v1.EventSeries)(nil), Действие:"", Связано:(*v1.ObjectReference)(nil), ReportingController:"", ReportingInstance:""}': 'Post "https://133.117.20.57:6443/api/v1/namespaces/default/ события": наберите tcp 133.117.20.57:6443: соединение: соединение отклонено (может повторить попытку после сна)
11 24 16:25:27 rhel8 kubelet[9299]: E1124 16:25:27.143503 9299 kubelet.go:2407] "Ошибка получения узла" err="узел \"rhel8\" не найден"
11 24 16:25:27 rhel8 kubelet[9299]: E1124 16:25:27.244526 9299 kubelet.go:2407] "Ошибка получения узла" err="узел \"rhel8\" не найден"
11 24 16:25:27 rhel8 kubelet[9299]: E1124 16:25:27.302890 9299 remote_runtime.go:116] «Ошибка RunPodSandbox из службы среды выполнения» err = «ошибка rpc: code = Unknown desc = не удалось получить образ песочницы \ "k8s.gcr.io/pause:3.2\": не удалось извлечь образ \"k8s.gcr.io/pause:3.2\": не удалось извлечь и распаковать образ \"k8s.gcr.io/pause:3.2\" : не удалось разрешить ссылку \"k8s.gcr.io/pause:3.2\": не удалось выполнить запрос: Голова \"https://k8s.gcr.io/v2/pause/manifests/3.2\": набрать tcp: поиск k8s.gcr.io на [::1]:53: чтение udp [::1]:39732->[::1]:53: чтение: соединение отклонено"
11 24 16:25:27 rhel8 kubelet[9299]: E1124 16:25:27.302949 9299 kuberuntime_sandbox.go:70] «Не удалось создать песочницу для модуля» err = «Ошибка rpc: code = Unknown desc = не удалось получить образ песочницы \"k8s.gcr.io/pause:3.2\": не удалось извлечь образ \"k8s.gcr.io/pause:3.2\": не удалось извлечь и распаковать образ \"k8s.gcr.io/pause:3.2\" ": не удалось разрешить ссылку \"k8s.gcr.io/pause:3.2\": не удалось выполнить запрос: Head \"https://k8s.gcr.io/v2/pause/manifests/3.2\": набрать tcp : поиск k8s.gcr.io в [::1]:53: чтение udp [::1]:39732->[::1]:53: чтение: соединение отклонено" pod="kube-system/kube-scheduler -rhel8"
11 24 16:25:27 rhel8 kubelet[9299]: E1124 16:25:27.302989 9299 kuberuntime_manager.go:815] "CreatePodSandbox для pod не удалось" err="ошибка rpc: code = Unknown desc = не удалось получить изображение песочницы \" k8s.gcr.io/pause:3.2\": не удалось извлечь образ \"k8s.gcr.io/pause:3.2\": не удалось извлечь и распаковать образ \"k8s.gcr.io/pause:3.2\": не удалось разрешить ссылку \"k8s.gcr.io/pause:3.2\": не удалось выполнить запрос: Head \"https://k8s.gcr.io/v2/pause/manifests/3.2\": набрать TCP: поиск k8s.gcr.io on [::1]:53: чтение udp [::1]:39732->[::1]:53: чтение: соединение отклонено" pod="kube-system/kube-scheduler-rhel8 "
11 24 16:25:27 rhel8 kubelet[9299]: E1124 16:25:27.303080 9299 pod_workers.go:765] «Ошибка синхронизации модуля, пропуск» err="не удалось \"CreatePodSandbox\" для \"kube-scheduler- rhel8_kube-system(e5616b23d0312e4995fcb768f04aabbb)\" with CreatePodSandboxError: \"Не удалось создать песочницу для модуля \"kube-scheduler-rhel8_kube-system(e5616b23d0312e4995fcb768f04aabbb)\": известная ошибка rpc = failed to get sandbox: образ \"k8s.gcr.io/pause:3.2\": не удалось извлечь образ \"k8s.gcr.io/pause:3.2\": не удалось извлечь и распаковать образ \ "k8s.gcr.io/pause:3.2\": не удалось разрешить ссылку \"k8s.gcr.io/pause:3.2\": не удалось выполнить запрос: Head \"https:/ /k8s.gcr.io/v2/pause/manifests/3.2\": набираем tcp: ищем k8s.gcr.io в [::1]:53: читаем udp [::1]:39732->[: :1]:53: чтение: соединение отклонено\"" pod="kube-system/kube-scheduler-rhel8" podUID=e5616b23d0312e4995fcb768f04aabbb
Когда я делаю то же самое с подключением к Интернету, установка проходит успешно. А при использовании docker вместо containerd установка проходит успешно даже при отсутствии подключения к интернету.