Kubeadm: CoreDNS ne démarre pas sur Ubuntu 18.04.Bionic Beaver

Créé le 9 juil. 2018  ·  18Commentaires  ·  Source: kubernetes/kubeadm

Quels mots-clés avez-vous recherchés dans les problèmes de kubeadm avant de déposer celui-ci?

dns, resolv.conf, coredns

RAPPORT D'ERREUR

Versions

version kubeadm (utilisez kubeadm version ):
kubeadm version: &version.Info{Major:"1", Minor:"11", GitVersion:"v1.11.0", GitCommit:"91e7b4fd31fcd3d5f436da26c980becec37ceefe", GitTreeState:"clean", BuildDate:"2018-06-27T20:14:41Z", GoVersion:"go1.10.2", Compiler:"gc", Platform:"linux/amd64"}

Environnement :

  • Version Kubernetes (utilisez kubectl version ):
  Client Version: version.Info{Major:"1", Minor:"11", GitVersion:"v1.11.0", GitCommit:"91e7b4fd31fcd3d5f436da26c980becec37ceefe", GitTreeState:"clean", BuildDate:"2018-06-27T20:17:28Z", GoVersion:"go1.10.2", Compiler:"gc", Platform:"linux/amd64"}
  Server Version: version.Info{Major:"1", Minor:"11", GitVersion:"v1.11.0", GitCommit:"91e7b4fd31fcd3d5f436da26c980becec37ceefe", GitTreeState:"clean", BuildDate:"2018-06-27T20:08:34Z", GoVersion:"go1.10.2", Compiler:"gc", Platform:"linux/amd64"}
  • Fournisseur de cloud ou configuration matérielle :
    baremetal (Intel Xeon, disque dur 2 x 2 To, RAM 32 Go)
  • OS (par exemple à partir de / etc / os-release):
    Ubuntu 18.04 LTS (castor bionique)
  • Noyau (par exemple uname -a ):
    4.15.0-24-générique

Que s'est-il passé?

Après l'installation de kubernetes via kubeadm, les pods coredns ne s'afficheront pas. kubectl get pods --all-namespaces imprime ceci:

NAMESPACE     NAME                                  READY     STATUS    RESTARTS   AGE
kube-system   coredns-78fcdf6894-kgg8d              0/1       Pending   0          2h
kube-system   coredns-78fcdf6894-vl9jf              0/1       Pending   0          2h
kube-system   etcd-beetlejuice                      1/1       Running   0          2h
kube-system   kube-apiserver-beetlejuice            1/1       Running   0          2h
kube-system   kube-controller-manager-beetlejuice   1/1       Running   0          2h
kube-system   kube-proxy-bjdqd                      1/1       Running   0          2h
kube-system   kube-scheduler-beetlejuice            1/1       Running   0          2h

À quoi vous attendiez-vous?

coredns passe au statut 'Running' et kubernetes s'exécute sans problème

Comment le reproduire (le plus minimal et le plus précisément possible)?

Voici le script que j'ai utilisé pour l'installation:

curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb http://apt.kubernetes.io/ kubernetes-xenial main
EOF

apt-get update
apt-get install -y docker.io
apt-get install -y kubeadm

kubeadm init --pod-network-cidr=10.27.0.0/16

Y a-t-il autre chose que nous devons savoir?

Je pense que oui, mais je ne sais pas quoi ... Si vous avez besoin d'une sorte de journaux, dites-le-moi.

kinbug prioritawaiting-more-evidence prioritimportant-soon

Commentaire le plus utile

dommage qu'il n'y ait pas de journaux du planificateur.

Le contenu de /var/lib/kubelet/kubeadm-flags.env est

l'indicateur --resolv-conf semble être ajouté, donc c'est OK.

À présent, ce sera un kube à un seul nœud.

appelez kubeadm reset puis kubeadm init ... nouveau.
puis copiez la configuration dans votre répertoire utilisateur et essayez d'installer un plugin de réseau de pod (tissage):

kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"

et voir si les pods DNS sont prêts. cela n'a peut-être pas de sens, mais essayez-le.

Tous les 18 commentaires

@ sergej2705
la sortie de:
kubectl describe pod <coredns-pod-ids>

et les erreurs pertinentes de:

'systemctl status kubelet'
'journalctl -xeu kubelet'

aiderait plus.
Merci.

À partir de kubectl describe pod coredns-78fcdf6894-kgg8d -n kube-system :

Name:           coredns-78fcdf6894-kgg8d
Namespace:      kube-system
Node:           <none>
Labels:         k8s-app=kube-dns
                pod-template-hash=3497892450
Annotations:    <none>
Status:         Pending
IP:             
Controlled By:  ReplicaSet/coredns-78fcdf6894
Containers:
coredns:
    Image:       k8s.gcr.io/coredns:1.1.3
    Ports:       53/UDP, 53/TCP, 9153/TCP
    Host Ports:  0/UDP, 0/TCP, 0/TCP
    Args:
    -conf
    /etc/coredns/Corefile
    Limits:
    memory:  170Mi
    Requests:
    cpu:        100m
    memory:     70Mi
    Liveness:     http-get http://:8080/health delay=60s timeout=5s period=10s #success=1 #failure=5
    Environment:  <none>
    Mounts:
    /etc/coredns from config-volume (ro)
    /var/run/secrets/kubernetes.io/serviceaccount from coredns-token-4fqm7 (ro)
Conditions:
Type           Status
PodScheduled   False 
Volumes:
config-volume:
    Type:      ConfigMap (a volume populated by a ConfigMap)
    Name:      coredns
    Optional:  false
coredns-token-4fqm7:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  coredns-token-4fqm7
    Optional:    false
QoS Class:       Burstable
Node-Selectors:  <none>
Tolerations:     CriticalAddonsOnly
                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  4m (x1436 over 4h)  default-scheduler  0/1 nodes are available: 1 node(s) were not ready.

et à partir de kubectl describe pod coredns-78fcdf6894-vl9jf -n kube-system :

Name:           coredns-78fcdf6894-vl9jf
Namespace:      kube-system
Node:           <none>
Labels:         k8s-app=kube-dns
                pod-template-hash=3497892450
Annotations:    <none>
Status:         Pending
IP:             
Controlled By:  ReplicaSet/coredns-78fcdf6894
Containers:
coredns:
    Image:       k8s.gcr.io/coredns:1.1.3
    Ports:       53/UDP, 53/TCP, 9153/TCP
    Host Ports:  0/UDP, 0/TCP, 0/TCP
    Args:
    -conf
    /etc/coredns/Corefile
    Limits:
    memory:  170Mi
    Requests:
    cpu:        100m
    memory:     70Mi
    Liveness:     http-get http://:8080/health delay=60s timeout=5s period=10s #success=1 #failure=5
    Environment:  <none>
    Mounts:
    /etc/coredns from config-volume (ro)
    /var/run/secrets/kubernetes.io/serviceaccount from coredns-token-4fqm7 (ro)
Conditions:
Type           Status
PodScheduled   False 
Volumes:
config-volume:
    Type:      ConfigMap (a volume populated by a ConfigMap)
    Name:      coredns
    Optional:  false
coredns-token-4fqm7:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  coredns-token-4fqm7
    Optional:    false
QoS Class:       Burstable
Node-Selectors:  <none>
Tolerations:     CriticalAddonsOnly
                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  1m (x1467 over 4h)  default-scheduler  0/1 nodes are available: 1 node(s) were not ready.

Je ne vois aucune erreur dans systemctl status kubelet , voici la sortie complète:

● kubelet.service - kubelet: The Kubernetes Node Agent
Loaded: loaded (/lib/systemd/system/kubelet.service; enabled; vendor preset: enabled)
Drop-In: /etc/systemd/system/kubelet.service.d
        └─10-kubeadm.conf, override.conf
