2017-09-05 3 views
0

Also habe ich einen 3-Knoten-kubernetes-Cluster auf 3 Himbeerpis läuft mit HypriotOS. Ich habe nichts damit angefangen, seit ich angefangen habe Knoten zu verbinden und zu verbinden. Allerdings, wenn ich kubectl cluster-info eingeben, ich bin mit zwei Optionen angezeigt,Kubernetes "keine Endpunkte verfügbar für Service " Kube-dns ""

Kubernetes master is running at https://192.168.0.35:6443 
KubeDNS is running at https://192.168.0.35:6443/api/v1/namespaces/kube-system/services/kube-dns/proxy 

Wenn ich curl die zweite url ich die folgende Antwort erhalten:

{ 
    "kind": "Status", 
    "apiVersion": "v1", 
    "metadata": {}, 
    "status": "Failure", 
    "message": "no endpoints available for service \"kube-dns\"", 
    "reason": "ServiceUnavailable", 
    "code": 503 
} 

Hier einige weitere Informationen über den Zustand meines Cluster .

$ kubectl version 
Client Version: version.Info{Major:"1", Minor:"7", GitVersion:"v1.7.4", GitCommit:"793658f2d7ca7f064d2bdf606519f9fe1229c381", GitTreeState:"clean", BuildDate:"2017-08-17T08:48:23Z", GoVersion:"go1.8.3", Compiler:"gc", Platform:"linux/arm"} 
Server Version: version.Info{Major:"1", Minor:"7", GitVersion:"v1.7.4", GitCommit:"793658f2d7ca7f064d2bdf606519f9fe1229c381", GitTreeState:"clean", BuildDate:"2017-08-17T08:30:51Z", GoVersion:"go1.8.3", Compiler:"gc", Platform:"linux/arm"} 




$ kubectl get pods --all-namespaces 
NAMESPACE  NAME         READY  STATUS    RESTARTS AGE 
kube-system etcd-node01        1/1  Running   0   13d 
kube-system kube-apiserver-node01     1/1  Running   21   13d 
kube-system kube-controller-manager-node01   1/1  Running   5   13d 
kube-system kube-dns-2459497834-v1g4n    3/3  Running   43   13d 
kube-system kube-proxy-1hplm      1/1  Running   0   5h 
kube-system kube-proxy-6bzvr      1/1  Running   0   13d 
kube-system kube-proxy-cmp3q      1/1  Running   0   6d 
kube-system kube-scheduler-node01     1/1  Running   8   13d 
kube-system weave-net-5cq9c       2/2  Running   0   6d 
kube-system weave-net-ff5sz       2/2  Running   4   13d 
kube-system weave-net-z3nq3       2/2  Running   0   5h 


$ kubectl get svc --all-namespaces 
NAMESPACE  NAME     CLUSTER-IP  EXTERNAL-IP PORT(S)   AGE 
default  kubernetes    10.96.0.1  <none>  443/TCP   13d 
kube-system kube-dns    10.96.0.10  <none>  53/UDP,53/TCP 13d 


$ kubectl --namespace kube-system describe pod kube-dns-2459497834-v1g4n 
Name:   kube-dns-2459497834-v1g4n 
Namespace:  kube-system 
Node:   node01/192.168.0.35 
Start Time:  Wed, 23 Aug 2017 20:34:56 +0000 
Labels:   k8s-app=kube-dns 
       pod-template-hash=2459497834 
