Я пытаюсь установить кластер с одним узлом на Centos 7, с Kubadm 1.24 и с containerd,
я выполнил шаги установки,
и я сделал:
Конфигурация containerd по умолчанию > /etc/containerd/config.toml
и прошло: SystemdCgroup = true
но инициализация kubeadm завершается ошибкой:
[root@master-node .kube]# инициализация kubeadm
[init] Использование версии Kubernetes: v1.24.0
[preflight] Запуск проверки перед полетом
[ВНИМАНИЕ HTTPProxy]: подключение к «https://10.XXXXXXXX» использует прокси-сервер «http://proxy-XXXXXXXXX.com:8080/». Если это не предусмотрено, измените настройки прокси-сервера.
[ВНИМАНИЕ HTTPProxyCIDR]: подключение к «10.96.XXXXXXXX» использует прокси «http://proxy-XXXXXXXXX.com:8080/». Это может привести к неправильной настройке кластера.Убедитесь, что диапазоны IP-адресов Pod и Services указаны правильно в качестве исключений в конфигурации прокси-сервера.
[preflight] Извлечение изображений, необходимых для настройки кластера Kubernetes
[предварительная проверка] Это может занять минуту или две, в зависимости от скорости вашего интернет-соединения.
[preflight] Вы также можете выполнить это действие заранее, используя «вытягивание образов конфигурации kubeadm»
[certs] Использование папки certificateDir «/etc/kubernetes/pki»
[certs] Создание сертификата и ключа «ca»
[certs] Генерация сертификата и ключа "apiserver"
[certs] apiserver, обслуживающий сертификат, подписан для DNS-имен [kubernetes kubernetes.default kubernetes.default.svc kubernetes.default.svc.cluster.local master-node] и IP-адресов [10.96.0.1 10.XXXXXXXX]
[certs] Генерация сертификата и ключа «apiserver-kubelet-client»
[certs] Генерация сертификата и ключа «front-proxy-ca»
[certs] Генерация сертификата и ключа «front-proxy-client»
[certs] Создание сертификата и ключа «etcd/ca»
[certs] Генерация сертификата и ключа «etcd/server»
[certs] сертификат etcd/server, обслуживающий сервер, подписан для DNS-имен [localhost master-node] и IP-адресов [10.XXXXXX 127.0.0.1 ::1]
[certs] Генерация сертификата и ключа «etcd/peer»
[certs] сертификат etcd/peer service подписан для DNS-имен [localhost master-node] и IP-адресов [10.XXXXXXX 127.0.0.1 ::1]
[certs] Генерация сертификата и ключа «etcd/healthcheck-client»
[certs] Создание сертификата и ключа «apiserver-etcd-client»
[certs] Генерация ключа «sa» и открытого ключа
[kubeconfig] Использование папки kubeconfig «/etc/kubernetes»
[kubeconfig] Запись файла kubeconfig «admin.conf»
[kubeconfig] Запись файла kubeconfig «kubelet.conf»
[kubeconfig] Запись файла kubeconfig «controller-manager.conf»
[kubeconfig] Запись файла kubeconfig «scheduler.conf»
[kubelet-start] Запись файла среды kubelet с флагами в файл «/var/lib/kubelet/kubeadm-flags.env»
[kubelet-start] Запись конфигурации kubelet в файл «/var/lib/kubelet/config.yaml»
[kubelet-start] Запуск kubelet
[control-plane] Использование папки манифеста «/etc/kubernetes/manifests»
[control-plane] Создание статического манифеста пода для «kube-apiserver»
[control-plane] Создание статического манифеста пода для «kube-controller-manager»
[control-plane] Создание статического манифеста Pod для «kube-scheduler»
[etcd] Создание статического манифеста Pod для локального etcd в «/etc/kubernetes/manifests»
[wait-control-plane] Ожидание загрузки kubelet плоскости управления в виде статических подов из каталога «/etc/kubernetes/manifests». Это может занять до 4 минут
Ожидание, пока kubelet загрузит плоскость управления как статические поды из каталога «/etc/kubernetes/manifests». Это может занять до 4 минут
[kubelet-check] Первоначальный тайм-аут в 40 секунд пройден.
К сожалению, произошла ошибка:
истекло время ожидания условия
Эта ошибка, вероятно, вызвана:
- Кубелет не запущен
- Кублет неисправен из-за неправильной настройки узла (необходимые cgroups отключены)
Если вы работаете в системе на основе systemd, вы можете попытаться устранить ошибку с помощью следующих команд:
- 'кубелет статуса systemctl'
- 'journalctl -xeu кубелет'
Кроме того, компонент плоскости управления мог аварийно завершать работу при запуске средой выполнения контейнера.
Чтобы устранить неполадки, перечислите все контейнеры, используя предпочитаемый интерфейс командной строки среды выполнения контейнеров.
Вот один пример того, как вы можете получить список всех запущенных контейнеров Kubernetes с помощью crictl:
- 'crictl --runtime-endpoint unix:///var/run/containerd/containerd.sock ps -a | grep куб | grep -v пауза'
Как только вы нашли неисправный контейнер, вы можете проверить его журналы с помощью:
- 'crictl --runtime-endpoint unix:///var/run/containerd/containerd.sock logs CONTAINERID'
ошибка фазы выполнения план ожидания управления: не удалось инициализировать кластер Kubernetes
Чтобы увидеть трассировку стека этой ошибки, выполните с параметром --v=5 или выше.
systemctl status kubelet: is Active: активен (работает)
и журналы: journalctl -xeu kubelet:
mai 20 17:07:05 мастер-узел kubelet[8685]: E0520 17:07:05.715751 8685 kubelet.go:2344] «Сеть времени выполнения контейнера не готова» networkReady="NetworkReady=falsereas
mai 20 17:07:05 мастер-узел kubelet[8685]: E0520 17:07:05.809523 8685 kubelet.go:2419] «Ошибка получения узла» err = «узел «мастер-узел» не найден»
май 20 17:07:05 мастер-узел kubelet[8685]: E0520 17:07:05.910121 8685 kubelet.go:2419] «Ошибка получения узла» err = «узел «мастер-узел» не найден»
mai 20 17:07:06 мастер-узел kubelet[8685]: E0520 17:07:06.010996 8685 kubelet.go:2419] «Ошибка получения узла» err = «узел «мастер-узел» не найден»
mai 20 17:07:06 мастер-узел kubelet[8685]: E0520 17:07:06.111729 8685 kubelet.go:2419] «Ошибка получения узла» err = «узел «мастер-узел» не найден»
mai 20 17:07:06 master-node kubelet[8685]: E0520 17:07:06.185461 8685 controller.go:144] не удалось убедиться, что аренда существует, повторная попытка через 7 секунд, ошибка: Get "https://10.3
mai 20 17:07:06 мастер-узел kubelet[8685]: E0520 17:07:06.212834 8685 kubelet.go:2419] «Ошибка получения узла» err = «узел «мастер-узел» не найден»
mai 20 17:07:06 мастер-узел kubelet[8685]: E0520 17:07:06.313367 8685 kubelet.go:2419] «Ошибка получения узла» err = «узел «мастер-узел» не найден»
mai 20 17:07:06 мастер-узел kubelet[8685]: E0520 17:07:06.413857 8685 kubelet.go:2419] «Ошибка получения узла» err = «узел «мастер-узел» не найден»
mai 20 17:07:06 мастер-узел kubelet[8685]: I0520 17:07:06.433963 8685 kubelet_node_status.go:70] «Попытка зарегистрировать узел» узел = «мастер-узел»
май 20 17:07:06 мастер-узел kubelet[8685]: E0520 17:07:06.434313 8685 kubelet_node_status.go:92] «Невозможно зарегистрировать узел на сервере API» err="Post\"https://10.
май 20 17:07:06 мастер-узел kubelet[8685]: W0520 17:07:06.451759 8685 Reflector.go:324] поставщик/k8s.io/client-go/informers/factory.go:134: не удалось указать * v1.CSIDr
май 20 17:07:06 мастер-узел kubelet[8685]: E0520 17:07:06.451831 8685 Reflector.go:138] vendor/k8s.io/client-go/informers/factory.go:134: Не удалось посмотреть * v1.CSID
mai 20 17:07:06 мастер-узел kubelet[8685]: E0520 17:07:06.514443 8685 kubelet.go:2419] «Ошибка получения узла» err = «узел «мастер-узел» не найден»
mai 20 17:07:06 master-node kubelet[8685]: E0520 17:07:06.573293 8685 remote_runtime.go:201] «Ошибка RunPodSandbox из службы времени выполнения» err = «ошибка rpc: код = Un
mai 20 17:07:06 master-node kubelet[8685]: E0520 17:07:06.573328 8685 kuberuntime_sandbox.go:70] «Не удалось создать песочницу для модуля» err = «ошибка rpc: код = неизвестно
mai 20 17:07:06 master-node kubelet[8685]: E0520 17:07:06.573353 8685 kuberuntime_manager.go:815] «CreatePodSandbox для модуля не удалось» err = «ошибка rpc: код = неизвестно
mai 20 17:07:06 master-node kubelet[8685]: E0520 17:07:06.573412 8685 pod_workers.go:951] "Ошибка синхронизации модуля, пропуск" err="не удалось \"CreatePodSandbox\" для \"
mai 20 17:07:06 master-node kubelet[8685]: E0520 17:07:06.574220 8685 remote_runtime.go:201] «Ошибка RunPodSandbox из службы среды выполнения» err = «ошибка rpc: код = Un
mai 20 17:07:06 master-node kubelet[8685]: E0520 17:07:06.574254 8685 kuberuntime_sandbox.go:70] «Не удалось создать песочницу для модуля» err = «ошибка rpc: код = неизвестно
mai 20 17:07:06 master-node kubelet[8685]: E0520 17:07:06.574279 8685 kuberuntime_manager.go:815] «CreatePodSandbox для модуля не удалось» err = «ошибка rpc: код = неизвестно
mai 20 17:07:06 master-node kubelet[8685]: E0520 17:07:06.574321 8685 pod_workers.go:951] "Ошибка синхронизации модуля, пропуск" err="не удалось \"CreatePodSandbox\" для \"
mai 20 17:07:06 мастер-узел kubelet[8685]: E0520 17:07:06.615512 8685 kubelet.go:2419] «Ошибка при получении узла» err = «узел «мастер-узел» не найден»
mai 20 17:07:06 мастер-узел kubelet[8685]: E0520 17:07:06.716168 8685 kubelet.go:2419] «Ошибка получения узла» err = «узел «мастер-узел» не найден»
mai 20 17:07:06 мастер-узел kubelet[8685]: E0520 17:07:06.816764 8685 kubelet.go:2419] «Ошибка при получении узла» err = «узел «мастер-узел» не найден»
И /var/log/message: много:
22 мая 12:50:00 master-node kubelet: E0522 12:50:00.616324 18961 kubelet.go:2344] «Сеть времени выполнения контейнера не готова» networkReady="NetworkReady=false причина: сообщение NetworkPluginNotReady: сетевой плагин возвращает ошибку: плагин cni не инициализирован"
и
[root@master-node .kube]# статус systemctl containerd
â containerd.service — среда выполнения контейнера containerd
Загружено: загружено (/usr/lib/systemd/system/containerd.service; включено; предустановка поставщика: отключена)
Вставка: /etc/systemd/system/containerd.service.d
ââhttp_proxy.conf
Активный: активен (работает) с момента затемнения. 22 мая 2022 г., 12:28:59 по центральноевропейскому летнему времени; 22 мин назад
Документы: https://containerd.io
Основной PID: 18416 (контейнер)
Заданий: 111
Память: 414,6 Мб
Группа CG: /system.slice/containerd.service
ââ18416 /usr/bin/containerd
ââ19025 /usr/bin/containerd-shim-runc-v2 -namespace k8s.io -id c7bc656d43ab9b01e546e4fd4ad88634807c836c4e86622cd0506a0b2216c89a -address /run/container...
ââ19035 /usr/bin/containerd-shim-runc-v2 -namespace k8s.io -id b9097bd741e5b87042b4592d26b46cce5f14a24e609e03c91282a438c2dcd7f8 -address /run/container...
ââ19047 /usr/bin/containerd-shim-runc-v2 -namespace k8s.io -id 979ac32bd88c094dae25964159066202bab919ca2aea4299827807c0829c3fa2 -address /run/container...
ââ19083 /usr/bin/containerd-shim-runc-v2 -namespace k8s.io -id a6bcd2c83034531d9907defce5eda846dbdfcf474cbfe0eba7464bb670d5b73d -address /run/container...
ââkubepods-burstable-pod07444178f947cc274160582c2d92fd91.slice:cri-containerd:27b2a5932689d1d62fa03024b9b9542e24bc5fda8d5088cbeecf72f66afd4251
â ââ19266 kube-scheduler --authentication-kubeconfig=/etc/kubernetes/scheduler.conf --authorization-kubeconfig=/etc/kubernetes/scheduler.conf --bind-ad...
ââkubepods-burstable-pod817561003fea443230cdbdc318133c3d.slice:cri-containerd:c5c8abc23cb256e2b7f01e767ea18ba6b78f851b68f594349cb6449e2c2c2409
â ââ19259 kube-controller-manager --authentication-kubeconfig=/etc/kubernetes/controller-manager.conf --authorization-kubeconfig=/etc/kubernetes/contro...
ââkubepods-burstable-pod68dc7c99c505d2f1495ca6aaa1fe2ba6.slice:cri-containerd:231b0ecd5ad9e49e2276770f235a753b4bac36d0888ef0d1cb24af56e89fa23e
â ââ19246 etcd --advertise-client-urls=https://10.32.67.20:2379 --cert-file=/etc/kubernetes/pki/etcd/server.crt --client- cert-auth=true --data-dir=/var...
ââkubepods-burstable-podc5c33a178f011135df400feb1027e3a5.slice:cri-containerd:9cf36107d9881a5204f01bdc6a45a097a3130ae5c3a237b02dfa03978b21dc42
â ââ19233 kube-apiserver --advertise-address=10.32.67.20 --allow-privated=true --authorization-mode=Node,RBAC --client-ca-file=/etc/kubernetes /пки/ка...
ââkubepods-burstable-pod817561003fea443230cdbdc318133c3d.slice:cri-containerd:a6bcd2c83034531d9907defce5eda846dbdfcf474cbfe0eba7464bb670d5b73d
â ââ19140 /пауза
ââkubepods-burstable-pod07444178f947cc274160582c2d92fd91.slice:cri-containerd:c7bc656d43ab9b01e546e4fd4ad88634807c836c4e86622cd0506a0b2216c89a
â ââ19133 /пауза
ââkubepods-burstable-pod68dc7c99c505d2f1495ca6aaa1fe2ba6.slice:cri-containerd:b9097bd741e5b87042b4592d26b46cce5f14a24e609e03c91282a438c2dcd7f8
â ââ19124 /пауза
ââkubepods-burstable-podc5c33a178f011135df400feb1027e3a5.slice:cri-containerd:979ac32bd88c094dae25964159066202bab919ca2aea4299827807c0829c3fa2
ââ19117 /пауза
май 22 12:45:56 master-node containerd[18416]: time="2022-05-22T12:45:56.146209618+02:00" level=info msg="StartContainer for \"231b0ecd5ad9e49e2276770f23...9fa23e\""
май 22 12:45:56 master-node containerd[18416]: time="2022-05-22T12:45:56.151240012+02:00" level=info msg="CreateContainer в песочнице \"c7bc656d43ab9b01e546e4f...
май 22 12:45:56 master-node containerd[18416]: time="2022-05-22T12:45:56.151540207+02:00" level=info msg="StartContainer for \"27b2a5932689d1d62fa03024b9...fd4251\""
май 22 12:45:56 master-node containerd[18416]: time="2022-05-22T12:45:56.164666904+02:00" level=info msg="CreateContainer в песочнице \"a6bcd2c83034531d9907def...
май 22 12:45:56 master-node containerd[18416]: time="2022-05-22T12:45:56.166282219+02:00" level=info msg="StartContainer for \"c5c8abc23cb256e2b7f01e767e...2c2409\""
mai 22 12:45:56 master-node containerd[18416]: time="2022-05-22T12:45:56.277928704+02:00" level=info msg="StartContainer for \"9cf36107d9881a5204f01bdc6a...essfully"
mai 22 12:45:56 master-node containerd[18416]: time="2022-05-22T12:45:56.288703134+02:00" level=info msg="StartContainer for \"c5c8abc23cb256e2b7f01e767e...essfully"
mai 22 12:45:56 master-node containerd[18416]: time="2022-05-22T12:45:56.290631867+02:00" level=info msg="StartContainer for \"231b0ecd5ad9e49e2276770f23...essfully"
mai 22 12:45:56 master-node containerd[18416]: time="2022-05-22T12:45:56.293864738+02:00" level=info msg="StartContainer for \"27b2a5932689d1d62fa03024b9...essfully"
май 22 12:46:55 master-node containerd[18416]: time="2022-05-22T12:46:55.476960835+02:00" level=error msg="ContainerStatus for \"58ef67cb3c64c5032bf0dac6f1913e53e...
Подсказка: некоторые строки были выделены эллипсами, используйте -l, чтобы показать их полностью.
[root@master-node .kube]# статус systemctl kubelet
kubelet.service — kubelet: агент узла Kubernetes
Загружено: загружено (/usr/lib/systemd/system/kubelet.service; включено; предустановка поставщика: отключена)
Вставка: /usr/lib/systemd/system/kubelet.service.d
ââ10-kubeadm.conf
Активный: активен (работает) с момента затемнения. 22 мая 2022 г., 12:45:55 по центральноевропейскому летнему времени; 6 минут назад
Документы: https://kubernetes.io/docs/
Основной PID: 18961 (кубелет)
Заданий: 16
Память: 44,2 Мб
Группа CG: /system.slice/kubelet.service
ââ18961 /usr/bin/kubelet --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf --config=/var/lib/ куб...
mai 22 12:51:25 master-node kubelet[18961]: E0522 12:51:25.632732 18961 kubelet.go:2344] «Сеть среды выполнения контейнера не готова» networkReady = «NetworkRe... инициализирована»
mai 22 12:51:30 master-node kubelet[18961]: E0522 12:51:30.633996 18961 kubelet.go:2344] «Сеть среды выполнения контейнера не готова» networkReady = «NetworkRe... инициализирована»
mai 22 12:51:35 master-node kubelet[18961]: E0522 12:51:35.634586 18961 kubelet.go:2344] «Сеть среды выполнения контейнера не готова» networkReady = «NetworkRe... инициализирована»
mai 22 12:51:40 master-node kubelet[18961]: E0522 12:51:40.635415 18961 kubelet.go:2344] «Сеть среды выполнения контейнера не готова» networkReady = «NetworkRe... инициализирована»
mai 22 12:51:45 мастер-узел kubelet[18961]: E0522 12:51:45.636621 18961 kubelet.go:2344] «Сеть среды выполнения контейнера не готова» networkReady = «NetworkRe... инициализирована»
mai 22 12:51:50 master-node kubelet[18961]: E0522 12:51:50.637966 18961 kubelet.go:2344] «Сеть среды выполнения контейнера не готова» networkReady = «NetworkRe... инициализирована»
mai 22 12:51:55 master-node kubelet[18961]: E0522 12:51:55.639255 18961 kubelet.go:2344] «Сеть среды выполнения контейнера не готова» networkReady = «NetworkRe... инициализирована»
mai 22 12:52:00 master-node kubelet[18961]: E0522 12:52:00.640514 18961 kubelet.go:2344] «Сеть среды выполнения контейнера не готова» networkReady = «NetworkRe... инициализирована»
mai 22 12:52:05 master-node kubelet[18961]: E0522 12:52:05.641452 18961 kubelet.go:2344] «Сеть среды выполнения контейнера не готова» networkReady = «NetworkRe... инициализирована»
mai 22 12:52:10 master-node kubelet[18961]: E0522 12:52:10.642237 18961 kubelet.go:2344] «Сеть среды выполнения контейнера не готова» networkReady = «NetworkRe... инициализирована»
Подсказка: некоторые строки были выделены эллипсами, используйте -l, чтобы показать их полностью.
и
[root@master-node yum.repos.d]# rpm -qa|grep containerd
containerd.io-1.6.4-3.1.el7.x86_64
[root@master-node yum.repos.d]# rpm -qa |grep kube
кубадм-1.24.0-0.x86_64
кубектл-1.24.0-0.x86_64
кубелет-1.24.0-0.x86_64
Kubernetes-cni-0.8.7-0.x86_64
Также я попытался установить Calico:
[root@master-node .kube]# kubectl apply -f calico.yaml
В соединении с сервером localhost:8080 было отказано - вы указали правильный хост или порт?
и
[root@master-node ~]# cat /usr/lib/systemd/system/kubelet.service.d/10-kubeadm.conf
# Примечание. Этот дропин работает только с kubeadm и kubelet v1.11+.
[Оказание услуг]
Environment="KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf"
Среда="KUBELET_CONFIG_ARGS=--config=/var/lib/kubelet/config.yaml"
Environment="KUBELET_KUBEADM_ARGS=--node-ip=10.XXXXXX --container-runtime=remote --container-runtime-endpoint=/run/containerd/containerd.sock --cgroup-driver=systemd
# Это файл, который "kubeadm init" и "kubeadm join" генерируют во время выполнения, динамически заполняя переменную KUBELET_KUBEADM_ARGS.
EnvironmentFile=-/var/lib/kubelet/kubeadm-flags.env
# Это файл, который пользователь может использовать для переопределения аргументов kubelet в крайнем случае. Желательно, чтобы пользователь использовал
# вместо этого объект .NodeRegistration.KubeletExtraArgs в файлах конфигурации. KUBELET_EXTRA_ARGS должен быть получен из этого файла.
EnvironmentFile=-/etc/sysconfig/kubelet
ExecStart=
ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ARGS $KUBELET_EXTRA_ARGS
я не могу понять, если:
[править: я отвечаю на свои вопросы ниже]
- из-за containerd мне нужно запустить kubeadm init --config.yaml? ответ : => [НЕТ]
- если мне нужно сначала установить CNI, например Calico? ответ: => [NO kubeadm init может быть в порядке без]
[edit] такая же установка работает с google dns и без прокси компании.