Active: active (running) since Mon 2018-07-09 17:43:53 CEST; 4h 7min ago
    Docs: http://kubernetes.io/docs/
Main PID: 26710 (kubelet)
    Tasks: 32 (limit: 4915)
CGroup: /system.slice/kubelet.service
        └─26710 /usr/bin/kubelet --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf --config=/var/lib/kubelet/config.yaml --cgroup-driver=cgroupfs --cni-bin-dir=/opt/cni/bin --cni-co

dans le journalctl -xeu kubelet je vois plusieurs fois les lignes suivantes:

Jul 09 21:54:48 beetlejuice kubelet[26710]: E0709 21:54:48.883071   26710 kubelet.go:2112] Container runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninit
Jul 09 21:54:49 beetlejuice kubelet[26710]: E0709 21:54:49.566069   26710 dns.go:131] Nameserver limits were exceeded, some nameservers have been omitted, the applied nameserver line is: 213.133.99.99 213.133.98.98 213.133.100.100
Jul 09 21:54:53 beetlejuice kubelet[26710]: W0709 21:54:53.884846   26710 cni.go:172] Unable to update cni config: No networks found in /etc/cni/net.d

pour info, le /etc/resolv.conf :

### Hetzner Online GmbH installimage
# nameserver config
nameserver 213.133.99.99
nameserver 213.133.98.98
nameserver 213.133.100.100
nameserver 2a01:4f8:0:1::add:1010
nameserver 2a01:4f8:0:1::add:9999
nameserver 2a01:4f8:0:1::add:9898

où Hetzner est le nom de l'opérateur du centre de données.

@ sergej2705
le planificateur échoue mais je ne sais pas pourquoi.

vous pouvez trouver l'ID du pod kube-scheduler avec
kubectl get pods --all-namespace

alors vous pouvez essayer ceci pour démarrer un terminal dans ce pod:
kubectl exec -ti <POD-ID-HERE> bash -n kube-system

et à partir de là, vous pouvez essayer de regarder le journal:
cat /var/log

aucune garantie qu'il a quelque chose de pertinent.

quelques autres choses:

  • installez-vous un pod-network après init (demander juste au cas où)?
  • après init quel contenu obtenez-vous dans /var/lib/kubelet/kubeadm-flags.env ?

kubectl exec -ti kube-scheduler-beetlejuice bash -n kube-system dit

OCI runtime exec failed: exec failed: container_linux.go:348: starting container process caused "exec: \"bash\": executable file not found in $PATH": unknown command terminated with exit code 126

donc j'ai essayé kubectl exec -ti kube-scheduler-beetlejuice sh -n kube-system donc sh au lieu de bash ... mais il n'y a pas de fichier /var/log

ls -lAh /var :

drwxr-xr-x    3 root     root        4.0K May 22 17:00 spool
drwxr-xr-x    2 root     root        4.0K May 22 17:00 www

À présent, ce sera un kube à un seul nœud.

Le contenu de /var/lib/kubelet/kubeadm-flags.env est

KUBELET_KUBEADM_ARGS=--cgroup-driver=cgroupfs --cni-bin-dir=/opt/cni/bin --cni-conf-dir=/etc/cni/net.d --network-plugin=cni --resolv-conf=/run/systemd/resolve/resolv.conf

dommage qu'il n'y ait pas de journaux du planificateur.

Le contenu de /var/lib/kubelet/kubeadm-flags.env est

l'indicateur --resolv-conf semble être ajouté, donc c'est OK.

À présent, ce sera un kube à un seul nœud.

appelez kubeadm reset puis kubeadm init ... nouveau.
puis copiez la configuration dans votre répertoire utilisateur et essayez d'installer un plugin de réseau de pod (tissage):

kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"

et voir si les pods DNS sont prêts. cela n'a peut-être pas de sens, mais essayez-le.

après une nouvelle initialisation, les pods ressemblent à ceci (à nouveau):

