Я пытаюсь настроить кластер Kubernetes на наборе Raspberry Pi 4, я столкнулся с проблемой сбоя kubelet при запуске команды kubeadm init
I0205 12:29:52.930582 5348 local.go:65] [etcd] записал манифест Static Pod для локального члена etcd в «/etc/kubernetes/manifests/etcd.yaml»
I0205 12:29:52.930638 5348 waitcontrolplane.go:91] [wait-control-plane] Ожидание работоспособности сервера API
[wait-control-plane] Ожидание загрузки kubelet плоскости управления в виде статических подов из каталога «/etc/kubernetes/manifests». Это может занять до 4 минут
[kubelet-check] Первоначальный тайм-аут в 40 секунд пройден.
[kubelet-check] Похоже, kubelet не работает или не работает.
[kubelet-check] HTTP-вызов, равный 'curl -sSL http://localhost:10248/healthz', завершился ошибкой: Get "http://localhost:10248/healthz": наберите tcp [::1]:10248 :connect: в соединении отказано.
[kubelet-check] Похоже, kubelet не работает или не работает.
[kubelet-check] HTTP-вызов, равный 'curl -sSL http://localhost:10248/healthz', завершился ошибкой: Get "http://localhost:10248/healthz": наберите tcp [::1]:10248 :connect: в соединении отказано.
[kubelet-check] Похоже, kubelet не работает или не работает.
[kubelet-check] HTTP-вызов, равный 'curl -sSL http://localhost:10248/healthz', завершился ошибкой: Get "http://localhost:10248/healthz": наберите tcp [::1]:10248 :connect: в соединении отказано.
[kubelet-check] Похоже, kubelet не работает или не работает.
[kubelet-check] HTTP-вызов, равный 'curl -sSL http://localhost:10248/healthz', завершился ошибкой: Get "http://localhost:10248/healthz": наберите tcp [::1]:10248 :connect: в соединении отказано.
[kubelet-check] Похоже, kubelet не работает или не работает.
[kubelet-check] HTTP-вызов, равный 'curl -sSL http://localhost:10248/healthz', завершился ошибкой: Get "http://localhost:10248/healthz": наберите tcp [::1]:10248 :connect: в соединении отказано.
К сожалению, произошла ошибка:
истекло время ожидания условия
Эта ошибка, вероятно, вызвана:
- Кубелет не запущен
- Кублет неисправен из-за неправильной настройки узла (необходимые cgroups отключены)
Если вы работаете в системе на основе systemd, вы можете попытаться устранить ошибку с помощью следующих команд:
- 'кубелет статуса systemctl'
- 'journalctl -xeu кубелет'
Кроме того, компонент плоскости управления мог аварийно завершать работу при запуске средой выполнения контейнера.
Чтобы устранить неполадки, перечислите все контейнеры, используя предпочитаемый интерфейс командной строки среды выполнения контейнеров.
Вот один пример того, как вы можете перечислить все контейнеры Kubernetes, работающие в докере:
- 'докер ps -a | grep куб | grep -v пауза'
Как только вы нашли неисправный контейнер, вы можете проверить его журналы с помощью:
- 'журналы докера CONTAINERID'
не удалось инициализировать кластер Kubernetes
k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/init.runWaitControlPlanePhase
/workspace/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/init/waitcontrolplane.go:118
k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/workflow.(*Runner).Run.func1
/workspace/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/workflow/runner.go:234
k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/workflow.(*Runner).visitAll
/workspace/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/workflow/runner.go:421
k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/workflow.(*Runner).Выполнить
/workspace/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/workflow/runner.go:207
k8s.io/kubernetes/cmd/kubeadm/app/cmd.newCmdInit.func1
/workspace/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/cmd/kubeadm/app/cmd/init.go:153
k8s.io/kubernetes/vendor/github.com/spf13/cobra.(*Command).execute
/workspace/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/vendor/github.com/spf13/cobra/command.go:856
k8s.io/kubernetes/vendor/github.com/spf13/cobra.(*Command).ExecuteC
/workspace/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/vendor/github.com/spf13/cobra/command.go:974
k8s.io/kubernetes/vendor/github.com/spf13/cobra.(*Команда).Выполнить
/workspace/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/vendor/github.com/spf13/cobra/command.go:902
k8s.io/kubernetes/cmd/kubeadm/app.Run
/workspace/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/cmd/kubeadm/app/kubeadm.go:50
main.main
_output/dockerized/go/src/k8s.io/kubernetes/cmd/kubeadm/kubeadm.go:25
время выполнения.main
/usr/local/go/src/runtime/proc.go:255
время выполнения.goexit
/usr/local/go/src/runtime/asm_arm.s:838
фаза выполнения ошибки ожидания-управления-плоскости
k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/workflow.(*Runner).Run.func1
/workspace/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/workflow/runner.go:235
k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/workflow.(*Runner).visitAll
/workspace/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/workflow/runner.go:421
k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/workflow.(*Runner).Выполнить
/workspace/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/cmd/kubeadm/app/cmd/phases/workflow/runner.go:207
k8s.io/kubernetes/cmd/kubeadm/app/cmd.newCmdInit.func1
/workspace/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/cmd/kubeadm/app/cmd/init.go:153
k8s.io/kubernetes/vendor/github.com/spf13/cobra.(*Command).execute
/workspace/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/vendor/github.com/spf13/cobra/command.go:856
k8s.io/kubernetes/vendor/github.com/spf13/cobra.(*Command).ExecuteC
/workspace/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/vendor/github.com/spf13/cobra/command.go:974
k8s.io/kubernetes/vendor/github.com/spf13/cobra.(*Команда).Выполнить
/workspace/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/vendor/github.com/spf13/cobra/command.go:902
k8s.io/kubernetes/cmd/kubeadm/app.Run
/workspace/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/cmd/kubeadm/app/kubeadm.go:50
main.main
_output/dockerized/go/src/k8s.io/kubernetes/cmd/kubeadm/kubeadm.go:25
время выполнения.main
/usr/local/go/src/runtime/proc.go:255
время выполнения.goexit
/usr/local/go/src/runtime/asm_arm.s:838
журнал -xeu kubelet возвращает следующее
kubelet[6145]: Флаг --network-plugin устарел, будет удален вместе с dockershi.
kubelet[6145]: Флаг --network-plugin устарел, будет удален вместе с dockershi.
kubelet[6145]: I0205 12:30:42.432739 6145 server.go:446] «Версия Kubelet» kubeletVersion="v1.23.3"
kubelet[6145]: I0205 12:30:42.434017 6145 server.go:874] «Включена ротация клиентов, загрузка в фоновом режиме»
kubelet[6145]: I0205 12:30:42.439452 6145 certificate_store.go:130] Загрузка пары сертификат/ключ из «/var/lib/kubelet/pki/kubelet-client-current.pem».
kubelet[6145]: I0205 12:30:42.442739 6145 dynamic_cafile_content.go:156] «Запуск контроллера» name="client-ca-bundle::/etc/kubernetes/pki/ca.crt"
kubelet[6145]: W0205 12:30:42.442919 6145 manager.go:159] Не удается обнаружить текущую cgroup в cgroup v2
kubelet[6145]: W0205 12:30:42.661741 6145 sysinfo.go:203] Топология узлов недоступна, указана топология ЦП
kubelet[6145]: W0205 12:30:42.663764 6145 machine.go:65] Не удается правильно прочитать идентификатор поставщика, установите пустой.
kubelet[6145]: I0205 12:30:42.666660 6145 server.go:693] "--cgroups-per-qos включен, но --cgroup-root не указан. По умолчанию /"
kubelet [6145]: I0205 12:30:42.667641 6145 container_manager_linux.go:281] «Диспетчер контейнеров подтвердил, что указанный пользователем cgroup-root существует» cgroupRoot=[]
kubelet[6145]: I0205 12:30:42.667940 6145 container_manager_linux.go:286] «Создание объекта Container Manager на основе конфигурации узла» nodeConfig={RuntimeCgroupsName: SystemCgroups>
kubelet[6145]: I0205 12:30:42.668146 6145 topology_manager.go:133] «Создание менеджера топологии с политикой для каждой области» topologyPolicyName="none" topologyScopeName="container"
kubelet[6145]: I0205 12:30:42.668188 6145 container_manager_linux.go:321] «Создание диспетчера подключаемых модулей устройства» devicePluginEnabled=true
kubelet[6145]: I0205 12:30:42.668256 6145 state_mem.go:36] «Инициализировано новое хранилище состояний в памяти»
kubelet[6145]: I0205 12:30:42.668448 6145 kubelet.go:313] «Использование dockershim устарело, рассмотрите возможность использования полноценной реализации CRI»
kubelet[6145]: I0205 12:30:42.668635 6145 client.go:80] "Подключение к докеру на dockerEndpoint" endpoint="unix:///var/run/docker.sock"
kubelet[6145]: I0205 12:30:42.668699 6145 client.go:99] «Запустить клиент Docker с тайм-аутом запроса» timeout = «2m0s»
kubelet[6145]: I0205 12:30:42.705426 6145 docker_service.go:571] «Режим шпильки установлен, но kubenet не включен, откат к HairpinVeth» hairpinMode=promiscuous-bridge
kubelet[6145]: I0205 12:30:42.705510 6145 docker_service.go:243] «Установлен режим шпильки» hairpinMode=шпилька-veth
kubelet[6145]: I0205 12:30:42.705832 6145 cni.go:240] «Невозможно обновить конфигурацию cni» err = «в /etc/cni/net.d сети не найдены»
kubelet[6145]: I0205 12:30:42.712758 6145 cni.go:240] «Невозможно обновить конфигурацию cni» err = «в /etc/cni/net.d сети не найдены»
kubelet[6145]: I0205 12:30:42.712950 6145 docker_service.go:258] «Сеть Docker cri управляется сетевым плагином» networkPluginName="cni"
kubelet[6145]: I0205 12:30:42.713256 6145 cni.go:240] «Невозможно обновить конфигурацию cni» err = «в /etc/cni/net.d сети не найдены»
kubelet[6145]: I0205 12:30:42.750856 6145 docker_service.go:264] «Информация о Docker» dockerInfo=&{ID:GLFU:JW22:MA7Q:YPYL:UDSW:E4EC:G2M3:QSBM:G7YC:S2YF:YT6I: Контейнеры J34B:0 Содержат>
kubelet [6145]: I0205 12:30:42.750943 6145 docker_service.go:279] «Настройка cgroupDriver» cgroupDriver = «systemd»
kubelet[6145]: I0205 12:30:42.824353 6145 kubelet.go:416] «Попытка синхронизации узла с сервером API»
kubelet[6145]: I0205 12:30:42.824406 6145 kubelet.go:278] «Добавление пути статического модуля» path="/etc/kubernetes/manifests"
kubelet[6145]: I0205 12:30:42.824521 6145 kubelet.go:289] «Добавление источника модуля apiserver»
kubelet[6145]: I0205 12:30:42.824593 6145 apiserver.go:42] «Ожидание синхронизации узла перед просмотром модулей apiserver»
kubelet[6145]: W0205 12:30:42.827626 6145 Reflector.go:324] k8s.io/client-go/informers/factory.go:134: не удалось перечислить *v1.Node: получить «https://192.168. 1.53:6443/api/v1/узлы?поле>
kubelet[6145]: E0205 12:30:42.828345 6145 Reflector.go:138] k8s.io/client-go/informers/factory.go:134: не удалось просмотреть *v1.Node: не удалось просмотреть *v1.Node: Получить "https://192.168.1>
kubelet[6145]: W0205 12:30:42.829064 6145 Reflector.go:324] k8s.io/client-go/informers/factory.go:134: не удалось перечислить *v1.Service: получить «https://192.168. 1.53:6443/апи/v1/сервис>
kubelet[6145]: E0205 12:30:42.829173 6145 Reflector.go:138] k8s.io/client-go/informers/factory.go:134: не удалось просмотреть *v1.Service: не удалось просмотреть *v1.Service: Получить "https://192>
kubelet[6145]: I0205 12:30:42.866086 6145 kuberuntime_manager.go:248] «Среда выполнения контейнера инициализирована» containerRuntime="docker" version="20.10.12" apiVersion="1.41.0"
kubelet[6145]: I0205 12:30:42.867183 6145 server.go:1231] «Запущен kubelet»
kubelet[6145]: I0205 12:30:42.867659 6145 server.go:150] «Начало прослушивания» адрес = «0.0.0.0» порт = 10250
kubelet[6145]: E0205 12:30:42.869415 6145 kubelet.go:1351] «Однажды произошел сбой при сборке мусора изображения. Возможно, инициализация статистики еще не завершена» err="не удалось получить изображения в>
kubelet[6145]: E0205 12:30:42.869315 6145 event.go:276] Невозможно записать событие: '&v1.Event{TypeMeta:v1.TypeMeta{Kind:"", APIVersion:""}, ObjectMeta:v1.ObjectMeta {Имя:"пи-кубе-м>
kubelet[6145]: I0205 12:30:42.869879 6145 server.go:410] «Добавление обработчиков отладки на сервер kubelet»
kubelet[6145]: I0205 12:30:42.871657 6145 fs_resource_analyzer.go:67] «Запуск FS ResourceAnalyzer»
kubelet[6145]: I0205 12:30:42.873710 6145 volume_manager.go:291] «Запуск диспетчера томов Kubelet»
kubelet[6145]: I0205 12:30:42.875471 6145 требуемое_состояние_of_world_populator.go:147] «Начинает выполняться заполнитель желаемого состояния»
kubelet[6145]: E0205 12:30:42.880669 6145 controller.go:144] не удалось убедиться, что аренда существует, повторная попытка через 200 мс, ошибка: Get "https://192.168.1.53:6443/apis/coordinate.k8s.io />
kubelet[6145]: W0205 12:30:42.887766 6145 Reflector.go:324] k8s.io/client-go/informers/factory.go:134: не удалось перечислить *v1.CSIDriver: получить «https://192.168. 1.53:6443/apis/хранилище>
kubelet[6145]: E0205 12:30:42.888790 6145 Reflector.go:138] k8s.io/client-go/informers/factory.go:134: не удалось просмотреть *v1.CSIDriver: не удалось просмотреть *v1.CSIDriver: Получите "https:/>
kubelet[6145]: E0205 12:30:42.934490 6145 kubelet.go:2347] «Сеть среды выполнения контейнера не готова» networkReady="NetworkReady=false причина: сообщение NetworkPluginNotReady: docker: сетевой плагин не готов: конфигурация cni не инициализирована"
kubelet[6145]: E0205 12:30:42.974631 6145 kubelet.go:2422] "Ошибка получения узла" err="узел \"pi-kube-master\" не найден"
kubelet[6145]: I0205 12:30:42.980188 6145 kubelet_network_linux.go:57] «Инициализированные правила протокола iptables». протокол = IPv4
kubelet[6145]: I0205 12:30:43.046659 6145 kubelet_node_status.go:70] "Попытка зарегистрировать узел" node="pi-kube-master"
kubelet[6145]: E0205 12:30:43.048340 6145 kubelet_node_status.go:92] «Невозможно зарегистрировать узел на сервере API» err="Post \"https://192.168.1.53:6443/api/v1/nodes\" : наберите tcp 19>
kubelet[6145]: паника: невыровненная 64-битная атомарная операция
kubelet[6145]: горутина 380 [работает]:
kubelet[6145]: время выполнения/внутренний/atomic.panicUnaligned()
kubelet[6145]: /usr/local/go/src/runtime/internal/atomic/unaligned.go:8 +0x24
kubelet[6145]: время выполнения/внутренний/атомный.Load64(0x857016c)
kubelet[6145]: /usr/local/go/src/runtime/internal/atomic/atomic_arm.s:286 +0x14
kubelet[6145]: k8s.io/kubernetes/vendor/github.com/google/cadvisor/manager.(*containerData).updateStats(0x8570000)
kubelet[6145]: /workspace/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/vendor/github.com/google/cadvisor/manager/container.go:676 +0x438
kubelet[6145]: k8s.io/kubernetes/vendor/github.com/google/cadvisor/manager.(*containerData).housekeepingTick(0x8570000, 0x8535500, 0x5f5e100)
kubelet[6145]: /workspace/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/vendor/github.com/google/cadvisor/manager/container.go:587 +0x104
kubelet[6145]: k8s.io/kubernetes/vendor/github.com/google/cadvisor/manager.(*containerData).housekeeping(0x8570000)
kubelet[6145]: /workspace/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/vendor/github.com/google/cadvisor/manager/container.go:535 +0x3bc
kubelet[6145]: создан k8s.io/kubernetes/vendor/github.com/google/cadvisor/manager.(*containerData).Start
kubelet[6145]: /workspace/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/vendor/github.com/google/cadvisor/manager/container.go:122 +0x2c
systemd[1]: kubelet.service: основной процесс завершен, code=exited, status=2/INVALIDARGUMENT
Я вижу отказ в соединении через порт 6443, но не вижу проблемы с iptables или службы, прослушивающей этот порт. Я также не вижу, чтобы контейнеры запускались.