я столкнулся с этим кубелет ошибка на моем кластере k8s под управлением CentOS 7. Эта ошибка возникла после того, как я недавно перезагрузил узлы кластера. Раньше я не сталкивался с подобной проблемой, перезагружая машины.
я пытался бежать swapoff -a
отключить своп, но это не решает проблему.
Вот статус systemctl kubelet -l
журнал:
[root@test-master ~]# статус systemctl kubelet -l
kubelet.service — kubelet: агент узла Kubernetes
Загружено: загружено (/usr/lib/systemd/system/kubelet.service; включено; предустановка поставщика: отключена)
Вставка: /usr/lib/systemd/system/kubelet.service.d
ââ10-kubeadm.conf
Активно: активация (автоматический перезапуск) (Результат: код выхода) с понедельника 2022-05-30 13:59:51 +08; 822 мс назад
Документы: https://kubernetes.io/docs/
Процесс: 9325 ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ARGS $KUBELET_EXTRA_ARGS (код=выход, статус=1/FAILURE)
Основной PID: 9325 (код=выход, статус=1/ОШИБКА)
May 30 13:59:51 test-master kubelet[9325]: Insecure values: TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_ECDSA_WITH_RC4_128_SHA, TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_RSA_WITH_RC4_128_SHA, TLS_RSA_WITH_3DES_EDE_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA256, TLS_RSA_WITH_RC4_128_SHA. (УСТАРЕЛО: этот параметр должен быть установлен через файл конфигурации, указанный флагом --config в Kubelet. См. https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для получения дополнительной информации.)
30 мая, 13:59:51 test-master kubelet[9325]: --tls-min-version string Минимальная поддерживаемая версия TLS. Возможные значения: VersionTLS10, VersionTLS11, VersionTLS12, VersionTLS13 (УСТАРЕЛО: этот параметр должен быть установлен через файл конфигурации, указанный флагом --config Kubelet. См. https://kubernetes.io/docs/tasks/administer-cluster/kubelet- config-file/ для получения дополнительной информации.)
30 мая 13:59:51 test-master kubelet[9325]: --tls-private-key-file string Файл, содержащий закрытый ключ x509, соответствующий --tls-cert-file. (УСТАРЕЛО: этот параметр должен быть установлен через файл конфигурации, указанный флагом --config в Kubelet. См. https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для получения дополнительной информации.)
30 мая, 13:59:51 test-master kubelet[9325]: --topology-manager-policy строка Используемая политика менеджера топологии. Возможные значения: «нет», «максимальные усилия», «ограниченный», «один-нума-узел». (по умолчанию «нет») (УСТАРЕЛО: этот параметр должен быть установлен через файл конфигурации, указанный флагом --config Kubelet. См. https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для дополнительной информации.)
30 мая 13:59:51 test-master kubelet[9325]: --topology-manager-scope string Область, к которой применяются подсказки топологии. Менеджер топологии собирает подсказки от поставщиков подсказок и применяет их к определенной области, чтобы обеспечить допуск модуля. Возможные значения: «контейнер», «контейнер». (по умолчанию «контейнер») (УСТАРЕЛО: этот параметр должен быть установлен через файл конфигурации, указанный флагом --config Kubelet. См. https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для дополнительной информации.)
30 мая 13:59:51 test-master kubelet[9325]: -v, --v Номер уровня детализации на уровне лога
30 мая 13:59:51 test-master kubelet[9325]: --version version[=true] Распечатать информацию о версии и выйти
30 мая, 13:59:51 test-master kubelet[9325]: --vmodule pattern=N,... разделенный запятыми список настроек pattern=N для ведения журнала с фильтрацией файлов (работает только для текстового формата журнала)
30 мая, 13:59:51. -plugins/volume/exec/") (УСТАРЕЛО: этот параметр должен быть установлен через файл конфигурации, указанный флагом --config Kubelet. См. https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config. -file/ для получения дополнительной информации.)
30 мая, 13:59:51 test-master kubelet[9325]: --volume-stats-agg-period duration Указывает интервал, в течение которого kubelet рассчитывает и кэширует использование дискового тома для всех модулей и томов. Чтобы отключить вычисления объема, установите отрицательное число. (по умолчанию 1m0s) (УСТАРЕЛО: этот параметр должен быть установлен через файл конфигурации, указанный флагом --config Kubelet. См. https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/ для получения дополнительной информации. Информация.)
Это содержание /usr/lib/systemd/system/kubelet.service.d/10-kubeadm.conf
упомянуто в предыдущем журнале:
[root@test-master ~]# 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"
# Это файл, который "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
Я также пытался добавить Environment="KUBELET_SYSTEM_PODS_ARGS=--pod-manifest-path=/etc/kubernetes/manifests --allow-привилегированный=true --fail-swap-on=false"
в указанный файл здесь вместе с systemctl демон-перезагрузка
и systemctl перезапустить кубелет
но это не помогает.
К сожалению, я не совсем уверен в версии сервера, но она должна быть такой же, как у меня. версия клиента [v1.23.3].
[root@test-master ~]# версия kubectl
Версия клиента: version.Info{Major:"1", Minor:"23", GitVersion:"v1.23.3", GitCommit:"816c97ab8cff8a1c72eccca1026f7820e93e0d25", GitTreeState:"clean", BuildDate:"2022-01-25T21:25: 17Z", версия Go: "go1.17.6", компилятор: "gc", платформа: "linux/amd64"}
В соединении с сервером 10.17.98.171:6443 было отказано - вы указали правильный хост или порт?
Могу ли я каким-либо образом спасти свой кластер без сброса всего кластера? Я надеюсь, что смогу получить доступ к своим развертываниям, ранее работавшим в кластере.
Обновлять:
Я попытался найти сообщения об ошибках в журнале, используя журналctl -fu кубелет
и это самое близкое, что я могу найти.
31 мая, 08:58:12 test-master systemd[1]: время задержки kubelet.service истекло, запланирован перезапуск.
31 мая, 08:58:12 test-master systemd[1]: остановлен kubelet: агент узла Kubernetes.
31 мая, 08:58:12 test-master systemd[1]: запущен kubelet: агент узла Kubernetes.
31 мая 08:58:12 test-master kubelet[5280]: ошибка: не удалось разобрать флаг kubelet: неизвестный флаг: --network-plugin
Кроме того, вот мой версия кублета Кубернетес v1.24.1
.
Похоже, это связано с этой проблемой на GitHub, https://github.com/kubernetes/веб-сайт/issues/33640.