NAMESPACE     NAME                                  READY     STATUS    RESTARTS   AGE
kube-system   coredns-78fcdf6894-lcmg6              0/1       Pending   0          1m
kube-system   coredns-78fcdf6894-wd9nt              0/1       Pending   0          1m
kube-system   etcd-beetlejuice                      1/1       Running   0          18s
kube-system   kube-apiserver-beetlejuice            1/1       Running   0          36s
kube-system   kube-controller-manager-beetlejuice   1/1       Running   0          12s
kube-system   kube-proxy-zrhgj                      1/1       Running   0          1m
kube-system   kube-scheduler-beetlejuice            1/1       Running   0          24s

après avoir installé le plugin de tissage, cela ressemble à ceci:

NAMESPACE     NAME                                  READY     STATUS    RESTARTS   AGE
kube-system   coredns-78fcdf6894-lcmg6              1/1       Running   0          2m
kube-system   coredns-78fcdf6894-wd9nt              1/1       Running   0          2m
kube-system   etcd-beetlejuice                      1/1       Running   0          1m
kube-system   kube-apiserver-beetlejuice            1/1       Running   0          1m
kube-system   kube-controller-manager-beetlejuice   1/1       Running   0          58s
kube-system   kube-proxy-zrhgj                      1/1       Running   0          2m
kube-system   kube-scheduler-beetlejuice            1/1       Running   0          1m
kube-system   weave-net-ldxg5                       2/2       Running   0          24s

maintenant ça marche 👍

J'ai installé kubernetes-dashboard maintenant sans problème, cela ne fonctionnait pas avant. Mais est-ce la solution à ce problème?

merci pour les tests.

Mais est-ce la solution à ce problème?

je dirais - oui, pour l'instant.

la CLI et la documentation demandent aux utilisateurs d'installer un plugin pod-network juste après init .
nous n'avons pas documenté exactement ce qui se passe si cette étape est ignorée, mais on s'attend à ce que le cluster ne fonctionne pas correctement ...

si quelqu'un pense que ce problème ne devrait pas être fermé, veuillez le rouvrir.

J'ai le problème exact , même si le plugin de tissage n'a pas fait l'affaire. Je vois toujours des pods coredns au statut ContainerCreating . Cela fait presque une heure maintenant, alors ...

linux-uwkw:~ # kubectl cluster-info
Kubernetes master is running at https://192.168.178.163:6443
KubeDNS is running at https://192.168.178.163:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy

To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
linux-uwkw:~ # cat /var/lib/kubelet/kubeadm-flags.env
KUBELET_KUBEADM_ARGS=--cgroup-driver=cgroupfs --cni-bin-dir=/opt/cni/bin --cni-conf-dir=/etc/cni/net.d --network-plugin=cni
  • l'indicateur --resolv-conf est manquant. Donc je suppose que c'est un problème. Comment puis-je configurer kubeqdm pour l'ajouter?
  • le --cni-bin-dir=/opt/cni/bin est faux. Dans mon système, je n'ai pas cela.
linux-uwkw:~ # rpm -ql cni
/etc/cni
/etc/cni/net.d
/etc/cni/net.d/99-loopback.conf.sample
/usr/lib/cni
/usr/lib/cni/noop
/usr/sbin/cnitool
/usr/share/doc/packages/cni
/usr/share/doc/packages/cni/CONTRIBUTING.md
/usr/share/doc/packages/cni/DCO
/usr/share/doc/packages/cni/README.md
/usr/share/licenses/cni
/usr/share/licenses/cni/LICENSE

Je suppose que je dois y mettre /usr/sbin , non?

Les journaux du planificateur sont également:

