{"id":35226,"date":"2019-10-31T22:03:05","date_gmt":"2019-10-31T19:03:05","guid":{"rendered":"https:\/\/prohoster.info\/blog\/gotovit-kubernetes-klaster-prosto-i-udobno-anonsiruem-addon-operator\/"},"modified":"2019-10-31T22:03:05","modified_gmt":"2019-10-31T19:03:05","slug":"gotovit-kubernetes-klaster-prosto-i-udobno-anonsiruem-addon-operator","status":"publish","type":"post","link":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/gotovit-kubernetes-klaster-prosto-i-udobno-anonsiruem-addon-operator","title":{"rendered":"Kubernetes-Cluster einfach und bequem einrichten? Wir k\u00fcndigen den Addon-Operator an","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Kubernetes-Cluster einfach und bequem einrichten? Wir k\u00fcndigen den Addon-Operator an\" src=\"\/wp-content\/uploads\/8df3959f765d5d1bc8d427d3258aacc4.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNach <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/447442\/\">Shell-Operator<\/a><\/noindex> pr\u00e4sentieren wir seinen \u00e4lteren Bruder \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/addon-operator\">Addon-Operator<\/a><\/noindex>. Dies ist ein Open-Source-Projekt, das verwendet wird, um systematische Komponenten in einem Kubernetes-Cluster zu installieren, die man allgemein als Erg\u00e4nzungen bezeichnen kann.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Warum \u00fcberhaupt irgendwelche Erg\u00e4nzungen?<\/h2>\n<p>\nEs ist kein Geheimnis, dass Kubernetes kein fertiges All-in-One-Produkt ist, und um einen \u201eausgewachsenen\u201c Cluster aufzubauen, sind verschiedene Erg\u00e4nzungen erforderlich. Der Addon-Operator hilft dabei, diese Erg\u00e4nzungen zu installieren, zu konfigurieren und aktuell zu halten.<\/p>\n<p>Der Bedarf an zus\u00e4tzlichen Komponenten im Cluster wird in der <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/449096\/\">Pr\u00e4sentation<\/a><\/noindex> der Kollegen <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/driusha\/\" class=\"user_link\">driusha<\/a><\/noindex>. Kurz gesagt, die Situation mit Kubernetes ist derzeit so, dass man f\u00fcr eine einfache Installation zum \u201eAusprobieren\u201c mit den Standardkomponenten auskommen kann, f\u00fcr Entwickler und Testzwecke kann man Ingress hinzuf\u00fcgen, aber um eine vollst\u00e4ndige Installation zu haben, die man als \u201eIhre Produktion ist bereit\u201c bezeichnen kann, m\u00fcssen rund ein Dutzend verschiedener Erg\u00e4nzungen hinzugef\u00fcgt werden: etwas f\u00fcr Monitoring, etwas f\u00fcr Logs, Ingress und Cert-Manager nicht vergessen, Knoten-Gruppen abteilen, Netzwerkrichtlinien hinzuf\u00fcgen, mit sysctl-Einstellungen und Pod-Autoscaler w\u00fcrzen\u2026<\/p>\n<p><img decoding=\"async\" alt=\"Kubernetes-Cluster einfach und bequem einrichten? Wir k\u00fcndigen den Addon-Operator an\" src=\"\/wp-content\/uploads\/ab3bed8ee8b29d4e51905e45c908f078.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Was ist das Besondere an der Arbeit mit ihnen?<\/h2>\n<p>\nWie die Praxis zeigt, kommt es mit nur einer Installation nicht aus. F\u00fcr eine komfortable Arbeit mit dem Cluster m\u00fcssen Erg\u00e4nzungen aktualisiert, deaktiviert (aus dem Cluster entfernt) werden, und manches m\u00f6chte man m\u00f6glicherweise vor der Installation im Produktions-Cluster testen.<\/p>\n<p>Vielleicht reicht hier auch Ansible? M\u00f6glicherweise. Aber <b>vollwertige Erg\u00e4nzungen leben in der Regel nicht ohne Anpassungen<\/b>. Diese Einstellungen k\u00f6nnen je nach Cluster-Variante (aws, gce, azure, bare-metal, do, \u2026) unterschiedlich sein. Einige Einstellungen k\u00f6nnen nicht im Voraus festgelegt werden \u2014 sie m\u00fcssen aus dem Cluster abgerufen werden. Und der Cluster ist nicht statisch: F\u00fcr einige Einstellungen muss man die \u00c4nderungen \u00fcberwachen. Hierf\u00fcr reicht Ansible nicht aus: Es wird ein Programm ben\u00f6tigt, das im Cluster lebt, d.h. ein Kubernetes Operator.<\/p>\n<p>Diejenigen, die es ausprobiert haben <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/shell-operator\">Shell-Operator<\/a><\/noindex>, werden sagen, dass die Aufgaben der Installation und Aktualisierung der Erg\u00e4nzungen sowie das \u00dcberwachen der Einstellungen mit Hilfe von <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/shell-operator\/blob\/master\/HOOKS.md\">Hooks<\/a><\/noindex> f\u00fcr den Shell-Operator durchaus gel\u00f6st werden k\u00f6nnen. Man kann ein Skript schreiben, das eine bedingte <code>kubectl apply<\/code> ausf\u00fchrt und beispielsweise den ConfigMap \u00fcberwacht, wo die Einstellungen gespeichert werden. Genau so ist es im Addon-Operator implementiert.<\/p>\n<h2>Wie ist es im Addon-Operator organisiert?<\/h2>\n<p>\nBei der Entwicklung einer neuen L\u00f6sung haben wir folgende Prinzipien zugrunde gelegt:<\/p>\n<ul>\n<li> Der Addon-Installer muss unterst\u00fctzen <b>Vorlagen und deklarative Konfiguration<\/b>. Wir verwenden keine magischen Skripte zur Installation von Addons. Der Addon-Operator nutzt Helm zur Installation von Addons. Zur Installation muss ein Chart erstellt und Werte definiert werden, die f\u00fcr die Konfiguration verwendet werden. <\/li>\n<li> Die Einstellungen k\u00f6nnen <b>bei der Installation generiert werden<\/b>, sie k\u00f6nnen <b>aus dem Cluster abgerufen werden<\/b>, oder <b>Updates erhalten<\/b>, indem man die Ressourcen des Clusters \u00fcberwacht. Diese Operationen k\u00f6nnen mit Hooks implementiert werden.<\/li>\n<li> Die Einstellungen k\u00f6nnen <b>im Cluster speichern<\/b>. Zur Speicherung der Einstellungen im Cluster wird ein ConfigMap\/addon-operator erstellt, und der Addon-Operator \u00fcberwacht die \u00c4nderungen dieser ConfigMap. Der Addon-Operator gibt Hooks Zugriff auf die Einstellungen durch einfache Vereinbarungen.<\/li>\n<li> <b>Das Addon h\u00e4ngt von den Einstellungen ab<\/b>. Wenn sich die Einstellungen \u00e4ndern, stellt der Addon-Operator das Helm-Chart mit neuen Werten bereit. Die Kombination aus Helm-Chart, Werten daf\u00fcr und Hooks nennen wir Modul (siehe unten f\u00fcr Details).<\/li>\n<li> <b>Staging<\/b>. Es gibt keine magischen Release-Skripte. Der Update-Mechanismus ist \u00e4hnlich wie bei einer normalen Anwendung \u2014 die Addons und der Addon-Operator werden in ein Image zusammengebaut, getaggt und ver\u00f6ffentlicht.<\/li>\n<li> <b>Ergebniskontrolle<\/b>. Der Addon-Operator kann Metriken f\u00fcr Prometheus bereitstellen.<\/li>\n<\/ul>\n<p><\/p>\n<h2>Was ist ein Addon im Addon-Operator?<\/h2>\n<p>\nEin Addon kann alles sein, was dem Cluster neue Funktionen hinzuf\u00fcgt. Ein Beispiel f\u00fcr ein Addon ist die Installation von Ingress. Es kann jeder Operator oder Controller mit seiner eigenen CRD sein: prometheus-operator, cert-manager, kube-controller-manager usw. Oder etwas Kleines, das den Betrieb vereinfacht \u2014 zum Beispiel ein Secret Copier, der Registry-Geheimnisse in neue Namensr\u00e4ume kopiert, oder ein Sysctl Tuner, der Sysctl-Parameter auf neuen Knoten einstellt.<\/p>\n<p>Zur Implementierung von Addons stellt der Addon-Operator mehrere Konzepte bereit:<\/p>\n<ul>\n<li> <b>Helm-Chart<\/b> wird verwendet, um verschiedene Software im Cluster zu installieren \u2014 zum Beispiel Prometheus, Grafana, nginx-ingress. Wenn das ben\u00f6tigte Element ein Helm-Chart hat, ist die Installation mit dem Addon-Operator sehr einfach.<\/li>\n<li> <b>Wertestorage<\/b>. Helm-Charts haben in der Regel viele verschiedene Einstellungen, die sich im Laufe der Zeit \u00e4ndern k\u00f6nnen. Der Addon-Operator unterst\u00fctzt die Speicherung dieser Einstellungen und kann ihre \u00c4nderungen \u00fcberwachen, um das Helm-Chart mit neuen Werten neu zu installieren.<\/li>\n<li> <b>Hooks<\/b> \u2014 dies sind ausf\u00fchrbare Dateien, die vom Addon-Operator bei Ereignissen gestartet werden und die auf den Werte-Speicher zugreifen. Ein Hook kann \u00c4nderungen im Cluster \u00fcberwachen und die Werte im Werte-Speicher aktualisieren. Das bedeutet, dass man mit Hooks eine Entdeckung durchf\u00fchren kann, um beim Start oder nach einem Zeitplan Werte aus dem Cluster zu sammeln, oder man kann eine kontinuierliche Entdeckung durchf\u00fchren, indem man Werte aus dem Cluster bei \u00c4nderungen im Cluster sammelt.<\/li>\n<li> <b>Modul<\/b> \u2014 ist eine Kombination aus Helm-Chart, Werte-Speicher und Hooks. Module k\u00f6nnen aktiviert und deaktiviert werden. Das Deaktivieren eines Moduls bedeutet das L\u00f6schen aller Releases des Helm-Charts. Module k\u00f6nnen sich dynamisch selbst aktivieren, zum Beispiel, wenn alle ben\u00f6tigten Module aktiviert sind oder wenn die Entdeckung in den Hooks die erforderlichen Parameter gefunden hat \u2014 dies geschieht mit einem unterst\u00fctzenden enabled-Skript.<\/li>\n<li> <b>Globale Hooks<\/b>. Dies sind Hooks, die \"f\u00fcr sich selbst\" stehen, sie sind nicht in Module integriert und haben Zugriff auf den globalen Werte-Speicher, dessen Werte allen Hooks in den Modulen zur Verf\u00fcgung stehen.<\/li>\n<\/ul>\n<p>\nWie arbeiten diese Teile zusammen? Betrachten wir das Bild aus der Dokumentation:<\/p>\n<p><img decoding=\"async\" alt=\"Kubernetes-Cluster einfach und bequem einrichten? Wir k\u00fcndigen den Addon-Operator an\" src=\"\/wp-content\/uploads\/c9bb8e5ae78aa5df0d6c4fbf353e4236.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEs gibt zwei Arbeits-Szenarien:<\/p>\n<ol>\n<li> Der globale Hook wird bei einem Ereignis ausgel\u00f6st \u2014 zum Beispiel bei einer \u00c4nderung der Ressource im Cluster. Dieser Hook verarbeitet die \u00c4nderungen und schreibt neue Werte in den globalen Werte-Speicher. Der Addon-Operator bemerkt, dass der globale Speicher sich ge\u00e4ndert hat und startet alle Module. Jedes Modul entscheidet mithilfe seiner Hooks, ob es aktiviert werden soll, und aktualisiert seinen Werte-Speicher. Wenn das Modul aktiviert ist, beginnt der Addon-Operator mit der Installation des Helm-Charts. Dem Helm-Chart stehen dabei die Werte aus dem Speicher des Moduls sowie aus dem globalen Speicher zur Verf\u00fcgung.<\/li>\n<li> Das zweite Szenario ist einfacher: Der Modul-Hook wird bei einem Ereignis ausgel\u00f6st und \u00e4ndert die Werte im Werte-Speicher des Moduls. Der Addon-Operator bemerkt dies und startet das Helm-Chart mit den aktualisierten Werten.<\/li>\n<\/ol>\n<p>\nEin Addon kann als einzelner Hook oder als ein Helm-Chart realisiert werden, oder <b>sogar als mehrere abh\u00e4ngige Module<\/b> \u2014 das h\u00e4ngt von der Komplexit\u00e4t des im Cluster installierten Components und vom erforderlichen Flexibilit\u00e4tsgrad der Einstellungen ab. Zum Beispiel gibt es im Repository (<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/addon-operator\/tree\/master\/examples\">\/examples<\/a><\/noindex>) das sysctl-tuner-Addon, das sowohl als einfaches Modul mit Hook und Helm-Chart als auch unter Verwendung eines Werte-Speichers implementiert ist, was die M\u00f6glichkeit bietet, Einstellungen durch Bearbeitung von ConfigMap hinzuzuf\u00fcgen.<\/p>\n<h2>Lieferung von Updates<\/h2>\n<p>\nEinige Worte zur Organisation von Komponentenuppdates, die vom Addon-Operator installiert werden.<\/p>\n<p>Um den Addon-Operator im Cluster zu starten, muss man <b>ein Image mit Erweiterungen<\/b> in Form von Hook-Dateien und Helm-Charts zusammenstellen, die Bin\u00e4rdatei hinzuf\u00fcgen <code>Addon-Operator<\/code> und alles, was f\u00fcr die Hooks ben\u00f6tigt wird: <code>bash<\/code>, <code>kubectl<\/code>, <code>jq<\/code>, <code>python<\/code> usw. Weiterhin kann dieses Image wie eine gew\u00f6hnliche Anwendung im Cluster ausgerollt werden, und wahrscheinlich m\u00f6chten Sie eine Art von Tagging-Schema organisieren. Wenn es nur wenige Cluster gibt, kann derselbe Ansatz wie bei Anwendungen ausreichen: neue Version, neue Version, alle Cluster durchgehen und das Image bei den Pods anpassen. Wenn es sich jedoch um eine bedeutende Anzahl von Clustern handelt, scheint uns das Konzept der Selbstaktualisierung aus dem Kanal besser geeignet. <\/p>\n<p>So sieht es bei uns aus:<\/p>\n<ul>\n<li>Ein Kanal ist im Grunde ein Identifikator, der beliebig festgelegt werden kann (z.B. dev\/stage\/ea\/stable).<\/li>\n<li>Der Name des Kanals ist das Tag des Images. Wenn Updates in den Kanal ausgerollt werden m\u00fcssen, wird ein neues Image erstellt und mit dem Namen des Kanals getaggt.<\/li>\n<li>Wenn ein neues Image im Registry erscheint, wird der Addon-Operator neu gestartet und mit dem neuen Image gestartet.<\/li>\n<\/ul>\n<p>\nDas ist nicht die beste Praxis, wie in der <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/containers\/images\/#updating-images\">Kubernetes-Dokumentation<\/a><\/noindex>geschrieben steht. So sollte man es nicht machen, aber es geht um <i>eine gew\u00f6hnliche Anwendung, die in einem Cluster lebt.<\/i>Im Falle des Addon-Operators ist die Anwendung eine Vielzahl von Deployments, die \u00fcber die Cluster verteilt sind, und die Selbstaktualisierung hilft enorm und erleichtert das Leben. <\/p>\n<p>Kan\u00e4le helfen auch bei <b>Tests:<\/b>Wenn es einen unterst\u00fctzenden Cluster gibt, kann dieser auf einen Kanal <code>stage<\/code> eingestellt werden, um Updates daran zu testen, bevor sie in die Kan\u00e4le <code>ea<\/code> und <code>stable<\/code>ausgerollt werden. Wenn im Cluster mit dem Kanal <code>ea<\/code> ein Fehler aufgetreten ist, kann er auf <code>stable<\/code>umgeschaltet werden, w\u00e4hrend die Problematik mit diesem Cluster untersucht wird. Wenn der Cluster aus der aktiven Unterst\u00fctzung genommen wird, wird er auf seinen \"eingefrorenen\" Kanal umgeschaltet \u2014 zum Beispiel, <code>freeze-2019-03-20.<\/code>.<\/p>\n<p>Neben den Updates von Hooks und Helm-Charts k\u00f6nnte es notwendig sein, <b>auch eine externe Komponente zu aktualisieren.<\/b>Wenn Sie einen Fehler im hypothetischen Node-Exporter bemerkt haben und sogar wissen, wie man ihn patcht. Danach haben Sie einen PR er\u00f6ffnet und warten auf die neue Version, um alle Cluster durchzugehen und die Version des Images zu erh\u00f6hen. Um nicht unbestimmte Zeit zu warten, kann man seinen eigenen Node-Exporter erstellen und bis zur Annahme des PR auf ihn umschalten.<\/p>\n<p>Im Grunde kann man das auch ohne Addon-Operator machen, aber mit dem Addon-Operator wird das Modul zur Installation des Node-Exporters in einem Repository sichtbar, das Dockerfile f\u00fcr den Bau seines eigenen Bildes kann hier ebenfalls aufbewahrt werden, und es wird f\u00fcr alle Beteiligten einfacher zu verstehen, was passiert... Und wenn es mehrere Cluster gibt, wird es einfacher, sowohl seinen PR zu testen als auch eine neue Version aufzuspielen!<\/p>\n<p>Diese Organisation zur Aktualisierung von Komponenten funktioniert bei uns erfolgreich, aber man kann auch ein anderes passendes Schema umsetzen \u2014 denn <b>in diesem Fall ist der Addon-Operator eine einfache Bin\u00e4rdatei.<\/b>.<\/p>\n<h2>Fazit<\/h2>\n<p>\nDie Prinzipien, die im Addon-Operator umgesetzt sind, erm\u00f6glichen es, einen transparenten Prozess zur Erstellung, Testung, Installation und Aktualisierung von Erweiterungen im Cluster zu etablieren, der mit den Prozessen der normalen Anwendungsentwicklung vergleichbar ist.<\/p>\n<p>Die Erweiterungen f\u00fcr den Addon-Operator im Modulformat (Helm-Chart + Hooks) k\u00f6nnen der breiten \u00d6ffentlichkeit zur Verf\u00fcgung gestellt werden. Wir, die Firma Flant, planen, im Laufe des Sommers unsere Entwicklungen in Form solcher Erweiterungen zu ver\u00f6ffentlichen. Machen Sie mit der Entwicklung auf GitHub mit (<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/shell-operator\">Shell-Operator<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/addon-operator\"><b>Addon-Operator<\/b><\/a><\/noindex>), probieren Sie aus, Ihre eigene Erweiterung basierend auf <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/addon-operator\/tree\/master\/examples\">Beispielen<\/a><\/noindex> und <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/addon-operator\/blob\/master\/README.md\">Dokumentation<\/a><\/noindex>, warten Sie auf Neuigkeiten auf Habr\u00e9 und auf unserem <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/c\/%D0%A4%D0%BB%D0%B0%D0%BD%D1%82\">YouTube-Kanal<\/a><\/noindex>!<\/p>\n<h2>P.S.<\/h2>\n<p>\nLesen Sie auch in unserem Blog:<\/p>\n<ul>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/449096\/\">Erweiterung und Erg\u00e4nzung von Kubernetes (\u00dcbersicht und Video des Berichts)<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/447442\/\">Wir pr\u00e4sentieren den Shell-Operator: Das Erstellen von Operatoren f\u00fcr Kubernetes ist noch einfacher geworden.<\/a><\/noindex>\u00bb.<\/li>\n<\/ul>\n<p>Quelle: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/455543\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412\u0441\u043b\u0435\u0434 \u0437\u0430 shell-operator \u043c\u044b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u0435\u0433\u043e \u0441\u0442\u0430\u0440\u0448\u0435\u0433\u043e \u0431\u0440\u0430\u0442\u0430 \u2014 addon-operator. \u042d\u0442\u043e Open Source-\u043f\u0440\u043e\u0435\u043a\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440 Kubernetes \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0437\u0432\u0430\u0442\u044c \u043e\u0431\u0449\u0438\u043c \u0441\u043b\u043e\u0432\u043e\u043c \u2014 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f. \u0417\u0430\u0447\u0435\u043c \u0432\u043e\u043e\u0431\u0449\u0435 \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f? \u041d\u0435 \u0441\u0435\u043a\u0440\u0435\u0442, \u0447\u0442\u043e Kubernetes \u044d\u0442\u043e \u043d\u0435 \u0433\u043e\u0442\u043e\u0432\u044b\u0439 \u043f\u0440\u043e\u0434\u0443\u043a\u0442 \u0432\u0441\u0451-\u0432-\u043e\u0434\u043d\u043e\u043c, \u0438 \u0434\u043b\u044f \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u00ab\u0432\u0437\u0440\u043e\u0441\u043b\u043e\u0433\u043e\u00bb \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u044f\u0442\u0441\u044f \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f. Addon-operator \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c, \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0438 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-35226","post","type-post","status-publish","format-standard","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/gotovit-kubernetes-klaster-prosto-i-udobno-anonsiruem-addon-operator\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0413\u043e\u0442\u043e\u0432\u0438\u0442\u044c Kubernetes-\u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u043f\u0440\u043e\u0441\u0442\u043e \u0438 \u0443\u0434\u043e\u0431\u043d\u043e? \u0410\u043d\u043e\u043d\u0441\u0438\u0440\u0443\u0435\u043c addon-operator | ProHoster\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/gotovit-kubernetes-klaster-prosto-i-udobno-anonsiruem-addon-operator\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:03:05+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:03:05+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Ist es einfach und bequem, einen Kubernetes-Cluster vorzubereiten? Wir k\u00fcndigen den Addon-Operator an | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/gotovit-kubernetes-klaster-prosto-i-udobno-anonsiruem-addon-operator","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0413\u043e\u0442\u043e\u0432\u0438\u0442\u044c Kubernetes-\u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u043f\u0440\u043e\u0441\u0442\u043e \u0438 \u0443\u0434\u043e\u0431\u043d\u043e? \u0410\u043d\u043e\u043d\u0441\u0438\u0440\u0443\u0435\u043c addon-operator | ProHoster","og:url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/gotovit-kubernetes-klaster-prosto-i-udobno-anonsiruem-addon-operator","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:03:05+00:00","article:modified_time":"2019-10-31T19:03:05+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"35226","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 22:25:22","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 02:07:29","updated":"2026-01-21 22:25:22","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/35226","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=35226"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/35226\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=35226"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=35226"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=35226"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}