{"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 vorbereiten? Wir stellen den Addon-Operator vor.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Kubernetes-Cluster einfach und bequem vorbereiten? Wir stellen den Addon-Operator vor.\" 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> Wir pr\u00e4sentieren seinen gro\u00dfen Bruder \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/addon-operator\">addon-operator<\/a><\/noindex>. Es handelt sich um ein Open Source-Projekt, das zur Installation von Systemkomponenten in einem Kubernetes-Cluster verwendet wird, die wir allgemein als Erg\u00e4nzungen bezeichnen k\u00f6nnen.<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 f\u00fcr den Aufbau eines 'reifen' Clusters sind verschiedene Erg\u00e4nzungen erforderlich. Der Addon-Operator hilft dabei, diese Erg\u00e4nzungen zu installieren, zu konfigurieren und aktuell zu halten.<\/p>\n<p>Die Notwendigkeit zus\u00e4tzlicher Komponenten im Cluster wird in <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/449096\/\">in seiner Pr\u00e4sentation<\/a><\/noindex> Kollegen <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/driusha\/\" class=\"user_link\">driusha<\/a><\/noindex>deutlich. Kurz gesagt, die Situation bei Kubernetes ist derzeit so, dass man f\u00fcr eine einfache Installation zum Ausprobieren mit den Standardkomponenten auskommen kann, f\u00fcr Entwickler und Tester jedoch Ingress hinzuf\u00fcgen sollte. F\u00fcr eine vollst\u00e4ndige Installation, bei der man sagen kann 'Ihre Produktion ist bereit', m\u00fcssen etwa ein Dutzend verschiedener Erg\u00e4nzungen hinzugef\u00fcgt werden: etwas zur \u00dcberwachung, etwas f\u00fcr Logs, nicht vergessen Ingress und Cert-Manager, Knoten-Pools festlegen, Netzwerkrichtlinien hinzuf\u00fcgen, mit Sysctl-Einstellungen und einem Pod-Autoscaler w\u00fcrzen\u2026<\/p>\n<p><img decoding=\"async\" alt=\"Kubernetes-Cluster einfach und bequem vorbereiten? Wir stellen den Addon-Operator vor.\" src=\"\/wp-content\/uploads\/ab3bed8ee8b29d4e51905e45c908f078.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Was ist die spezielle Handhabung dieser Komponenten?<\/h2>\n<p>\nWie die Erfahrungen zeigen, bleibt es nicht bei einer einzigen Installation. F\u00fcr eine reibungslose Arbeit mit dem Cluster m\u00fcssen Erg\u00e4nzungen aktualisiert, deaktiviert (aus dem Cluster entfernt) werden, und einige m\u00f6chten vielleicht vor der Installation im Produktionscluster getestet werden.<\/p>\n<p>Aber reicht hier vielleicht Ansible aus? M\u00f6glicherweise. Doch <b>vollst\u00e4ndige Erg\u00e4nzungen leben in der Regel nicht ohne Konfigurationen.<\/b>. Diese Einstellungen k\u00f6nnen je nach Cluster-Option (aws, gce, azure, bare-metal, do, \u2026) variieren. 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 im Auge behalten. Hier reicht Ansible nicht aus: Es braucht ein Programm, das im Cluster lebt, also einen 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 von Erweiterungen und die \u00dcberwachung der Konfigurationen durchaus 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 gel\u00f6st werden k\u00f6nnen. Man kann ein Skript schreiben, das eine bedingte <code>kubectl apply<\/code> und beispielsweise \u00fcber ConfigMap wacht, wo die Konfigurationen gespeichert werden. Etwas \u00c4hnliches ist im addon-operator umgesetzt.<\/p>\n<h2>Wie ist das im addon-operator organisiert?<\/h2>\n<p>\nBei der Erstellung einer neuen L\u00f6sung gingen wir von folgenden Grunds\u00e4tzen aus:<\/p>\n<ul>\n<li> Der Addon-Installer muss unterst\u00fctzen <b>Template- und deklarative Konfiguration<\/b>. Wir erstellen keine magischen Skripte, die Add-ons installieren. Der Addon-Operator verwendet Helm zur Installation von Add-ons. Um zu installieren, muss ein Chart erstellt und Werte definiert werden, die zur Konfiguration verwendet werden. <\/li>\n<li> 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 die Ressourcen des Clusters \u00fcberwacht werden. Diese Operationen k\u00f6nnen durch Hooks realisiert werden.<\/li>\n<li> Einstellungen k\u00f6nnen <b>im Cluster gespeichert werden<\/b>. Um die Einstellungen im Cluster zu speichern, wird ein ConfigMap\/addon-operator erstellt, und der Addon-Operator \u00fcberwacht \u00c4nderungen an diesem ConfigMap. Der Addon-Operator gew\u00e4hrt Hooks Zugriff auf die Einstellungen mittels einfacher Vereinbarungen.<\/li>\n<li> <b>Das Add-on h\u00e4ngt von den Einstellungen ab<\/b>. Wenn sich die Einstellungen \u00e4ndern, rollt der Addon-Operator das Helm-Chart mit neuen Werten aus. Die Kombination von Helm-Chart, Werten daf\u00fcr und Hooks haben wir als Modul bezeichnet (mehr dazu siehe unten).<\/li>\n<li> <b>Staging<\/b>. Es gibt keine magischen Release-Skripte. Der Aktualisierungsmechanismus \u00e4hnelt einem normalen Anwendung \u2014 Add-ons und der Addon-Operator werden in ein Image gepackt, getaggt und bereitgestellt.<\/li>\n<li> <b>Ergebnis\u00fcberpr\u00fcfung<\/b>. Der Addon-Operator kann Metriken f\u00fcr Prometheus bereitstellen.<\/li>\n<\/ul>\n<p><\/p>\n<h2>Was ist ein Add-on in der Addon-Operator-Anwendung?<\/h2>\n<p>\nEin Add-on kann alles sein, was dem Cluster neue Funktionen hinzuf\u00fcgt. Beispielsweise ist die Installation von Ingress ein hervorragendes Beispiel f\u00fcr ein Add-on. Dies kann jeder Operator oder Controller mit seinem eigenen CRD sein: prometheus-operator, cert-manager, kube-controller-manager usw. Oder etwas Kleines, das den Betrieb vereinfacht \u2013 zum Beispiel ein Secret-Copier, der Registry-Secrets in neue Namensr\u00e4ume kopiert, oder ein Sysctl-Tuner, der Sysctl-Parameter auf neuen Knoten anpasst.<\/p>\n<p>Zur Implementierung von Add-ons bietet der Addon-Operator mehrere Konzepte an:<\/p>\n<ul>\n<li> <b>Helm-Chart<\/b> wird verwendet, um verschiedene Software im Cluster zu installieren \u2013 beispielsweise Prometheus, Grafana, nginx-ingress. Wenn die ben\u00f6tigte Komponente ein Helm-Chart hat, ist es sehr einfach, sie mit dem Addon-Operator zu installieren.<\/li>\n<li> <b>Values-Store<\/b>. Helm-Charts verf\u00fcgen normalerweise \u00fcber viele verschiedene Einstellungen, die sich im Laufe der Zeit \u00e4ndern k\u00f6nnen. Der Addon-Operator unterst\u00fctzt die Speicherung dieser Einstellungen und kann deren \u00c4nderungen nachverfolgen, 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 auf den Werte-Speicher zugreifen. Ein Hook kann \u00c4nderungen im Cluster \u00fcberwachen und die Werte im Werte-Speicher aktualisieren. Das bedeutet, mit Hooks k\u00f6nnen Sie Discovery durchf\u00fchren, um Werte aus dem Cluster beim Start oder nach einem Zeitplan zu sammeln, oder Continuous Discovery, indem Sie Werte aus dem Cluster bei \u00c4nderungen im Cluster sammeln.<\/li>\n<li> <b>Modul<\/b> \u2014 dies ist eine Kombination aus Helm-Chart, Werte-Speicher und Hooks. Module k\u00f6nnen aktiviert oder deaktiviert werden. Das Deaktivieren eines Moduls bedeutet, dass alle Releases des Helm-Charts entfernt werden. Module k\u00f6nnen sich dynamisch selbst aktivieren, beispielsweise wenn alle ben\u00f6tigten Module aktiviert sind oder wenn Discovery in den Hooks die erforderlichen Parameter gefunden hat \u2013 dies geschieht mit einem unterst\u00fctzenden enabled-Skript.<\/li>\n<li> <b>Globale Hooks<\/b>. Dies sind Hooks, die \"f\u00fcr sich allein stehen\"; sie sind nicht in Modulen enthalten und haben Zugriff auf den globalen Werte-Speicher, dessen Werte allen Hooks in den Modulen zug\u00e4nglich sind.<\/li>\n<\/ul>\n<p>\nWie arbeiten diese Teile zusammen? Betrachten Sie das Bild aus der Dokumentation:<\/p>\n<p><img decoding=\"async\" alt=\"Kubernetes-Cluster einfach und bequem vorbereiten? Wir stellen den Addon-Operator vor.\" 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> Ein globaler Hook wird durch ein Ereignis ausgel\u00f6st \u2013 zum Beispiel bei \u00c4nderungen an einer Ressource im Cluster. Dieser Hook verarbeitet die \u00c4nderungen und speichert die neuen Werte im globalen Speichersystem. Der Addon-Operator bemerkt, dass sich der globale Speicher ge\u00e4ndert hat, und startet alle Module. Jedes Modul entscheidet mithilfe seiner Hooks, ob es aktiviert werden soll, und aktualisiert seinen eigenen Speicher. Wenn das Modul aktiviert ist, startet der Addon-Operator die Installation des Helm-Charts. Dem Helm-Chart stehen dabei die Werte aus dem Modulspeicher und dem globalen Speicher zur Verf\u00fcgung.<\/li>\n<li> Im zweiten Szenario ist es einfacher: Der modulare Hook wird durch ein Ereignis ausgel\u00f6st, \u00e4ndert die Werte im Modulspeicher. Der Addon-Operator bemerkt dies und startet das Helm-Chart mit den aktualisierten Werten.<\/li>\n<\/ol>\n<p>\nEin Addon kann als ein einzelner Hook oder als ein Helm-Chart oder <b>sogar als mehrere abh\u00e4ngige Module umgesetzt werden.<\/b> Das h\u00e4ngt von der Komplexit\u00e4t des im Cluster installierten Elements und vom erforderlichen Grad an Flexibilit\u00e4t der Einstellungen ab. Zum Beispiel im Repository (<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/addon-operator\/tree\/master\/examples\">\/examples<\/a><\/noindex>) gibt es ein sysctl-tuner-Addon, das sowohl als einfaches Modul mit Hook und Helm-Chart als auch mit einem Values-Storage implementiert ist, was die M\u00f6glichkeit bietet, Einstellungen durch Bearbeitung des ConfigMaps hinzuzuf\u00fcgen.<\/p>\n<h2>Lieferung von Updates<\/h2>\n<p>\nEinige Worte zur Organisation der Updates f\u00fcr die Komponenten, die der Addon-Operator installiert.<\/p>\n<p>Um den Addon-Operator im Cluster zu starten, m\u00fcssen Sie <b>ein Image mit Addons erstellen<\/b> in Form von Hook-Dateien und Helm-Charts, die bin\u00e4ren Dateien 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. Dieses Image kann dann im Cluster wie eine normale Anwendung bereitgestellt werden, und wahrscheinlich m\u00f6chten Sie eine Art von Tagging-Schema organisieren. Wenn es nur wenige Cluster gibt, kann der gleiche Ansatz wie bei Anwendungen gen\u00fcgen: neue Version, neuer Release, alle Cluster durchgehen und das Image bei den Pods anpassen. Wenn es sich jedoch um eine signifikante Anzahl von Clustern handelt, haben wir ein Selbstaktualisierungskonzept aus dem Kanal bevorzugt. <\/p>\n<p>Bei uns ist das so geregelt:<\/p>\n<ul>\n<li>Der Kanal ist im Grunde genommen ein Identifikator, den man beliebig festlegen kann (zum Beispiel dev\/stage\/ea\/stable).<\/li>\n<li>Der Kanalname ist das Tag des Images. Wenn Updates in den Kanal deployt werden sollen, wird ein neues Image erstellt und mit dem Kanalnamen getaggt.<\/li>\n<li>Wenn ein neues Image im Registry verf\u00fcgbar ist, 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>beschrieben. Es wird nicht empfohlen, so vorzugehen, aber es handelt sich um <i>eine gew\u00f6hnliche Anwendung, die in einem einzigen Cluster lebt.<\/i>Im Fall des Addon-Operators ist die Anwendung eine Vielzahl von Deployments, die \u00fcber Cluster verteilt sind, und die Selbstaktualisierung erleichtert das Leben erheblich. <\/p>\n<p>Kan\u00e4le helfen auch <b>bei Tests:<\/b>Wenn ein Hilfscluster vorhanden ist, kann es auf den <code>Kanal \"stage\"<\/code> konfiguriert werden, um Updates vor der Bereitstellung in die Kan\u00e4le <code>\"ea\"<\/code> und <code>\"stable\"<\/code>zu testen. Wenn es im Cluster, das auf dem Kanal <code>\"ea\"<\/code> ein Problem gibt, kann es auf <code>\"stable\"<\/code>umgeschaltet werden, w\u00e4hrend das Problem mit diesem Cluster untersucht wird. Wenn der Cluster aus der aktiven Unterst\u00fctzung genommen wird, wechselt er auf seinen \"starren\" Kanal \u2013 zum Beispiel, <code>\"freeze-2019-03-20\".<\/code>.<\/p>\n<p>Zus\u00e4tzlich zu den Updates f\u00fcr Hooks und Helm-Charts kann es notwendig sein, auch eine externe Komponente <b>zu aktualisieren.<\/b>. Zum Beispiel haben Sie einen Fehler im node-exporter bemerkt und sogar eine M\u00f6glichkeit gefunden, ihn zu patchen. Danach haben Sie einen PR ge\u00f6ffnet und warten auf die n\u00e4chste Version, um durch alle Cluster zu gehen und die Version des Images zu aktualisieren. Um nicht auf unbestimmte Zeit zu warten, k\u00f6nnen Sie Ihren eigenen node-exporter kompilieren und bis zur Annahme des PR darauf wechseln.<\/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 einzigen Repository sichtbar, das Dockerfile zur Erstellung Ihres eigenen Images kann dort ebenfalls aufbewahrt werden, und es wird f\u00fcr alle Beteiligten einfacher zu verstehen, was passiert \u2026 Wenn es mehrere Cluster gibt, wird es sowohl einfacher, Ihren PR zu testen als auch die neue Version zu implementieren!<\/p>\n<p>Dieses System zur Aktualisierung von Komponenten funktioniert bei uns gut, aber man kann auch jede andere geeignete Methode implementieren \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 einen transparenten Prozess zur Erstellung, Testung, Installation und Aktualisierung von Erweiterungen im Cluster, \u00e4hnlich den Prozessen der Entwicklung herk\u00f6mmlicher Anwendungen.<\/p>\n<p>Modularer Addon-Operator (Helm-Chart + Hooks) kann \u00f6ffentlich bereitgestellt werden. Wir, die Firma Flant, planen, im Laufe des Sommers unsere Entwicklungen in Form solcher Add-ons zu ver\u00f6ffentlichen. Begleiten Sie die Entwicklung auf GitHub (<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, Ihr eigenes Add-on 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>, und bleiben Sie auf dem Laufenden mit Neuigkeiten auf Habr und 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 (\u00dcberblick und Video-Pr\u00e4sentation)<\/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: Es ist noch einfacher geworden, Operatoren f\u00fcr Kubernetes zu erstellen<\/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.0.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\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\" \/>\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.0.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:description\" content=\"\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\" \/>\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 die Einrichtung eines Kubernetes-Clusters einfach und bequem? Wir k\u00fcndigen den Addon-Operator an | ProHoster","description":"Nach dem Shell-Operator stellen wir seinen gro\u00dfen Bruder vor \u2013 den Addon-Operator. Dies ist ein Open-Source-Projekt, das zur Installation von Systemkomponenten in einem Kubernetes-Cluster verwendet wird, die allgemein als Add-ons bezeichnet werden. Warum \u00fcberhaupt Add-ons? Es ist kein Geheimnis, dass Kubernetes kein fertiges Produkt ist, das alles enth\u00e4lt, und f\u00fcr den Aufbau eines \u201evollwertigen\u201c Clusters verschiedene Add-ons ben\u00f6tigt werden. Der Addon-Operator hilft dabei, diese zu installieren, zu konfigurieren und","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:description":"\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","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}]}}