linux-uwkw:~ # docker logs k8s_kube-scheduler_kube-scheduler-linux-uwkw_kube-system_a00c35e56ebd0bdfcd77d53674a5d2a1_0
I0813 21:18:19.816990       1 server.go:126] Version: v1.11.2
W0813 21:18:19.821719       1 authorization.go:47] Authorization is disabled
W0813 21:18:19.821744       1 authentication.go:55] Authentication is disabled
I0813 21:18:19.821787       1 insecure_serving.go:47] Serving healthz insecurely on 127.0.0.1:10251
E0813 21:18:25.603025       1 reflector.go:205] k8s.io/kubernetes/vendor/k8s.io/client-go/informers/factory.go:130: Failed to list *v1.PersistentVolume: persistentvolumes is forbidden: User "system:kube-scheduler" cannot list persistentvolumes at the cluster scope
E0813 21:18:25.603122       1 reflector.go:205] k8s.io/kubernetes/vendor/k8s.io/client-go/informers/factory.go:130: Failed to list *v1.ReplicationController: replicationcontrollers is forbidden: User "system:kube-scheduler" cannot list replicationcontrollers at the cluster scope
E0813 21:18:25.603161       1 reflector.go:205] k8s.io/kubernetes/vendor/k8s.io/client-go/informers/factory.go:130: Failed to list *v1.Service: services is forbidden: User "system:kube-scheduler" cannot list services at the cluster scope
E0813 21:18:25.603253       1 reflector.go:205] k8s.io/kubernetes/cmd/kube-scheduler/app/server.go:176: Failed to list *v1.Pod: pods is forbidden: User "system:kube-scheduler" cannot list pods at the cluster scope
E0813 21:18:25.603286       1 reflector.go:205] k8s.io/kubernetes/vendor/k8s.io/client-go/informers/factory.go:130: Failed to list *v1.StorageClass: storageclasses.storage.k8s.io is forbidden: User "system:kube-scheduler" cannot list storageclasses.storage.k8s.io at the cluster scope
E0813 21:18:25.603335       1 reflector.go:205] k8s.io/kubernetes/vendor/k8s.io/client-go/informers/factory.go:130: Failed to list *v1.PersistentVolumeClaim: persistentvolumeclaims is forbidden: User "system:kube-scheduler" cannot list persistentvolumeclaims at the cluster scope
E0813 21:18:25.603364       1 reflector.go:205] k8s.io/kubernetes/vendor/k8s.io/client-go/informers/factory.go:130: Failed to list *v1beta1.StatefulSet: statefulsets.apps is forbidden: User "system:kube-scheduler" cannot list statefulsets.apps at the cluster scope
E0813 21:18:25.603437       1 reflector.go:205] k8s.io/kubernetes/vendor/k8s.io/client-go/informers/factory.go:130: Failed to list *v1beta1.PodDisruptionBudget: poddisruptionbudgets.policy is forbidden: User "system:kube-scheduler" cannot list poddisruptionbudgets.policy at the cluster scope
E0813 21:18:25.603491       1 reflector.go:205] k8s.io/kubernetes/vendor/k8s.io/client-go/informers/factory.go:130: Failed to list *v1beta1.ReplicaSet: replicasets.extensions is forbidden: User "system:kube-scheduler" cannot list replicasets.extensions at the cluster scope
E0813 21:18:25.605642       1 reflector.go:205] k8s.io/kubernetes/vendor/k8s.io/client-go/informers/factory.go:130: Failed to list *v1.Node: nodes is forbidden: User "system:kube-scheduler" cannot list nodes at the cluster scope
E0813 21:18:26.603723       1 reflector.go:205] k8s.io/kubernetes/vendor/k8s.io/client-go/informers/factory.go:130: Failed to list *v1.PersistentVolume: persistentvolumes is forbidden: User "system:kube-scheduler" cannot list persistentvolumes at the cluster scope
E0813 21:18:26.606225       1 reflector.go:205] k8s.io/kubernetes/vendor/k8s.io/client-go/informers/factory.go:130: Failed to list *v1.Service: services is forbidden: User "system:kube-scheduler" cannot list services at the cluster scope
E0813 21:18:26.606295       1 reflector.go:205] k8s.io/kubernetes/vendor/k8s.io/client-go/informers/factory.go:130: Failed to list *v1.ReplicationController: replicationcontrollers is forbidden: User "system:kube-scheduler" cannot list replicationcontrollers at the cluster scope
E0813 21:18:26.607860       1 reflector.go:205] k8s.io/kubernetes/cmd/kube-scheduler/app/server.go:176: Failed to list *v1.Pod: pods is forbidden: User "system:kube-scheduler" cannot list pods at the cluster scope
E0813 21:18:26.611457       1 reflector.go:205] k8s.io/kubernetes/vendor/k8s.io/client-go/informers/factory.go:130: Failed to list *v1.StorageClass: storageclasses.storage.k8s.io is forbidden: User "system:kube-scheduler" cannot list storageclasses.storage.k8s.io at the cluster scope
E0813 21:18:26.612777       1 reflector.go:205] k8s.io/kubernetes/vendor/k8s.io/client-go/informers/factory.go:130: Failed to list *v1.PersistentVolumeClaim: persistentvolumeclaims is forbidden: User "system:kube-scheduler" cannot list persistentvolumeclaims at the cluster scope
E0813 21:18:26.616076       1 reflector.go:205] k8s.io/kubernetes/vendor/k8s.io/client-go/informers/factory.go:130: Failed to list *v1beta1.StatefulSet: statefulsets.apps is forbidden: User "system:kube-scheduler" cannot list statefulsets.apps at the cluster scope
E0813 21:18:26.616779       1 reflector.go:205] k8s.io/kubernetes/vendor/k8s.io/client-go/informers/factory.go:130: Failed to list *v1beta1.PodDisruptionBudget: poddisruptionbudgets.policy is forbidden: User "system:kube-scheduler" cannot list poddisruptionbudgets.policy at the cluster scope
E0813 21:18:26.619308       1 reflector.go:205] k8s.io/kubernetes/vendor/k8s.io/client-go/informers/factory.go:130: Failed to list *v1beta1.ReplicaSet: replicasets.extensions is forbidden: User "system:kube-scheduler" cannot list replicasets.extensions at the cluster scope
E0813 21:18:26.620048       1 reflector.go:205] k8s.io/kubernetes/vendor/k8s.io/client-go/informers/factory.go:130: Failed to list *v1.Node: nodes is forbidden: User "system:kube-scheduler" cannot list nodes at the cluster scope
I0813 21:18:28.429769       1 controller_utils.go:1025] Waiting for caches to sync for scheduler controller
I0813 21:18:28.533687       1 controller_utils.go:1032] Caches are synced for scheduler controller
I0813 21:18:28.533868       1 leaderelection.go:185] attempting to acquire leader lease  kube-system/kube-scheduler...
I0813 21:18:28.539621       1 leaderelection.go:194] successfully acquired lease kube-system/kube-scheduler

