Мы настроили кластер 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 с использованием «учетных данных в кластере», которые добавляются в модуль через учетную запись службы.