2016-08-19 1 views
0

suivant les instructions du livre de « Kubernetes livre de recettes », je crée un groupe docker avec un maître et deux noeuds:Impossible d'obtenir les informations Pod dans les Kubernetes clusters

master: 198.11.175.18 
    etcd, flannel, kube-apiserver, kube-controller-manager, kube-scheduler 

minion: 
    etcd, flannel, kubelet, kube-proxy 
    minion1: 120.27.94.15 
    minion2: 114.215.142.7 

version OS est:

[[email protected] ~]$ lsb_release -a 
LSB Version: :core-4.1-amd64:core-4.1-noarch 
Distributor ID: CentOS 
Description: CentOS Linux release 7.2.1511 (Core) 
Release: 7.2.1511 
Codename: Core 
[[email protected] ~]$ uname -a 
Linux iZu1ndxa4itZ 3.10.0-327.el7.x86_64 #1 SMP Thu Nov 19 22:10:57 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux 

Version Kuberneters est:

Client Version: version.Info{Major:"1", Minor:"2", GitVersion:"v1.2.0", GitCommit:"ec7364b6e3b155e78086018aa644057edbe196e5", GitTreeState:"clean"} 
Server Version: version.Info{Major:"1", Minor:"2", GitVersion:"v1.2.0", GitCommit:"ec7364b6e3b155e78086018aa644057edbe196e5", GitTreeState:"clean"} 

je peux obtenir le statut de deux nœuds en émettant kubectl sur Maître.

[[email protected] ~]$ kubectl get nodes 
NAME    STATUS AGE 
114.215.142.7 Ready  23m 
120.27.94.15  Ready  14h 

Les composants sur le travail bien Master:

[[email protected] ~]$ kubectl get cs 
NAME     STATUS MESSAGE    ERROR 
scheduler   Healthy ok 
controller-manager Healthy ok 
etcd-0    Healthy {"health": "true"} 

Mais après avoir commencé un récipient nginx, il n'y a pas de statut pods.

[[email protected] ~]$ kubectl run --image=nginx nginx-test 
deployment "nginx-test" created 

[[email protected] ~]$ kubectl get deployments 
NAME    DESIRED CURRENT UP-TO-DATE AVAILABLE AGE 
my-first-nginx  2   0   0   0   20h 
my-first-nginx01 1   0   0   0   20h 
my-first-nginx02 1   0   0   0   19h 
nginx-test   1   0   0   0   5h 

[[email protected] ~]$ kubectl get pods 

Un indice pour diagnostiquer le problème? Merci.

BTW, j'ai essayé d'exécuter deux conteneurs Docker manuellement dans différents nœuds, les deux conteneurs peuvent communiquer les uns avec les autres en utilisant ping.

Mise à jour 2016-08-19

indice Trouvé des services de journal Kube-apiser et Kube contrôleur-gestionnaire, le problème peut être causé par une configuration sécurisée incorrecte:

sudo service état Kube-apiserver -l

Aug 19 14:59:53 iZu1ndxa4itZ kube-apiserver[21393]: E0819 14:59:53.118954 21393 genericapiserver.go:716] Unable to listen for secure (open /var/run/kubernetes/apiserver.crt: no such file or directory); will try again. 
    Aug 19 15:00:08 iZu1ndxa4itZ kube-apiserver[21393]: E0819 15:00:08.120253 21393 genericapiserver.go:716] Unable to listen for secure (open /var/run/kubernetes/apiserver.crt: no such file or directory); will try again. 
    Aug 19 15:00:23 iZu1ndxa4itZ kube-apiserver[21393]: E0819 15:00:23.121345 21393 genericapiserver.go:716] Unable to listen for secure (open /var/run/kubernetes/apiserver.crt: no such file or directory); will try again. 
    Aug 19 15:00:38 iZu1ndxa4itZ kube-apiserver[21393]: E0819 15:00:38.122638 21393 genericapiserver.go:716] Unable to listen for secure (open /var/run/kubernetes/apiserver.crt: no such file or directory); will try again. 