J'ai le problème exact

je ne pense pas que ce soit le même problème.

KubeDNS fonctionne à

CoreDNS est le serveur DNS par défaut dans 1.11.x. avez-vous activé cela intentionnellement?

cat /var/lib/kubelet/kubeadm-flags.env

/var/lib/kubelet/kubeadm-flags.env est généré automatiquement sur le runtime de kubeadm et ne doit pas être modifié.
vous pouvez ajouter des indicateurs dans /etc/default/kubelet

voir les infos ici:
https://github.com/kubernetes/kubernetes/blob/master/build/debs/10-kubeadm.conf

l'indicateur --resolv-conf est manquant.

il ne serait ajouté que si votre distribution utilise ceci:
https://www.freedesktop.org/software/systemd/man/systemd-resolved.service.html

--cni-bin-dir = / opt / cni / bin --cni-conf-dir = / etc / cni / net.d

ce sont les valeurs par défaut, mais AFAIK cela ne doit pas être ajouté automatiquement au moment de l'exécution.

difficile de dire quel est le problème dans votre cas.
mieux ouvrir un nouveau problème et suivre le modèle de rapport de problème.

J'ai trouvé mon problème après tout. Il me manquait le binaire loopback de CNI à /opt/cni/bin .

cd /opt/cni/bin
curl -L -O https://github.com/containernetworking/cni/releases/download/v0.4.0/cni-amd64-v0.4.0.tgz
tar -xf cni-amd64-v0.4.0.tgz
systemctl restart kubelet

