Невозможно настроить внешний кластер etcd в Kubernetes v1.15 с помощью kubeadm - PullRequest
2 голосов
/ 06 июля 2019

Я пытаюсь настроить кластер Kubernetes с несколькими основными и внешним кластером etcd. Выполните следующие действия, как описано в kubernetes.io . После выполнения шага 7 я смог создать статические файлы модуля манифеста на всех 3 хостах в папке / etc / kubernetes / manifest.

После этого, когда я выполнил команду ' sudo kubeadmin init ', инициализация не удалась из-за ошибок kubelet. Также проверенные журналы journalctl, ошибка говорит о неправильной настройке драйвера cgroup, который похож на эту SO ссылку .

Я пытался, как сказано в приведенной выше ссылке SO, но не смог разрешить.

Пожалуйста, помогите мне решить эту проблему.

Для установки docker, kubeadm, kubectl и kubelet я следил только за сайтом kubernetes.io.

Окружающая среда:

Облако: AWS

Экземпляр EC2 ОС: Ubuntu 18.04

Версия докера: 18.09.7

Спасибо

1 Ответ

1 голос
/ 08 июля 2019

После поиска нескольких ссылок и нескольких трейлов я смог решить эту проблему.

Как указано в настройке среды выполнения контейнера , драйвер Docker cgroup является системным. Но драйвером cgroup по умолчанию для Kubelet является cgroupfs. Так как Kubelet сам по себе не может автоматически идентифицировать драйвер cgroup (как указано в kubernetes.io документах), мы должны предоставить драйвер cgroup извне при запуске Kubelet, как показано ниже:

cat << EOF> /etc/systemd/system/kubelet.service.d/20-etcd-service-manager.conf

[Service]

ExecStart =

ExecStart = / usr / bin / kubelet - cgroup-driver = systemd --адрес = 127.0.0.1 --pod-> manifest-path = / etc / kubernetes / manifes

Restart = всегда

EOF

systemctl daemon-reload

systemctl restart kubelet

Более того, нет необходимости запускать sudo kubeadm init, так как мы предоставляем --pod-manifest-path для Kubelet, он запускает etcd как Static POD.

Для отладки логи Kubelet можно проверить с помощью следующей команды

journalctl -u kubelet -r

Надеюсь, это поможет. Спасибо.

...