Service d'état Kube sudo-contrôleur-manager -l

Aug 19 15:01:52 iZu1ndxa4itZ kube-controller-manager[21415]: E0819 15:01:52.138742 21415 replica_set.go:446] unable to create pods: pods "my-first-nginx02-1004561501-" is forbidden: no API token found for service account default/default, retry after the token is automatically created and added to the service account 
    Aug 19 15:01:52 iZu1ndxa4itZ kube-controller-manager[21415]: I0819 15:01:52.138799 21415 event.go:211] Event(api.ObjectReference{Kind:"ReplicaSet", Namespace:"default", Name:"my-first-nginx02-1004561501", UID:"ba35be11-652a-11e6-88d2-00163e0017a3", APIVersion:"extensions", ResourceVersion:"120", FieldPath:""}): type: 'Warning' reason: 'FailedCreate' Error creating: pods "my-first-nginx02-1004561501-" is forbidden: no API token found for service account default/default, retry after the token is automatically created and added to the service account 
    Aug 19 15:01:52 iZu1ndxa4itZ kube-controller-manager[21415]: E0819 15:01:52.144583 21415 replica_set.go:446] unable to create pods: pods "my-first-nginx-3671155609-" is forbidden: no API token found for service account default/default, retry after the token is automatically created and added to the service account 
    Aug 19 15:01:52 iZu1ndxa4itZ kube-controller-manager[21415]: I0819 15:01:52.144657 21415 event.go:211] Event(api.ObjectReference{Kind:"ReplicaSet", Namespace:"default", Name:"my-first-nginx-3671155609", UID:"d6c8288c-6529-11e6-88d2-00163e0017a3", APIVersion:"extensions", ResourceVersion:"54", FieldPath:""}): type: 'Warning' reason: 'FailedCreate' Error creating: pods "my-first-nginx-3671155609-" is forbidden: no API token found for service account default/default, retry after the token is automatically created and added to the service account 
    Aug 19 15:04:17 iZu1ndxa4itZ kube-controller-manager[21415]: I0819 15:04:17.149320 21415 event.go:211] Event(api.ObjectReference{Kind:"ReplicaSet", Namespace:"default", Name:"nginx-test-863723326", UID:"624ed0ea-65a2-11e6-88d2-00163e0017a3", APIVersion:"extensions", ResourceVersion:"12247", FieldPath:""}): type: 'Warning' reason: 'FailedCreate' Error creating: pods "nginx-test-863723326-" is forbidden: no API token found for service account default/default, retry after the token is automatically created and added to the service account 
    Aug 19 15:04:17 iZu1ndxa4itZ kube-controller-manager[21415]: E0819 15:04:17.148513 21415 replica_set.go:446] unable to create pods: pods "nginx-test-863723326-" is forbidden: no API token found for service account default/default, retry after the token is automatically created and added to the service accoun 
+0

Pouvez-vous poster la sortie de 'kubectl get deployments'. Vous pouvez regarder dans kube-scheduler.log, kube-apiserver.log, kube-controller-manager.log pour les erreurs. – Rajiv

+0

@Rajiv Merci pour votre réponse. la sortie de 'kubectl get deployments' est publiée. – thinkhy

+0

Avez-vous trouvé une erreur dans kube-scheduler.log, kube-apiserver.log, kube-controller-manager.log ou kubelet.log? – Rajiv

Répondre

1

résolu le problème avec la procédure suivante:

openssl genrsa -out /tmp/service_account.key 2048 
    sudo cp /tmp/service_account.key /etc/kubernetes/service_account.key 

    sudo vim /etc/kubernetes/apiserver 
    KUBE_API_ARGS="--secure-port=0 --service-account-key-file=/etc/kubernetes/service_account.key" 

    sudo service kube-apiserver restart 

    sudo vim /etc/kubernetes/controller-manager 
    KUBE_CONTROLLER_MANAGER_ARGS="--service_account_private_key_file=/etc/kubernetes/service_account.key" 

    sudo service kube-controller-manager restart