Annotations: kubernetes.io/created-by={"kind":"SerializedReference","apiVersion":"v1","reference":{"kind":"ReplicaSet","namespace":"kube-system","name":"kube-dns-2459497834","uid":"37640de4-8841-11e7-ad32-b827eb0a... 
       scheduler.alpha.kubernetes.io/critical-pod= 
Status:   Running 
IP:    10.32.0.2 
Created By:  ReplicaSet/kube-dns-2459497834 
Controlled By: ReplicaSet/kube-dns-2459497834 
Containers: 
    kubedns: 
    Container ID:  docker://9a781f1fea4c947a9115c551e65c232d5fe0aa2045e27e79eae4b057b68e4914 
    Image:    gcr.io/google_containers/k8s-dns-kube-dns-arm:1.14.4 
    Image ID:   docker-pullable://gcr.io/google_containers/[email protected]:ac677e54bef9717220a0ba2275ba706111755b2906de689d71ac44bfe425946d 
    Ports:    10053/UDP, 10053/TCP, 10055/TCP 
    Args: 
     --domain=cluster.local. 
     --dns-port=10053 
     --config-dir=/kube-dns-config 
     --v=2 
    State:    Running 
     Started:   Tue, 29 Aug 2017 19:09:10 +0000 
    Last State:   Terminated 
     Reason:   Error 
     Exit Code:  137 
     Started:   Tue, 29 Aug 2017 17:07:49 +0000 
     Finished:   Tue, 29 Aug 2017 19:09:08 +0000 
    Ready:    True 
    Restart Count:  18 
    Limits: 
     memory: 170Mi 
    Requests: 
     cpu:  100m 
     memory: 70Mi 
    Liveness: http-get http://:10054/healthcheck/kubedns delay=60s timeout=5s period=10s #success=1 #failure=5 
    Readiness: http-get http://:8081/readiness delay=3s timeout=5s period=10s #success=1 #failure=3 
    Environment: 
     PROMETHEUS_PORT: 10055 
    Mounts: 
     /kube-dns-config from kube-dns-config (rw) 
     /var/run/secrets/kubernetes.io/serviceaccount from kube-dns-token-rf19g (ro) 
    dnsmasq: 
    Container ID:  docker://f8e17df36310bc3423a74e3f6989204abac9e83d4a8366561e54259418030a50 
    Image:    gcr.io/google_containers/k8s-dns-dnsmasq-nanny-arm:1.14.4 
    Image ID:   docker-pullable://gcr.io/google_containers/[email protected]:a7469e91b4b20f31036448a61c52e208833c7cb283faeb4ea51b9fa22e18eb69 
    Ports:    53/UDP, 53/TCP 
    Args: 
     -v=2 
     -logtostderr 
     -configDir=/etc/k8s/dns/dnsmasq-nanny 
     -restartDnsmasq=true 
     -- 
     -k 
     --cache-size=1000 
     --log-facility=- 
     --server=/cluster.local/127.0.0.1#10053 
     --server=/in-addr.arpa/127.0.0.1#10053 
     --server=/ip6.arpa/127.0.0.1#10053 
    State:    Running 
     Started:   Tue, 29 Aug 2017 19:09:52 +0000 
    Last State:   Terminated 
     Reason:   Error 
     Exit Code:  137 


$ kubectl --namespace kube-system describe svc kube-dns 
Name:   kube-dns 
Namespace:  kube-system 
Labels:   k8s-app=kube-dns 
      kubernetes.io/cluster-service=true 
      kubernetes.io/name=KubeDNS 
Annotations:  <none> 
Selector:  k8s-app=kube-dns 
Type:   ClusterIP 
IP:   10.96.0.10 
Port:   dns 53/UDP 
Endpoints:  10.32.0.2:53 
Port:   dns-tcp 53/TCP 
Endpoints:  10.32.0.2:53 
Session Affinity: None 
Events:   <none> 

ich nicht herausfinden kann, was hier geschieht, da ich nichts anderes als die Anweisungen here folgen getan haben. Dieses Problem besteht zwischen mehreren Versionen von Kubernetes sowie mehreren Netzwerk-Overlays, einschließlich Flanell. Es beginnt damit, dass ich denke, dass es ein Problem mit den RPIs selbst ist.

+1

'kubectl - namespace kube-system beschreiben pod kube-dns-2459497834-v1g4n' und' kubectl - namespace kube-system beschreiben svc kube-dns' bitte –

+0

Ich habe die relevanten Informationen hinzugefügt. Wie Sie sehen können, läuft der Pod, wird aber von Zeit zu Zeit neu gestartet. Ich bin mir nicht sicher, was es sonst noch hier gibt. – jzeef

Antwort

0

UPDATE: Die folgende Annahme ist keine vollständige Erklärung für diese Fehlermeldung. Die proxy API Staaten:

erstellen Connect Proxy

connect GET-Anfragen an den Proxy von Pod

GET/api/v1/Namespaces/{Namensraum}/Hülsen/{name}/proxy

Die Frage ist jetzt, was connect GET requests to proxy of Pod genau bedeutet, aber ich glaube fest, es bedeutet die Weiterleitung der GET-Anfragen an den Pod. Dies würde bedeuten, dass die folgende Annahme richtig ist.

Ich überprüfte mit anderen Diensten, die nicht für HTTP-Verkehr entworfen wurden, und sie alle ergeben diese Fehlermeldung, während für HTTP-Verkehr entworfene Dienste gut funktionieren (z. B. /api/v1/namespaces/kube-system/services/kubernetes-dashboard/proxy).


Ich glaube, das ist normales Verhalten - nichts zu befürchten. Wenn Sie sich das kube-dns Service-Objekt in Ihrem Cluster ansehen, können Sie sehen, dass es nur interne Endpunkte zu Port 53, dem Standard-DNS-Port, bedient - also nehme ich an, dass der kube-dns-Dienst nur auf richtige DNS-Anfragen antwortet. Mit curl versuchen Sie, eine normale GET-Anfrage für diesen Dienst zu machen, was zu einer Fehlerantwort führen sollte.

Gemessen an Ihren gegebenen Cluster-Informationen sehen alle Ihre Pods gut aus und ich wette, dass Ihre Service-Endpunkte auch richtig angezeigt werden. Sie können das über kubectl get ep kube-dns --namespace=kube-system überprüfen, welche so etwas ergeben sollte:

$ kubectl get ep kube-dns --namespace=kube-system 
NAME  ENDPOINTS               AGE 
kube-dns 100.101.26.65:53,100.96.150.198:53,100.101.26.65:53 + 1 more... 20d 

Auf meinem Cluster (K8S 1.7.3) eine Locke GET zu /api/v1/namespaces/kube-system/services/kube-dns/proxy führt auch zu Ihrer genannte Fehlermeldung, aber ich hatte nie ein Problem mit DNS, so dass ich hoffe, meine Annahme ist richtig.

Verwandte Themen