Не удается получить доступ к панели управления K8s после установки kubeadm-dind-cluster - PullRequest
0 голосов
/ 17 февраля 2019

Я использую kubeadm-dind-cluster многоузловой кластер Kubernetes для разработчика Kubernetes и проектов, расширяющих Kubernetes.На основе kubeadm и DIND (Docker in Docker).

У меня есть свежая установка Centos 7, на которой я только что запустил ./dind-cluster-v1.13.sh up.Я не установил никаких других значений и использую все значения по умолчанию для работы в сети.

Все выглядит хорошо:

[root@node01 dind-cluster]# kubectl get nodes
NAME          STATUS   ROLES    AGE   VERSION
kube-master   Ready    master   23h   v1.13.0
kube-node-1   Ready    <none>   23h   v1.13.0
kube-node-2   Ready    <none>   23h   v1.13.0

[root@node01 dind-cluster]# kubectl config view
apiVersion: v1
clusters:
- cluster:
    insecure-skip-tls-verify: true
    server: http://127.0.0.1:32769
  name: dind
contexts:
- context:
    cluster: dind
    user: ""
  name: dind
current-context: dind
kind: Config
preferences: {}
users: []
[root@node01 dind-cluster]# kubectl cluster-info
Kubernetes master is running at http://127.0.0.1:32769
KubeDNS is running at http://127.0.0.1:32769/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy

To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
[root@node01 dind-cluster]#

и выглядит исправно:

[root@node01 dind-cluster]# curl -w  '\n' http://127.0.0.1:32769/healthz
ok

Я знаю, что служба панели мониторинга существует:

[root@node01 dind-cluster]# kubectl get services kubernetes-dashboard -n kube-system
NAME                   TYPE       CLUSTER-IP    EXTERNAL-IP   PORT(S)        AGE
kubernetes-dashboard   NodePort   10.102.82.8   <none>        80:31990/TCP   23h

, однако любая попытка доступа к ней отклоняется:

[root@node01 dind-cluster]# curl http://127.0.0.1:8080/api/v1/namespaces/kube-system/services/kubernetes-dashboard
curl: (7) Failed connect to 127.0.0.1:8080; Connection refused

[root@node01 dind-cluster]# curl http://127.0.0.1:8080/ui
curl: (7) Failed connect to 127.0.0.1:8080; Connection refused

Я также вижу следующее в журнале брандмауэра:

2019-02-05 19:45:19 WARNING: COMMAND_FAILED: '/usr/sbin/iptables -w2 -t nat -C DOCKER -p tcp -d 127.0.0.1 --dport 32769 -j DNAT --to-destination 10.192.0.2:8080 ! -i br-669b654fc9cd' failed: iptables: No chain/target/match by that name.

2019-02-05 19:45:19 WARNING: COMMAND_FAILED: '/usr/sbin/iptables -w2 -t filter -C DOCKER ! -i br-669b654fc9cd -o br-669b654fc9cd -p tcp -d 10.192.0.2 --dport 8080 -j ACCEPT' failed: iptables: Bad rule (does a matching rule exist in that chain?).

2019-02-05 19:45:19 WARNING: COMMAND_FAILED: '/usr/sbin/iptables -w2 -t nat -C POSTROUTING -p tcp -s 10.192.0.2 -d 10.192.0.2 --dport 8080 -j MASQUERADE' failed: iptables: No chain/target/match by that name.

Есть ли какие-либо предложения о том, как на самом деле получить доступ к панели мониторинга извне с моей машины для разработки?Я не хочу использовать прокси для этого.

1 Ответ

0 голосов
/ 20 февраля 2019

Вы должны иметь доступ к kubernetes-dashboard, используя следующие адреса:

ClusterIP (работает для других модулей в кластере):

http://10.102.82.8:80/

NodePort (работает для каждого хоста, который можетполучить доступ к узлам кластера, используя их IP-адреса):

http://clusterNodeIP:31990/

Обычно панель мониторинга Kubernetes использует протокол https, поэтому вам может потребоваться использовать разные порты при запросе к kubernetes-dashboard Service для этого.

Вы также можете получить доступ к панели мониторинга, используя kube-apiserver в качестве прокси-сервера:

Непосредственно для панели мониторинга. Pod:

https://<master-ip>:<apiserver-port>/api/v1/namespaces/kube-system/pods/https:kubernetes-dashboard-pod-name:/proxy/#!/login

Для службы CashterIP панели мониторинга:

https://<master-ip>:<apiserver-port>/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/#!/login

Я могу предположить, что <master-ip>:<apiserver-port> будет означать 127.0.0.1:32769 в вашем случае.

...