Я пытаюсь установить кластер kubernetes на моем сервере (Debian 10). На моем сервере я использовал UFW в качестве брандмауэра. Перед созданием кластера я разрешил следующие порты для ufw: 179 / tcp, 4789 / udp, 5473 / tcp, 443 / tcp, 6443 / tcp, 2379 / tcp, 4149 / tcp, 10250 / tcp, 10255 / tcp, 10256 / tcp , 9099 / tcp, 6443 / tcp
ПРИМЕЧАНИЕ: все исполняемые команды начинаются с $
- После этого В начальной инструкции я установил ufw на Debian 10 и включил те же порты, о которых вы упомянули:
$ sudo apt update && sudo apt-upgrade -y
$ sudo apt install ufw -y
$ sudo ufw allow ssh
Rule added
Rule added (v6)
$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
$ sudo ufw allow 179/tcp
$ sudo ufw allow 4789/tcp
$ sudo ufw allow 5473/tcp
$ sudo ufw allow 443/tcp
$ sudo ufw allow 6443/tcp
$ sudo ufw allow 2379/tcp
$ sudo ufw allow 4149/tcp
$ sudo ufw allow 10250/tcp
$ sudo ufw allow 10255/tcp
$ sudo ufw allow 10256/tcp
$ sudo ufw allow 9099/tcp
$ sudo ufw status
Status: active
To Action From
-- ------ ----
22/tcp ALLOW Anywhere
179/tcp ALLOW Anywhere
4789/tcp ALLOW Anywhere
5473/tcp ALLOW Anywhere
443/tcp ALLOW Anywhere
6443/tcp ALLOW Anywhere
2379/tcp ALLOW Anywhere
4149/tcp ALLOW Anywhere
10250/tcp ALLOW Anywhere
10255/tcp ALLOW Anywhere
10256/tcp ALLOW Anywhere
22/tcp (v6) ALLOW Anywhere (v6)
179/tcp (v6) ALLOW Anywhere (v6)
4789/tcp (v6) ALLOW Anywhere (v6)
5473/tcp (v6) ALLOW Anywhere (v6)
443/tcp (v6) ALLOW Anywhere (v6)
6443/tcp (v6) ALLOW Anywhere (v6)
2379/tcp (v6) ALLOW Anywhere (v6)
4149/tcp (v6) ALLOW Anywhere (v6)
10250/tcp (v6) ALLOW Anywhere (v6)
10255/tcp (v6) ALLOW Anywhere (v6)
10256/tcp (v6) ALLOW Anywhere (v6)
$ sudo apt-get update
$ sudo apt-get install -y apt-transport-https ca-certificates curl gnupg2 software-properties-common=
- Добавление Docker хранилища:
$ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
$ sudo apt-key fingerprint 0EBFCD88
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian buster stable"
- Обновление списка источников и установка Docker -ce:
$ sudo apt-get update
$ sudo apt-get -y install docker-ce
ПРИМЕЧАНИЕ: В производственной системе рекомендуется установить фиксированную версию docker:
$ apt-cache madison docker-ce
$ sudo apt-get install docker-ce=<VERSION>
$ curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
- Настройка репозитория Kubernetes (скопируйте 3 строки и вставьте сразу):
$ cat <<EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
deb https://apt.kubernetes.io/ kubernetes-xenial main
EOF
$ sudo apt-get update
$ sudo apt-get install -y kubelet kubeadm kubectl
- После установки пометьте эти пакеты, чтобы они не обновлялись автоматически:
$ sudo apt-mark hold kubelet kubeadm kubectl
$ sudo kubeadm init --pod-network-cidr=192.168.0.0/16
- Сделать kubectl включенным не-1135 * пользователю:
$ mkdir -p $HOME/.kube
$ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
$ sudo chown $(id -u):$(id -g) $HOME/.kube/config
$ kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
configmap/calico-config created
customresourcedefinition.apiextensions.k8s.io/bgpconfigurations.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/bgppeers.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/blockaffinities.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/clusterinformations.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/felixconfigurations.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/globalnetworkpolicies.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/globalnetworksets.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/hostendpoints.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/ipamblocks.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/ipamconfigs.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/ipamhandles.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/ippools.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/networkpolicies.crd.projectcalico.org created
customresourcedefinition.apiextensions.k8s.io/networksets.crd.projectcalico.org created
clusterrole.rbac.authorization.k8s.io/calico-kube-controllers created
clusterrolebinding.rbac.authorization.k8s.io/calico-kube-controllers created
clusterrole.rbac.authorization.k8s.io/calico-node created
clusterrolebinding.rbac.authorization.k8s.io/calico-node created
daemonset.apps/calico-node created
serviceaccount/calico-node created
deployment.apps/calico-kube-controllers created
serviceaccount/calico-kube-controllers created
$ kubectl get pods -n kube-system
NAME READY STATUS RESTARTS AGE
calico-kube-controllers-555fc8cc5c-wnnvq 1/1 Running 0 26m
calico-node-sngt8 1/1 Running 0 26m
coredns-66bff467f8-2qqlv 1/1 Running 0 55m
coredns-66bff467f8-vptpr 1/1 Running 0 55m
etcd-kubeadm-ufw-debian10 1/1 Running 0 55m
kube-apiserver-kubeadm-ufw-debian10 1/1 Running 0 55m
kube-controller-manager-kubeadm-ufw-debian10 1/1 Running 0 55m
kube-proxy-nx8cz 1/1 Running 0 55m
kube-scheduler-kubeadm-ufw-debian10 1/1 Running 0 55m
Соображения:
Извините, мой UFW правила немного запутанны, я пытался слишком много вещей, чтобы заставить kubernetes работать.
- Нормально пробовать много вещей, чтобы заставить что-то работать, но иногда это в конечном итоге становится самой проблемой.
- Я отправляю вам пошаговое руководство, чтобы развернуть его в той же среде, что и вы, чтобы вы могли повторить его еще раз для достижения тех же результатов.
- Мой тест Феликса не помог получил любую ошибку, только когда он получил ошибку, когда я попытался (нарочно) развернуть kubernetes без создания правил на ufw.
Если это так не решить, следующие шаги:
- Теперь, если после выполнения этого урока вы все еще сталкиваетесь с подобной проблемой, обновите вопрос следующей информацией:
kubectl describe <pod_name> -n kube-system
kubectl get pod <pod_name> -n kube-system
kubectl logs <pod_name> -n kube-system
- Всегда рекомендуется начинать с чистой установки Linux, если вы используете ВМ, удалите ВМ и создайте новый.
- Если вы работаете на голом железе, подумайте, что еще работает на сервере, может быть, есть другое программное обеспечение, мешающее сетевой коммуникации.
Сообщите мне в комментариях, если вы обнаружите какие-либо проблемы после этих шагов по устранению неполадок.