Kubeadm und die Risiken der Planung Pods auf dem Master-Knoten ("Pods" immer Angemeldet)
Während der folgenden kubernetes Artikel auf Mit kubeadm zum Erstellen eines Clusters, ich steckte fest, wenn die AddOn-pods, die ich versuche zu installieren (Nginx, Tiller, Grafana, InfluxDB, Armaturenbrett), würde immer bleiben, in einem Zustand der Ausstehende.
Überprüfung der Nachricht von kubectl describe pod tiller-deploy-df4fdf55d-jwtcz --namespace=kube-system
entstand die folgende Meldung:
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.
Als ich lief den Befehl aus dem Master Isolation Abschnitt kubectl taint nodes --all node-role.kubernetes.io/master-
die AddOns installieren, wie erwartet.
An dieser Stelle kann ich nur vermuten (weil Sie bereits installiert sind auf dem master-Knoten), der der Grund war, dass ich noch nicht angeschlossen, ein worker-Knoten mit dem cluster noch für den scheduler zur Planung der Hülsen auf.
Gibt die Dokumentation "der cluster wird sich nicht planen pods auf dem master aus Gründen der Sicherheit". Ich weiß, dass dies eine nicht-Produktionsumgebung, so gibt es wenig Risiko in dieser situation, aber was ist das Risiko zu entfernen, die Karkassen in einen Produktions-cluster?
Follow-up: ist dies eine Gefahr, wie kann ich wieder hinzufügen, dass taint so kann ich das dann deinstallieren Sie das AddOn Schoten und versuchen, den scheduler installieren Sie Sie auf meinem Worker-Knoten?
Umgebung Details: Betriebssystem - CentOS 7.4.1708 (Core) Kubernetes Version 1.10
Du musst angemeldet sein, um einen Kommentar abzugeben.
100% richtig. Sie wird sicher wollen einige worker-Knoten, da sonst die Idee der "Planung der Arbeit" wird sehr seltsam.
Ich bin kein kubernetes-security-Experte, aber ein pragmatische Risiko CPU, I/O, und/oder Speicher erschöpft auf dem master-Knoten, die hätte sehr gravierende Folgen für die Gesundheit des Clusters. Es gibt fast nie einen Grund, um eine workload auf einem master-Knoten, und fast ausschließlich eine Erhöhung des Risikos, also der Rat, "bloß nicht" begründet ist.
Ich bin mir nicht sicher, ob ich Folgen, dass die Frage, aber ich würde für Sie sicher starten Sie, indem Sie nur ein worker-Knoten, bevor Sie versuchen, komplizierte Sachen mit taints und tolerations.
node-role.kubernetes.io/master="":NoSchedule
kubectl taint nodes --all node-role.kubernetes.io/master-