J'ai rencontré le même problème et l'ai résolu en installant de la flanelle. Après avoir installé la flanelle, les cors et autres pods peuvent être créés correctement.

Pourquoi installer de la flanelle peut résoudre le problème?

J'initialise également mon cluster K8 en utilisant kubeadm et j'ajoute le --pod-network-cidr arg. Donc, je pense que si flannel ou d'autres modules complémentaires de réseau de pod ne sont pas installés, kubelet ne peut pas savoir comment attribuer une adresse IP au pod et lancer une erreur.

Vous avez dit que vous voyez le message suivant en utilisant journal -xeu kubelet :

26710 kubelet.go:2112] Container runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninit
Jul 09 21:54:49 beetlejuice kubelet[26710]: E0709 21:54:49.566069   26710 dns.go:131] Nameserver limits were exceeded, some nameservers have been omitted, the applied nameserver line is: 213.133.99.99 213.133.98.98 213.133.100.100
Jul 09 21:54:53 beetlejuice kubelet[26710]: W0709 21:54:53.884846   26710 cni.go:172] Unable to update cni config: No networks found in /etc/cni/net.d

J'ai également vu des journaux similaires sur ma machine et je pense donc que c'est la cause du problème.

Pourquoi installer de la flanelle peut résoudre le problème?

un plugin CNI doit être installé:
https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm
Installing a pod network add-on
You must install a pod network add-on so that your pods can communicate with each other.

un plugin CNI doit être installé:
https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm

Mes coredns ne peuvent pas démarrer car un module complémentaire de réseau de pod n'est pas installé après le lancement de kubernetes et maintenant je le sais, merci.

dommage qu'il n'y ait pas de journaux du planificateur.

Le contenu de /var/lib/kubelet/kubeadm-flags.env est

l'indicateur --resolv-conf semble être ajouté, donc c'est OK.

À présent, ce sera un kube à un seul nœud.

appelez kubeadm reset puis kubeadm init ... nouveau.
puis copiez la configuration dans votre répertoire utilisateur et essayez d'installer un plugin de réseau de pod (tissage):

kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"

et voir si les pods DNS sont prêts. cela n'a peut-être pas de sens, mais essayez-le.

ça marche pour moi! Merci beaucoup

dommage qu'il n'y ait pas de journaux du planificateur.

Le contenu de /var/lib/kubelet/kubeadm-flags.env est

l'indicateur --resolv-conf semble être ajouté, donc c'est OK.

À présent, ce sera un kube à un seul nœud.

appelez kubeadm reset puis kubeadm init ... nouveau.
puis copiez la configuration dans votre répertoire utilisateur et essayez d'installer un plugin de réseau de pod (tissage):

kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"

et voir si les pods DNS sont prêts. cela n'a peut-être pas de sens, mais essayez-le.

serviceaccount / weave-net configuré
clusterrole.rbac.authorization.k8s.io/weave-net configuré
clusterrolebinding.rbac.authorization.k8s.io/weave-net configuré
role.rbac.authorization.k8s.io/weave-net configuré
rolebinding.rbac.authorization.k8s.io/weave-net configuré
impossible de reconnaître aucune correspondance pour le genre "DaemonSet" dans la version "extensions / v1beta1"

Impossible de configurer

impossible de reconnaître aucune correspondance pour le genre "DaemonSet" dans la version "extensions / v1beta1"

c'est un bogue du côté du plugin CNI.
essayez plutôt le plugin Callico CNI.

Cette page vous a été utile?
0 / 5 - 0 notes