Нет доступных конечных точек для службы \"kubernetes-dashboard\"
Я пытаюсь следовать GitHub - kubernetes/dashboard: универсальный веб-интерфейс для кластеров Kubernetes.
развернуть / доступ:
# export KUBECONFIG=/etc/kubernetes/admin.conf
# kubectl create -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml
secret/kubernetes-dashboard-certs created
serviceaccount/kubernetes-dashboard created
role.rbac.authorization.k8s.io/kubernetes-dashboard-minimal created
rolebinding.rbac.authorization.k8s.io/kubernetes-dashboard-minimal created
deployment.apps/kubernetes-dashboard created
service/kubernetes-dashboard created
# kubectl proxy
Starting to serve on 127.0.0.1:8001
свернуться:
# curl http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/
{
"kind": "Status",
"apiVersion": "v1",
"metadata": {
},
"status": "Failure",
"message": "no endpoints available for service \"kubernetes-dashboard\"",
"reason": "ServiceUnavailable",
"code": 503
}#
Пожалуйста, порекомендуйте.
за @VKR
$ kubectl get pods --all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system coredns-576cbf47c7-56vg7 0/1 ContainerCreating 0 57m
kube-system coredns-576cbf47c7-sn2fk 0/1 ContainerCreating 0 57m
kube-system etcd-wcmisdlin02.uftwf.local 1/1 Running 0 56m
kube-system kube-apiserver-wcmisdlin02.uftwf.local 1/1 Running 0 56m
kube-system kube-controller-manager-wcmisdlin02.uftwf.local 1/1 Running 0 56m
kube-system kube-proxy-2hhf7 1/1 Running 0 6m57s
kube-system kube-proxy-lzfcx 1/1 Running 0 7m35s
kube-system kube-proxy-rndhm 1/1 Running 0 57m
kube-system kube-scheduler-wcmisdlin02.uftwf.local 1/1 Running 0 56m
kube-system kubernetes-dashboard-77fd78f978-g2hts 0/1 Pending 0 2m38s
$
logs
:
$ kubectl logs kubernetes-dashboard-77fd78f978-g2hts -n kube-system
$
describe
:
$ kubectl describe pod kubernetes-dashboard-77fd78f978-g2hts -n kube-system
Name: kubernetes-dashboard-77fd78f978-g2hts
Namespace: kube-system
Priority: 0
PriorityClassName: <none>
Node: <none>
Labels: k8s-app=kubernetes-dashboard
pod-template-hash=77fd78f978
Annotations: <none>
Status: Pending
IP:
Controlled By: ReplicaSet/kubernetes-dashboard-77fd78f978
Containers:
kubernetes-dashboard:
Image: k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.0
Port: 8443/TCP
Host Port: 0/TCP
Args:
--auto-generate-certificates
Liveness: http-get https://:8443/ delay=30s timeout=30s period=10s #success=1 #failure=3
Environment: <none>
Mounts:
/certs from kubernetes-dashboard-certs (rw)
/tmp from tmp-volume (rw)
/var/run/secrets/kubernetes.io/serviceaccount from kubernetes-dashboard-token-gp4l7 (ro)
Conditions:
Type Status
PodScheduled False
Volumes:
kubernetes-dashboard-certs:
Type: Secret (a volume populated by a Secret)
SecretName: kubernetes-dashboard-certs
Optional: false
tmp-volume:
Type: EmptyDir (a temporary directory that shares a pod's lifetime)
Medium:
kubernetes-dashboard-token-gp4l7:
Type: Secret (a volume populated by a Secret)
SecretName: kubernetes-dashboard-token-gp4l7
Optional: false
QoS Class: BestEffort
Node-Selectors: <none>
Tolerations: node-role.kubernetes.io/master:NoSchedule
node.kubernetes.io/not-ready:NoExecute for 300s
node.kubernetes.io/unreachable:NoExecute for 300s
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning FailedScheduling 4m39s (x21689 over 20h) default-scheduler 0/3 nodes are available: 3 node(s) had taints that the pod didn't tolerate.
$
6 ответов
Казалось бы, вы пытаетесь развернуть Kubernetes с использованием kubeadm
но пропустили шаг установки надстройки сети pod (CNI). Обратите внимание на предупреждение:
Сеть должна быть развернута перед любыми приложениями. Кроме того, CoreDNS не будет запускаться до установки сети. kubeadm поддерживает только сети на основе контейнерного сетевого интерфейса (CNI) (и не поддерживает kubenet).
Как только вы это сделаете, модули CoreDNS должны появиться здоровыми. Это можно проверить с помощью:kubectl -n kube-system -l=k8s-app=kube-dns get pods
Тогда kubernetes-dashboard
стручок также должен быть здоровым.
вы можете обратиться к https://github.com/kubernetes/dashboard#getting-started
Кроме того, я вижу "https" в вашей ссылке. Попробуйте вместо этого использовать эту ссылку http: // localhost: 8001 / api / v1 / namespaces / kubernetes-dashboard / services / https: kubernetes-dashboard: / proxy /
если вы используете ,
проверить, еслиkubectl proxy
бежит
тогда иди
http://localhost:8001/api/v1/namespaces/default/services/https:kubernetes-dashboard:https/proxy
два совета по ссылке выше:
- использовать
helm
для установки пространства имен будут/default
(нет/kubernetes-dashboard
- нужно добавить
https
после/https:kubernetes-dashboard:
лучший способ
helm delete kubernetes-dashboard
kubectl create namespace kubernetes-dashboard
helm install -n kubernetes-dashboard kubernetes-dashboard kubernetes-dashboard/kubernetes-dashboard
тогда иди
http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:https/proxy
затем вы можете легко следовать за созданием образца пользователя , чтобы получить токен для входа в систему
У меня такая же проблема. В конце концов это оказалось проблемой конфигурации сети Calico. Но шаг за шагом ...
Сначала я проверил, запущен ли Dashboard Pod:
kubectl get pods --all-namespaces
Результат для меня был:
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system calico-kube-controllers-bcc6f659f-j57l9 1/1 Running 2 19h
kube-system calico-node-hdxp6 0/1 CrashLoopBackOff 13 15h
kube-system calico-node-z6l56 0/1 Running 68 19h
kube-system coredns-74ff55c5b-8l6m6 1/1 Running 2 19h
kube-system coredns-74ff55c5b-v7pkc 1/1 Running 2 19h
kube-system etcd-got-virtualbox 1/1 Running 3 19h
kube-system kube-apiserver-got-virtualbox 1/1 Running 3 19h
kube-system kube-controller-manager-got-virtualbox 1/1 Running 3 19h
kube-system kube-proxy-q99s5 1/1 Running 2 19h
kube-system kube-proxy-vrpcd 1/1 Running 1 15h
kube-system kube-scheduler-got-virtualbox 1/1 Running 2 19h
kubernetes-dashboard dashboard-metrics-scraper-7b59f7d4df-qc9ms 1/1 Running 0 28m
kubernetes-dashboard kubernetes-dashboard-74d688b6bc-zrdk4 0/1 CrashLoopBackOff 9 28m
Последняя строка указывает, что модуль панели мониторинга не мог быть запущен (status =CrashLoopBackOff). А 2-я строчка показывает, что у ситцевого узла проблемы. Скорее всего, первопричина - Calico.
Следующим шагом является просмотр журнала модуля (измените пространство имен / имя, как указано в ВАШЕМ списке модулей) :
kubectl logs kubernetes-dashboard-74d688b6bc-zrdk4 -n kubernetes-dashboard
Результат для меня был:
2021/03/05 13:01:12 Starting overwatch
2021/03/05 13:01:12 Using namespace: kubernetes-dashboard
2021/03/05 13:01:12 Using in-cluster config to connect to apiserver
2021/03/05 13:01:12 Using secret token for csrf signing
2021/03/05 13:01:12 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
Хм - не особо полезно. После поиска по запросу «dial tcp 10.96.0.1:443: i / o timeout» я нашел эту информацию, где написано ...
Если вы строго следуете инструкциям kubeadm ... Это означает установку docker, kubernetes (kubeadm, kubectl, & kubelet) и calico с размещенными инструкциями Kubeadm ... и узлы вашего компьютера имеют физический IP-адрес в диапазоне 192.168.XX, то вы получите вышеупомянутую нерабочую панель управления. Это связано с тем, что IP-адреса узла конфликтуют с внутренними IP-адресами ситца.
https://github.com/kubernetes/dashboard/issues/1578#issuecomment-329904648
Да, на самом деле у меня есть физический IP-адрес в диапазоне 192.168.xx - как и у многих других. Я бы хотел, чтобы Калико проверил это во время настройки.
Итак, переместим сеть подов в другой диапазон IP-адресов:
Для частных сетей следует использовать бесклассовый зарезервированный диапазон IP-адресов, например 10.0.0.0/8 (16.777.216 адресов)172.16.0.0/12 (1.048.576 адресов)192.168.0.0/16 (65.536 адресов). В противном случае Calico завершит работу с ошибкой: «В CALICO_IPV4POOL_CIDR указан недопустимый CIDR» ...
sudo kubeadm reset
sudo rm /etc/cni/net.d/10-calico.conflist
sudo rm /etc/cni/net.d/calico-kubeconfig
export CALICO_IPV4POOL_CIDR=172.16.0.0
export MASTER_IP=192.168.100.122
sudo kubeadm init --pod-network-cidr=$CALICO_IPV4POOL_CIDR/12 --apiserver-advertise-address=$MASTER_IP --apiserver-cert-extra-sans=$MASTER_IP
mkdir -p $HOME/.kube
sudo rm -f $HOME/.kube/config
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
sudo chown $(id -u):$(id -g) /etc/kubernetes/kubelet.conf
wget https://docs.projectcalico.org/v3.8/manifests/calico.yaml -O calico.yaml
sed -i "s/192.168.0.0/"$CALICO_IPV4POOL_CIDR"/g" calico.yaml
kubectl apply -f calico.yaml
Теперь проверим, все ли ситцевые стручки запущены:
kubectl get pods --all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system calico-kube-controllers-bcc6f659f-ns7kz 1/1 Running 0 15m
kube-system calico-node-htvdv 1/1 Running 6 15m
kube-system coredns-74ff55c5b-lqwpd 1/1 Running 0 17m
kube-system coredns-74ff55c5b-qzc87 1/1 Running 0 17m
kube-system etcd-got-virtualbox 1/1 Running 0 17m
kube-system kube-apiserver-got-virtualbox 1/1 Running 0 17m
kube-system kube-controller-manager-got-virtualbox 1/1 Running 0 18m
kube-system kube-proxy-6xr5j 1/1 Running 0 17m
kube-system kube-scheduler-got-virtualbox 1/1 Running 0 17m
Выглядит хорошо. Если нет, проверьте CALICO_IPV4POOL_CIDR, отредактировав конфигурацию узла:
KUBE_EDITOR="nano" kubectl edit -n kube-system ds calico-node
Применим kubernetes-dashboard и запустим прокси:
export KUBECONFIG=$HOME/.kube/config
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0/aio/deploy/recommended.yaml
kubectl proxy
Теперь я могу загрузить http://127.0.0.1:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/
Я столкнулся с той же проблемой, поэтому я следил за официальными документами, а затем перешел на https://github.com/kubernetes/dashboard url, есть другой способ использовать helm по этой ссылке https://artifacthub.io/packages/helm / k8s-приборная панель / kubernetes-приборная панель
после установки helm и запустите эти 2 команды
helm repo add kubernetes-dashboard https://kubernetes.github.io/dashboard/
helm install kubernetes-dashboard kubernetes-dashboard/kubernetes-dashboard
он работал, но в пространстве имен по умолчанию по этой ссылке http: // localhost:8001 / api / v1 / namespaces / default / services / https:kubernetes-dashboard: https / proxy / # / workloads?namespace= default
Я вижу это в 127.0.0.1, но как включить для лана? Если я бегу
kubectl proxy --address='192.168.22.17' --accept-hosts='^localhost$,^127\.0\.0\.1$,^\[::1\]$,^192\.168\.22\.*'
У меня нет доступных конечных точек для службы «kubernetes-dashboard» из локальной сети.