Назад | Перейти на главную страницу

IP-адрес кластера Kubernetes не отвечает

Мы настроили кластер Kubernetes с 3 мастерами и 3 рабочими узлами. Затем мы установили kubernetes-dashboard, который не работает, потому что не может подключиться к kubernetes (api-server). Он ищет localhost: 8080, но недоступен. При выполнении env в занятом ящике я получаю:

KUBERNETES_SERVICE_PORT_HTTPS=443
KUBERNETES_PORT=tcp://10.2.0.1:443
KUBERNETES_PORT_443_TCP=tcp://10.2.0.1:443
KUBERNETES_PORT_443_TCP_PROTO=tcp
KUBERNETES_PORT_443_TCP_PORT=443
KUBERNETES_PORT_443_TCP_ADDR=10.2.0.1
KUBERNETES_SERVICE_HOST=10.2.0.1
KUBERNETES_SERVICE_PORT=443

Поэтому я ожидал, что кубернеты должны быть доступны на 10.2.0.1:443, но он не отвечает. (В соединении отказано)

Адрес привязки - 0.0.0.0 (который защищен ssl auth), небезопасный адрес привязки не установлен (что означает, что он привязан к 127.0.0.1). В документации я вижу, что незащищенный порт (8080) открыт для кластерной сети. Но я этого не вижу. Если я выполняю kubectl get services, я вижу:

NAME         CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE
kubernetes   10.2.0.1     <none>        443/TCP   1d

Должен ли я предпринять какие-то дополнительные действия, чтобы открыть там 8080 и / или сделать кубернеты доступными на этих портах?

Это типичное поведение, когда root используется для kubectl и /и т.д. / Кубернетес / admin.conf не в /root/.kube/config (нужно переименовать).

Рекомендуемая процедура - создать пользователя e.x без полномочий root (kubeadmin) и поместить /etc/kubernetes/admin.conf в /home/of/kubeadmin/.kube/config

[root@k8s-1 ~]# kubectl get nodes
The connection to the server localhost:8080 was refused - did you specify the right host or port?
[root@k8s-1 ~]# mkdir /root/.kube
[root@k8s-1 ~]# cp /etc/kubernetes/admin.conf /root/.kube/config
[root@k8s-1 ~]# kubectl get nodes
NAME        STATUS   ROLES    AGE    VERSION
k8s-node1   Ready    master   90d    v1.12.3
k8s-node2   Ready    <none>   90d    v1.12.3
k8s-node3   Ready    <none>   90d    v1.12.3
k8s-node4   Ready    <none>   6d1h   v1.12.3

Присоединенный к localhost:8080 - это поведение по умолчанию, когда клиент Kubernetes не настроен для определенного местоположения apiserver. Обычно панель мониторинга подключается к apiserver с использованием «учетных данных в кластере», которые добавляются в модуль через учетную запись службы.