kubectl прокси не работает на Ubuntu LTS 18.04 - PullRequest
2 голосов
/ 29 января 2020

Я установил Kubernetes на Ubuntu 18.04, используя эту статью . Все работает нормально, и затем я попытался установить приборную панель Kubernetes с этими инструкциями .

Теперь, когда я пытаюсь запустить kubectl proxy, приборная панель не накапливается и выдает следующее сообщение об ошибке в браузере, когда пытается получить к ней доступ, используя URL-адрес kubernetes-приборной панели по умолчанию.

http://localhost: 8001 / api / v1 / пространства имен / kubernetes-dashboard / services / https:kubernetes-dashboard: / proxy /

{
  "kind": "Status",
  "apiVersion": "v1",
  "metadata": {

  },
  "status": "Failure",
  "message": "no endpoints available for service \"https:kubernetes-dashboard:\"",
  "reason": "ServiceUnavailable",
  "code": 503
}

Следующие команды выдают этот вывод, когда kubernetes-dashboard показывает статус CrashLoopBackOff

$> kubectl get pods --all-namespaces

NAMESPACE              NAME                                         READY   STATUS             RESTARTS   AGE
default                amazing-app-rs-59jt9                         1/1     Running            5          23d
default                amazing-app-rs-k6fg5                         1/1     Running            5          23d
default                amazing-app-rs-qd767                         1/1     Running            5          23d
default                amazingapp-one-deployment-57dddd6fb7-xdxlp   1/1     Running            5          23d
default                nginx-86c57db685-vwfzf                       1/1     Running            4          22d
kube-system            coredns-6955765f44-nqphx                     0/1     Running            14         25d
kube-system            coredns-6955765f44-psdv4                     0/1     Running            14         25d
kube-system            etcd-master-node                             1/1     Running            8          25d
kube-system            kube-apiserver-master-node                   1/1     Running            42         25d
kube-system            kube-controller-manager-master-node          1/1     Running            11         25d
kube-system            kube-flannel-ds-amd64-95lvl                  1/1     Running            8          25d
kube-system            kube-proxy-qcpqm                             1/1     Running            8          25d
kube-system            kube-scheduler-master-node                   1/1     Running            11         25d
kubernetes-dashboard   dashboard-metrics-scraper-7b64584c5c-kvz5d   1/1     Running            0          41m
kubernetes-dashboard   kubernetes-dashboard-566f567dc7-w2sbk        0/1     CrashLoopBackOff   12         41m

$> kubectl get services --all-namespaces

NAMESPACE              NAME                        TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)                  AGE
default                kubernetes                  ClusterIP   ----------      <none>        443/TCP                  25d
default                nginx                       NodePort    ----------    <none>        80:32188/TCP             22d
kube-system            kube-dns                    ClusterIP   ----------      <none>        53/UDP,53/TCP,9153/TCP   25d
kubernetes-dashboard   dashboard-metrics-scraper   ClusterIP   ----------   <none>        8000/TCP                 24d
kubernetes-dashboard   kubernetes-dashboard        ClusterIP   ----------    <none>        443/TCP                  24d



$ kubectl get services --all-namespaces
NAMESPACE              NAME                        TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)                  AGE
default                kubernetes                  ClusterIP   ======       <none>        443/TCP                  25d
default                nginx                       NodePort    ======    <none>        80:32188/TCP             22d
kube-system            kube-dns                    ClusterIP   ======      <none>        53/UDP,53/TCP,9153/TCP   25d
kubernetes-dashboard   dashboard-metrics-scraper   ClusterIP   ======   <none>        8000/TCP                 24d
kubernetes-dashboard   kubernetes-dashboard        ClusterIP   ======    <none>        443/TCP                  24d

$ kubectl get события -n kubernetes-dashboard

LAST SEEN   TYPE      REASON    OBJECT                                      MESSAGE
24m         Normal    Pulling   pod/kubernetes-dashboard-566f567dc7-w2sbk   Pulling image "kubernetesui/dashboard:v2.0.0-rc2"
4m46s       Warning   BackOff   pod/kubernetes-dashboard-566f567dc7-w2sbk   Back-off restarting failed container

