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.