Я только что установил kubernetes на чистую машину ubuntu, выполнив следующие шаги (из академии Linux):
Как root:
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
Затем как обычный пользователь инициализируйте кубернеты:
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
Любая помощь, как я могу отладить эту проблему?
Файл конфигурации, который вы применяете для создания ресурсов фланели, включает в себя слишком строгие допуски для демонов, поэтому модули не будут планироваться ни на каких узлах. Добавьте допуск к общему расписанию в демон flannel (например, конфигурация канала делает), и они будут запланированы, как и ожидалось. Сделать это можно двумя способами:
(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.