web-dev-qa-db-fra.com

Autoriser la planification des pods sur le maître Kubernetes?

J'ai configuré Kubernetes sur CoreOS en mode nu à l'aide des scripts d'installation generic . Il utilise la version stable actuelle 1298.6.0 avec Kubernetes version 1.5.4.

Nous aimerions avoir une configuration maître hautement disponible, mais nous ne disposons pas de suffisamment de matériel pour dédier trois serveurs à servir uniquement de maîtres Kubernetes. Je voudrais donc pouvoir autoriser la planification des pods utilisateur sur le serveur. Kubernetes maître. J'ai défini --register-schedulable = true dans /etc/systemd/system/kubelet.service mais il est toujours apparu sous le nom SchedulingDisabled.

J'ai essayé d'ajouter des paramètres pour inclure le nœud en tant que travailleur, notamment en ajoutant des certificats TLS de travailleur à/etc/kubernetes/ssl, en ajoutant ces paramètres à kubelet.service, en ajoutant un fichier /etc/kubernetes/worker-kubeconfig.yaml. certs et a ajouté cette information au fichier /etc/kubernetes/manifests/kube-proxy.yaml. J'ai utilisé mes nœuds existants en tant que modèle pour ce qu'il faut ajouter. Cela a enregistré un autre nœud sous le nom d'hôte du maître, puis celui-ci et le nœud principal d'origine se sont présentés sous les noms NotReady, SchedulingDisabled.

Cette question indique que les modules de planification sur le nœud maître devraient être possibles, mais que je ne trouve pratiquement rien d'autre à ce sujet.

8
dmol

Si vous utilisez Kubernetes 1.7 et supérieur:

kubectl taint node mymasternode node-role.kubernetes.io/master:NoSchedule-
24
Magnus Runesson

Je ne sais pas pourquoi le nœud maître apparaît sous la forme NotReady; ça ne devrait pas. Essayez d’exécuter kubectl describe node mymasternode pour le savoir.

La SchedulingDisabled est parce que le nœud maître est tainted avec dedicated=master:NoSchedule

Exécutez cette commande contre tous vos maîtres pour éliminer la souillure:

kubectl taint nodes mymasternode dedicated-

Pour comprendre pourquoi cela fonctionne, lisez sur les traces et les tolérances .

3
Janos Lenart

Pour tous ceux qui utilisent kops sur AWS. Je voulais activer la planification des pods sur le maître.

$ kubectl get nodes -owide me donnait cette sortie:

NAME                                          STATUS
...
...
ip-1**-**-**-***.********.compute.internal    Ready                      node
ip-1**-**-**-***.********.master.internal     Ready,SchedulingDisabled   master
                                                    ^^^^^^^^^^^^^^^^^^
ip-1**-**-**-***.********.compute.internal    Ready                      node
...
...

Et $ kubectl describe nodes ip-1**-**-**-***.********.master.internal

...
...
Taints:             <none>
Unschedulable:      true
...                 ^^^^
...

Corriger le maître avec cette commande: 

$ kubectl patch node MASTER_NAME -p "{\"spec\":{\"unschedulable\":false}}" 

travaillé pour moi et la planification des pods est maintenant activée.

Ref: https://github.com/kubernetes/kops/issues/639#issuecomment-287015882

0
illagrenan