Wenn ich Ihre Situation richtig zu hören, dann denke ich, Sie am glücklichsten mit einem DaemonSet
sein werden, die (und optional Monitore) ansible-pull.service
und ansible-pull.timer
auf dem Knoten installiert.
Die DaemonSet
gewährleistet der Behälter auf jedem Knoten (im Gegensatz zu einem CronJob oder dergleichen) vorgesehen ist, und mit /etc/systemd/system
Volumen in den Behälter montiert und go-systemd's ability to daemon-reload (zusammen mit dem D-BUS-Buchse, natürlich), kann der Behälter eines geeignet auszuzuschreiben Beschreibung .service
und .timer
Datei für diesen Knoten.
Dann wird ansible-pull
wie zuvor laufen, was auch immer Ihre vorhandenen ansible Playbooks getan haben.
Es gibt viele Ansätze, um diese ähnliche Aktion auf Nicht-Knoten-Maschinen zu erreichen, also überlasse ich das dem Leser als Übung.
Ich weiß nicht, was Sie als „Infrastruktur“ Schicht definieren, aber das Drehen der Kubernetes Zert ist relativ einfach aus ansible-Pull-Perspektive: die neue worker.pem
und worker.key
in /etc/kubernetes/ssl
schreiben, prallen kubelet.service
(oder dessen hyperkube
Äquivalent) , voilà. Obere Plattform-Dienste, die ich erwarten würde, werden von der (ReplicaSet | Deployment | ReplicationController | etc) verwaltet, die sie besitzt, was bedeutet, dass man für in-Cluster-Ressourcen viel deklarativer sein kann, Zugriff auf die volle Leistung von ConfigMap
, Secret
, Service
, usw.
_unterschiedliche Schichten in kubernetes Cluster? _ Was bedeutet "verschiedene Schichten"? –
Ist das neu in Ihrem Workflow, oder hatten Sie es unter der Flotte und möchten jetzt die gleichen Schritte unter kubernetes machen? –
Verschiedene Layer: Infrastruktur Layer, Kubernetes Layer und Services Layer (Upper Plattform Services (Elasticsearch, etc ..) Lower Plattform Services (etcd, PWX, etc ...) – Ravim