$ kubectl описать службы приборная панель

> 2020/01/29 16:00:34 Starting overwatch 2020/01/29 16:00:34 Using
> namespace: kubernetes-dashboard 2020/01/29 16:00:34 Using in-cluster
> config to connect to apiserver 2020/01/29 16:00:34 Using secret token
> for csrf signing 2020/01/29 16:00:34 Initializing csrf token from
> kubernetes-dashboard-csrf secret panic: Get
> https://10.96.0.1:443/api/v1/namespaces/kubernetes-dashboard/secrets/kubernetes-dashboard-csrf:
> dial tcp 10.96.0.1:443: i/o timeout
> 
> goroutine 1 [running]:
> github.com/kubernetes/dashboard/src/app/backend/client/csrf.(*csrfTokenManager).init(0xc0003dac80)
>         /home/travis/build/kubernetes/dashboard/src/app/backend/client/csrf/manager.go:40
> +0x3b4 github.com/kubernetes/dashboard/src/app/backend/client/csrf.NewCsrfTokenManager(...)
>         /home/travis/build/kubernetes/dashboard/src/app/backend/client/csrf/manager.go:65
> github.com/kubernetes/dashboard/src/app/backend/client.(*clientManager).initCSRFKey(0xc000534200)
>         /home/travis/build/kubernetes/dashboard/src/app/backend/client/manager.go:494
> +0xc7 github.com/kubernetes/dashboard/src/app/backend/client.(*clientManager).init(0xc000534200)
>         /home/travis/build/kubernetes/dashboard/src/app/backend/client/manager.go:462
> +0x47 github.com/kubernetes/dashboard/src/app/backend/client.NewClientManager(...)
>         /home/travis/build/kubernetes/dashboard/src/app/backend/client/manager.go:543
> main.main()
>         /home/travis/build/kubernetes/dashboard/src/app/backend/dashboard.go:105
> +0x212

Есть предложения, чтобы это исправить? Заранее спасибо.

1 Ответ

1 голос
/ 29 января 2020

Я заметил, что в руководстве, которое вы использовали для установки кластера kubernetes, отсутствует одна важная часть.

Согласно документации kubernetes:

Для правильной работы flannel необходимо передайте --pod-network-cidr=10.244.0.0/16 в kubeadm init.

Установите /proc/sys/net/bridge/bridge-nf-call-iptables в 1, запустив sysctl net.bridge.bridge-nf-call-iptables=1 для передачи связанного трафика IPv4 c в цепочки iptables. Это требование для работы некоторых плагинов CNI, для получения дополнительной информации см. здесь .

Убедитесь, что ваши правила брандмауэра разрешают UDP-порты 8285 и 8472 traffi c для всех участвующих хостов в оверлейной сети. см. здесь .

Обратите внимание, что flannel работает на amd64, arm, arm64, ppc64le и s390x в Linux. Windows (amd64) заявлено как поддерживаемое в v0.11.0, но его использование не документировано.

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/2140ac876ef134e0ed5af15c65e414cf26827915/Documentation/kube-flannel.yml

Для получения дополнительной информации о flannel см. фланелевое хранилище CoreOS на GitHub .

Чтобы исправить это:

Я предлагаю использовать команду:

sysctl net.bridge.bridge-nf-call-iptables=1

, а затем переустановить фланель:

kubectl delete -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

Обновление: после проверки значение /proc/sys/net/bridge/bridge-nf-call-iptables равно 1 по умолчанию ubuntu-18-04-lts. Итак, проблема здесь в том, что вам необходимо получить доступ к панели мониторинга локально.

Если вы подключены к своему мастер-узлу через s sh. Можно использовать флаг -X с s sh для запуска нашего браузера через ForwardX11. К счастью, в ubuntu-18-04-lts он включен по умолчанию.

ssh -X server

Затем установите локальный веб-браузер, например, хром.

sudo apt-get install chromium-browser
chromium-browser

И, наконец, получите доступ к панели мониторинга локально с узла.

http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...