J'ai un cluster Kubernetes dans vagrant (1.14.0) et j'ai installé calico.
J'ai installé le tableau de bord kubernetes. Lorsque j'utilise kubectl proxy
pour visiter le tableau de bord:
kubeadm init --apiserver-advertise-address="192.168.50.10" --apiserver-cert-extra-sans="192.168.50.10" --node-name k8s-master --pod-network-cidr=192.168.0.0/16
Voici mes pods (le tableau de bord redémarre fréquemment):
failed to load Kubelet config file /var/lib/kubelet/config.yaml, error failed to read kubelet config file "/var/lib/kubelet/config.yaml"
logs du pod dasbhoard:
2019/03/30 14:36:21 Error while initializing connection to Kubernetes apiserver. This most likely means that the cluster is misconfigured (e.g., it has invalid apiserver certificates or service account's configuration) or the --apiserver-host param points to a server that does not exist. Reason: Get https://10.96.0.1:443/version: dial tcp 10.96.0.1:443: i/o timeout Refer to our FAQ and wiki pages for more information: https://github.com/kubernetes/dashboard/wiki/FAQ
Je peux telnet depuis le maître et les nœuds vers 10.96.0.1:443.
Qu'est-ce qui est mal configuré? Le reste du cluster semble fonctionner correctement, même si je vois ce journal dans kubelet:
$ kubectl get pods -n kube-system NAME READY STATUS RESTARTS AGE calico-etcd-cj928 1/1 Running 0 11m calico-node-4fnb6 1/1 Running 0 18m calico-node-qjv7t 1/1 Running 0 20m calico-policy-controller-b9b6749c6-29c44 1/1 Running 1 11m coredns-fb8b8dccf-jjbhk 1/1 Running 0 20m coredns-fb8b8dccf-jrc2l 1/1 Running 0 20m etcd-k8s-master 1/1 Running 0 19m kube-apiserver-k8s-master 1/1 Running 0 19m kube-controller-manager-k8s-master 1/1 Running 0 19m kube-proxy-8mrrr 1/1 Running 0 18m kube-proxy-cdsr9 1/1 Running 0 20m kube-scheduler-k8s-master 1/1 Running 0 19m kubernetes-dashboard-5f7b999d65-nnztw 1/1 Running 3 2m11s
kubelet semble fonctionner correctement sur le maître. Le cluster a été créé avec cette commande:
Error: 'dial tcp 192.168.1.4:8443: connect: connection refused' Trying to reach: 'https://192.168.1.4:8443/'
3 Réponses :
vous devez définir votre nom d'hôte dans / etc / hosts
# systemctl stop kubelet # systemctl stop docker # iptables --flush # iptables -tnat --flush # systemctl start kubelet # systemctl start docker
si vous définissez votre nom d'hôte dans votre maître mais que cela n'a pas fonctionné, essayez
#hostname YOUR_HOSTNAME #nano /etc/hosts YOUR_IP HOSTNAME
et vous devez installer le tableau de bord avant de rejoindre le nœud worker
et désactiver votre pare-feu
et vous pouvez vérifier votre gratuit bélier.
l'ajout d'un nom d'hôte a fonctionné, pouvez-vous expliquer pourquoi j'ai dû faire cela?
Dans kubernetes, tout est défini par son nom car lorsqu'un pod est détruit, il obtient une autre adresse IP, nous devons donc définir notre nom d'hôte et les cordns fonctionnent simplement avec le nom d'hôte et non l'IP Et si vous obtenez votre journal cordns avant, vous pourriez voir une erreur dedans
Exclude - paramètre node-name de la commande kubeadm init
essayez cette commande
kubeadm init --apiserver-advertise-address=$(hostname -i) --apiserver-cert-extra-sans="192.168.50.10" --pod-network-cidr=192.168.0.0/16
cela n'a pas aidé: /
Pour moi, le problème était que je devais créer une NetworkPolicy qui autorisait le trafic de sortie vers l'API kubernetes