web-dev-qa-db-fra.com

Kubeadm et les risques de planifier des pods sur Master Node (Pods toujours en attente)

Tout en suivant l'article de kubernetes sur tilisation de kubeadm pour créer un cluster , j'étais coincé lorsque les pods AddOn que j'essayais d'installer (Nginx, Tiller, Grafana, InfluxDB, Dashboard) restaient toujours dans un état de En attente .

Vérification du message de kubectl describe pod tiller-deploy-df4fdf55d-jwtcz --namespace=kube-system a généré le message suivant:

Type     Reason            Age                From               Message
----     ------            ----               ----               -------
Warning  FailedScheduling  51s (x15 over 3m)  default-scheduler  0/1 nodes are available: 1 node(s) had taints that the pod didn't tolerate.

Lorsque j'ai exécuté la commande à partir de la section Isolation principale kubectl taint nodes --all node-role.kubernetes.io/master-, les AddOns s'installeraient comme prévu.

À ce stade, je ne peux que soupçonner (car ils sont déjà installés sur le nœud maître) que la raison était que je n'avais pas encore connecté de nœud de travail au cluster pour que le planificateur planifie les pods.

La documentation indique que "votre cluster ne planifiera pas de pods sur le maître pour des raisons de sécurité". Je sais qu'il s'agit d'un environnement de non-production donc il y a peu de risques dans cette situation mais quel est le risque de supprimer cette souillure dans un cluster de production?

Suivi: s'il s'agit d'un risque, comment puis-je rajouter cette souillure pour pouvoir ensuite désinstaller les modules AddOn et essayer de faire installer le planificateur sur mon nœud de travail?

Détails de l'environnement: Système d'exploitation - CentOS 7.4.1708 (Core) Kubernetes Version - 1.10

8
Flea

la raison en était que je n'avais pas encore connecté de nœud de travail au cluster pour que le planificateur planifie les pods.

100% correct. Vous voudrez certainement des nœuds de travail, sinon l'idée de "planifier le travail" devient très bizarre.

mais quel est le risque de supprimer cette souillure dans un cluster de production?

Je ne suis pas un expert en sécurité de kubernetes, mais un risque pragmatique est l'épuisement du processeur, des E/S et/ou de la mémoire sur les nœuds maîtres, ce qui aurait des conséquences très graves sur la santé du cluster. Il n'y a presque jamais de raison d'exécuter une charge de travail sur un nœud maître, et presque entièrement une augmentation du risque, donc le conseil "ne le faites pas" est bien fondé.

comment puis-je rajouter cette souillure pour pouvoir ensuite désinstaller les modules AddOn et essayer de les installer sur mon nœud de travail?

Je ne suis pas sûr de suivre cette question, mais je commencerais certainement par ajouter un nœud de travail avant d'essayer de faire des choses compliquées avec des taches et des tolérances.

8
mdaniel