kubernetes фланелевый демон демон не запускается (Чистая Ubuntu 16 и 18)

Я только что установил kubernetes на чистую машину с Ubuntu, выполнив следующие действия (из академии Linux):

Как корень:

apt install -y docker.io

cat << EOF >/etc/docker/daemon.json
{
  "exec-opts": ["native.cgroupdriver=systemd"]
}
EOF

curl -s http://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -

cat << EOF >/etc/apt/sources.list.d/kubernetes.list
deb http://apt.kubernetes.io/ kubernetes-xenial main
EOF

apt update -y

apt install -y kubeadm kubectl kubelet

Затем обычным пользователем инициализируем kubernetes:

sudo kubeadm init --pod-network-cidr=10.244.0.0/16

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

На данный момент узел настроен, но еще не готов, поэтому я запускаю yml для фланели для создания демона, сервисов и модулей:

sudo kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/v0.9.1/Documentation/kube-flannel.yml

Но я не вижу стручков, и наборы демонов получили желаемые стручки = 0

Стручков нет (сердечники ждут установки фланели):

NAMESPACE     NAME                                                 READY   STATUS    RESTARTS   AGE
kube-system   coredns-576cbf47c7-j2rbn                             0/1     Pending   0          2m25s
kube-system   coredns-576cbf47c7-lqhrj                             0/1     Pending   0          2m25s
kube-system   etcd-webdriver1.mylabserver.com                      1/1     Running   0          118s
kube-system   kube-apiserver-webdriver1.mylabserver.com            1/1     Running   0          94s
kube-system   kube-controller-manager-webdriver1.mylabserver.com   1/1     Running   0          89s
kube-system   kube-proxy-fzh97                                     1/1     Running   0          2m25s
kube-system   kube-scheduler-webdriver1.mylabserver.com            1/1     Running   0          90s

И Деймонсет

NAMESPACE     NAME                             DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR                   AGE
kube-system   daemonset.apps/kube-flannel-ds   0         0         0       0            0           beta.kubernetes.io/arch=amd64   3m49s
kube-system   daemonset.apps/kube-proxy        1         1         1       1            1           <none>                          48m

Любая помощь, как я могу отладить эту проблему?

1 ответ

Решение

Файл конфигурации, который вы применяете для создания фланелевых ресурсов, содержит слишком строгие допуски демона, поэтому блоки не будут запланированы ни на одном узле. Добавьте допуск календарного планирования для набора демонов фланели (как это делает конфигурация канала), и они будут запланированы, как ожидается. Вы можете сделать это двумя способами:

(1) Патч вашей существующей конфигурации

kubectl patch daemonset kube-flannel-ds \
  --namespace=kube-system \
  --patch='{"spec":{"template":{"spec":{"tolerations":[{"key": "node-role.kubernetes.io/master", "operator": "Exists", "effect": "NoSchedule"},{"effect":"NoSchedule","operator":"Exists"}]}}}}'

(2) Измените файл конфигурации, включив в него следующее перед его применением:

...
spec:
  template:
    ...
    spec:
      ...
      tolerations:
        - key: node-role.kubernetes.io/master
          operator: Exists
          effect: NoSchedule
        - operator: Exists
          effect: NoSchedule
      ...

Это было проблемой для моих кластеров при обновлении с k8s v1.10. Похоже, что это связано с изменением порок / допусков в разных версиях k8s.

Другие вопросы по тегам