Не удалось найти детали CGroups в файле 10-kubeadm.conf - PullRequest
0 голосов
/ 28 июня 2018

Я пытался настроить кластер Kubernetes на основе документации. https://kubernetes.io/docs/tasks/tools/install-kubeadm/

Я устанавливаю kubeadm, запустив:

 yum install -y kubeadm

Я собирался обновить файл 10-kubeadm.conf, как указано в документе. Но файл выглядит совершенно иначе, это было так https://github.com/kubernetes/kubernetes/blob/master/build/rpms/10-kubeadm.conf.

Примечание: этот дропин работает только с kubeadm и kubelet v1.11 +

[Service]
Environment="KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf"
Environment="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

У него нет переменной драйвера Cgroup. Так что в этом случае, как мы должны продолжить установку.

1 Ответ

0 голосов
/ 29 июня 2018

Прежде всего убедитесь, что помимо kubeadm вы также установили kubelet и kubectl. Если нет, установите их.

yum install -y kubelet kubectl

Проверьте, запущен ли Docker с драйвером cgroup systemd.

docker info | grep -i cgroup

Измените файл 10-kubeadm.conf и добавьте новую строку.

Environment="KUBELET_CGROUP_ARGS=--cgroup-driver=systemd"

Кроме того, необходимо добавить переменную $KUBELET_CGROUP_ARGS в раздел ExecStart.

И, наконец, перезагрузите systemd конфигурацию менеджера и перезапустите kubelet службу, как описано здесь .

systemctl daemon-reload && service kubelet restart

UPDATE

Начиная с версии 1.11 Kubernetes автоматически определяет правильный драйвер cgroup, и вы можете просто пропустить шаг о настройках драйвера cgroup. Это из журнала изменений :

kubeadm теперь обнаруживает драйвер Docker cgroup и запускает kubelet с соответствующим драйвером. Это устраняет распространенную ошибку, с которой сталкиваются новые пользователи, когда драйвер Docker cgroup не совпадает с драйвером, установленным для kubelet, из-за разных дистрибутивов Linux, устанавливающих разные драйверы cgroup для Docker, что затрудняет запуск драйвера kubelet правильно. (# 64347, @ neolit123)

...