{"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\/fr\/blog\/administrirovanie\/gotovit-kubernetes-klaster-prosto-i-udobno-anonsiruem-addon-operator","title":{"rendered":"Pr\u00e9parer un cluster Kubernetes est-il simple et pratique ? Nous annon\u00e7ons l'addon-operator","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Pr\u00e9parer un cluster Kubernetes est-il simple et pratique ? Nous annon\u00e7ons l&#039;addon-operator\" src=\"\/wp-content\/uploads\/8df3959f765d5d1bc8d427d3258aacc4.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nApr\u00e8s <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/447442\/\">shell-operator<\/a><\/noindex> nous vous proposons son grand fr\u00e8re \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/addon-operator\">addon-operator<\/a><\/noindex>. Il s'agit d'un projet Open Source utilis\u00e9 pour installer dans le cluster Kubernetes des composants syst\u00e8me qui peuvent \u00eatre appel\u00e9s collectivement \u2014 des compl\u00e9ments.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Pourquoi avoir des compl\u00e9ments du tout ?<\/h2>\n<p>\nIl n'est un secret pour personne que Kubernetes n'est pas un produit tout-en-un pr\u00eat \u00e0 l'emploi, et la construction d'un cluster \u00ab mature \u00bb n\u00e9cessite divers compl\u00e9ments. L'addon-operator vous aidera \u00e0 installer, configurer et maintenir ces compl\u00e9ments \u00e0 jour.<\/p>\n<p>La n\u00e9cessit\u00e9 de composants suppl\u00e9mentaires dans le cluster a \u00e9t\u00e9 r\u00e9v\u00e9l\u00e9e dans le <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/449096\/\">rapport<\/a><\/noindex> de nos coll\u00e8gues <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/driusha\/\" class=\"user_link\">driusha<\/a><\/noindex>. En r\u00e9sum\u00e9, la situation actuelle avec Kubernetes est telle que pour une installation simple 'pour jouer', on peut se contenter des composants de base, pour les d\u00e9veloppeurs et les tests, on peut ajouter Ingress, mais pour une installation compl\u00e8te, que l'on peut qualifier de 'votre production est pr\u00eate', il faut ajouter une dizaine de diff\u00e9rents compl\u00e9ments : quelque chose pour la surveillance, quelque chose pour les logs, ne pas oublier Ingress et cert-manager, d\u00e9finir des groupes de n\u0153uds, ajouter des politiques r\u00e9seau, assaisonner avec des param\u00e8tres sysctl et un pod autoscaler\u2026<\/p>\n<p><img decoding=\"async\" alt=\"Pr\u00e9parer un cluster Kubernetes est-il simple et pratique ? Nous annon\u00e7ons l&#039;addon-operator\" src=\"\/wp-content\/uploads\/ab3bed8ee8b29d4e51905e45c908f078.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Quelle est la sp\u00e9cificit\u00e9 de leur utilisation ?<\/h2>\n<p>\nComme le montre la pratique, l'installation seule ne suffit pas. Pour travailler confortablement avec le cluster, il faudra mettre \u00e0 jour les compl\u00e9ments, les d\u00e9sactiver (les retirer du cluster), et certains devront \u00eatre test\u00e9s avant d'\u00eatre install\u00e9s dans le cluster de production.<\/p>\n<p>Alors, peut-\u00eatre qu'Ansible suffira ici ? Peut-\u00eatre. Mais <b>des compl\u00e9ments complets, en g\u00e9n\u00e9ral, ne fonctionnent pas sans configurations<\/b>. Ces param\u00e8tres peuvent varier en fonction de l'option de cluster (aws, gce, azure, bare-metal, do, \u2026). Certains param\u00e8tres ne peuvent pas \u00eatre d\u00e9finis \u00e0 l'avance - ils doivent \u00eatre r\u00e9cup\u00e9r\u00e9s \u00e0 partir du cluster. Et le cluster n'est pas statique : pour certains param\u00e8tres, il sera n\u00e9cessaire de suivre les changements. Ici, Ansible ne suffit pas : un programme est n\u00e9cessaire, qui vit dans le cluster, c'est-\u00e0-dire un Kubernetes Operator.<\/p>\n<p>Ceux qui ont essay\u00e9 en pratique <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/shell-operator\">shell-operator<\/a><\/noindex>, diront que les t\u00e2ches d'installation et de mise \u00e0 jour des compl\u00e9ments et de suivi des configurations peuvent tout \u00e0 fait \u00eatre r\u00e9solues \u00e0 l'aide de <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/shell-operator\/blob\/master\/HOOKS.md\">hooks<\/a><\/noindex> pour le shell-operator. On peut \u00e9crire un script qui fera un conditionnel <code>kubectl apply<\/code> et surveiller, par exemple, le ConfigMap, o\u00f9 seront stock\u00e9es les configurations. C'est \u00e0 peu pr\u00e8s ce qui est r\u00e9alis\u00e9 dans l'addon-operator.<\/p>\n<h2>Comment cela est-il organis\u00e9 dans l'addon-operator ?<\/h2>\n<p>\nEn cr\u00e9ant une nouvelle solution, nous avons bas\u00e9 notre approche sur les principes suivants :<\/p>\n<ul>\n<li> L'installateur de modules doit soutenir <b>la templatisation et la configuration d\u00e9clarative<\/b>. Nous n'utilisons pas de scripts magiques qui installent des modules. L'addon-operator utilise Helm pour l'installation des modules. Pour installer, il faut cr\u00e9er un chart et sp\u00e9cifier les valeurs qui seront utilis\u00e9es pour la configuration. <\/li>\n<li> Les param\u00e8tres peuvent \u00eatre <b>g\u00e9n\u00e9r\u00e9s lors de l'installation<\/b>, ils peuvent \u00eatre <b>obtenus depuis le cluster<\/b>, ou bien <b>recevoir des mises \u00e0 jour<\/b>, en surveillant les ressources du cluster. Ces op\u00e9rations peuvent \u00eatre r\u00e9alis\u00e9es \u00e0 l'aide de hooks.<\/li>\n<li> Les param\u00e8tres peuvent \u00eatre <b>stock\u00e9es dans le cluster<\/b>. Pour stocker les configurations dans le cluster, un ConfigMap\/addon-operator est cr\u00e9\u00e9 et l'addon-operator suit les changements de ce ConfigMap. L'addon-operator donne acc\u00e8s aux hooks aux param\u00e8tres par le biais d'accords simples.<\/li>\n<li> <b>Le module d\u00e9pend des param\u00e8tres<\/b>. Si les param\u00e8tres changent, l'addon-operator d\u00e9ploie le chart Helm avec de nouvelles valeurs. La combinaison du chart Helm, des valeurs pour celui-ci et des hooks est appel\u00e9e un module (voir ci-dessous pour plus de d\u00e9tails).<\/li>\n<li> <b>Mise en sc\u00e8ne<\/b>. Pas de scripts de publication magiques. Le m\u00e9canisme de mise \u00e0 jour est similaire \u00e0 celui d'une application classique \u2014 assembler les modules et l'addon-operator dans une image, les taguer et les d\u00e9ployer.<\/li>\n<li> <b>Contr\u00f4le des r\u00e9sultats<\/b>. L'addon-operator peut fournir des m\u00e9triques pour Prometheus.<\/li>\n<\/ul>\n<p><\/p>\n<h2>Qu'est-ce qu'un module dans l'addon-operator ?<\/h2>\n<p>\nUn module peut \u00eatre consid\u00e9r\u00e9 comme tout ce qui ajoute de nouvelles fonctionnalit\u00e9s au cluster. Par exemple, l'installation de Ingress est un excellent exemple de module. Cela peut \u00eatre n'importe quel op\u00e9rateur ou contr\u00f4leur avec son CRD : prometheus-operator, cert-manager, kube-controller-manager, etc. Ou quelque chose de petit mais facilitant l'exploitation \u2014 par exemple, un copieur de secrets qui copie les secrets de registry dans de nouveaux espaces de noms, ou un r\u00e9glage de sysctl qui configure les param\u00e8tres sysctl sur de nouveaux n\u0153uds.<\/p>\n<p>Pour la r\u00e9alisation des modules, l'addon-operator fournit plusieurs concepts :<\/p>\n<ul>\n<li> <b>Helm-chart<\/b> est utilis\u00e9 pour installer divers logiciels dans le cluster \u2014 par exemple, Prometheus, Grafana, nginx-ingress. Si le composant souhait\u00e9 dispose d'un Helm-chart, il sera tr\u00e8s simple de l'installer via l'addon-operator.<\/li>\n<li> <b>Stockage des valeurs<\/b>. Les Helm-charts ont g\u00e9n\u00e9ralement de nombreux param\u00e8tres diff\u00e9rents qui peuvent \u00e9voluer avec le temps. L'addon-operator prend en charge le stockage de ces param\u00e8tres et sait surveiller leurs changements afin de r\u00e9installer le Helm-chart avec de nouvelles valeurs.<\/li>\n<li> <b>Hooks<\/b> \u2014 ce sont des fichiers ex\u00e9cutables que l'Addon-operator lance en r\u00e9ponse \u00e0 des \u00e9v\u00e9nements et qui acc\u00e8dent au stockage des valeurs. Un hook peut surveiller les changements dans le cluster et mettre \u00e0 jour les valeurs dans le stockage des valeurs. C'est-\u00e0-dire qu'avec les hooks, on peut effectuer une d\u00e9couverte pour collecter des valeurs du cluster au d\u00e9marrage ou selon un calendrier, ou op\u00e9rer une d\u00e9couverte continue en collectant des valeurs du cluster en fonction des changements dans celui-ci.<\/li>\n<li> <b>Module<\/b> \u2014 c'est une combinaison d'un chart Helm, d'un stockage des valeurs et de hooks. Les modules peuvent \u00eatre activ\u00e9s et d\u00e9sactiv\u00e9s. La d\u00e9sactivation d'un module supprime tous les d\u00e9ploiements du chart Helm. Les modules peuvent s'inclure dynamiquement, par exemple si tous les modules n\u00e9cessaires sont activ\u00e9s ou si la d\u00e9couverte dans les hooks a trouv\u00e9 les param\u00e8tres requis \u2014 cela se fait \u00e0 l'aide d'un script \u00ab enabled \u00bb auxiliaire.<\/li>\n<li> <b>Hooks globaux<\/b>. Ce sont des hooks \u00ab autonomes \u00bb, qui ne sont pas inclus dans les modules et ont acc\u00e8s au stockage global des valeurs, dont les valeurs sont accessibles \u00e0 tous les hooks des modules.<\/li>\n<\/ul>\n<p>\nComment ces parties fonctionnent-elles ensemble ? Regardons l'image dans la documentation :<\/p>\n<p><img decoding=\"async\" alt=\"Pr\u00e9parer un cluster Kubernetes est-il simple et pratique ? Nous annon\u00e7ons l&#039;addon-operator\" src=\"\/wp-content\/uploads\/c9bb8e5ae78aa5df0d6c4fbf353e4236.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIl y a deux sc\u00e9narios de fonctionnement :<\/p>\n<ol>\n<li> Le hook global se d\u00e9clenche par un \u00e9v\u00e9nement \u2014 par exemple, lors d'un changement de ressource dans le cluster. Ce hook traite les modifications et enregistre les nouvelles valeurs dans le stockage global des valeurs. L'Addon-operator remarque que le stockage global a chang\u00e9 et lance tous les modules. Chaque module d\u00e9termine \u00e0 l'aide de ses hooks s'il doit s'activer et met \u00e0 jour son stockage des valeurs. Si un module est activ\u00e9, l'Addon-operator lance l'installation du chart Helm. Le chart Helm a alors acc\u00e8s aux valeurs du stockage du module et du stockage global.<\/li>\n<li> Le second sc\u00e9nario est plus simple : le hook du module se d\u00e9clenche par un \u00e9v\u00e9nement, modifie les valeurs dans le stockage des valeurs du module. L'Addon-operator le remarque et lance le chart Helm avec les valeurs mises \u00e0 jour.<\/li>\n<\/ol>\n<p>\nUn addon peut \u00eatre impl\u00e9ment\u00e9 sous la forme d'un seul hook, ou en tant que chart Helm, ou <b>m\u00eame comme plusieurs modules d\u00e9pendants<\/b> \u2014 cela d\u00e9pend de la complexit\u00e9 du composant \u00e0 installer dans le cluster et du niveau de flexibilit\u00e9 des r\u00e9glages requis. Par exemple, dans le d\u00e9p\u00f4t (<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/addon-operator\/tree\/master\/examples\">\/examples<\/a><\/noindex>) il y a un addon sysctl-tuner, qui est impl\u00e9ment\u00e9 \u00e0 la fois sous la forme d'un simple module avec un hook et un chart Helm, ainsi qu'en utilisant un stockage des valeurs, ce qui permet d'ajouter des r\u00e9glages par l'\u00e9dition de ConfigMap.<\/p>\n<h2>Distribution des mises \u00e0 jour<\/h2>\n<p>\nQuelques mots sur l'organisation des mises \u00e0 jour des composants que met en place l'Addon-operator.<\/p>\n<p>Pour lancer l'Addon-operator dans le cluster, il faut <b>compiler une image avec les ajouts<\/b> sous forme de fichiers hooks et de charts Helm, ajouter le fichier binaire <code>addon-operator<\/code> et tout ce dont vous avez besoin pour les hooks : <code>bash<\/code>, <code>kubectl<\/code>, <code>jq<\/code>, <code>python<\/code> etc. Ensuite, cette image peut \u00eatre d\u00e9ploy\u00e9e dans le cluster comme une application ordinaire et il est fort probable que vous souhaitiez organiser un sch\u00e9ma de versionnement. Si vous avez peu de clusters, la m\u00eame approche que pour les applications peut convenir : nouvelle version, nouvelle \u00e9tiquette, passer en revue tous les clusters et mettre \u00e0 jour l'image dans les Pods. Cependant, dans le cas d'un d\u00e9ploiement sur un nombre significatif de clusters, le concept de mise \u00e0 jour automatique \u00e0 partir d'un canal est plus adapt\u00e9. <\/p>\n<p>Nous l'organisons de cette mani\u00e8re :<\/p>\n<ul>\n<li>Un canal est essentiellement un identifiant que vous pouvez d\u00e9finir comme bon vous semble (par exemple, dev\/stage\/ea\/stable).<\/li>\n<li>Le nom du canal est l'\u00e9tiquette de l'image. Lorsque des mises \u00e0 jour doivent \u00eatre d\u00e9ploy\u00e9es dans le canal, une nouvelle image est construite et \u00e9tiquet\u00e9e avec le nom du canal.<\/li>\n<li>Lorsque qu'une nouvelle image appara\u00eet dans le registre, l'Addon-operator red\u00e9marre et se lance avec la nouvelle image.<\/li>\n<\/ul>\n<p>\nCe n'est pas la meilleure pratique, comme indiqu\u00e9 dans la <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/containers\/images\/#updating-images\">documentation Kubernetes<\/a><\/noindex>. Cela n'est pas recommand\u00e9, mais il s'agit de <i>une application ordinaire qui vit dans un seul cluster<\/i>. Dans le cas de l'Addon-operator, l'application consiste en de nombreux Deployments r\u00e9partis sur diff\u00e9rents clusters, et la mise \u00e0 jour automatique est d'une grande aide et facilite la vie. <\/p>\n<p>Les canaux aident aussi <b>dans les tests<\/b>: s'il y a un cluster de test, vous pouvez le configurer sur un canal <code>) \u2014 une unit\u00e9 d'organisation du pipeline, contenant 1+ t\u00e2che,<\/code> et tester les mises \u00e0 jour avant de les d\u00e9ployer sur les canaux <code>ea<\/code> et <code>stable<\/code>. Si une erreur se produit avec le cluster sur le canal <code>ea<\/code> , vous pouvez le basculer sur <code>stable<\/code>, pendant que l'enqu\u00eate sur le probl\u00e8me avec ce cluster est en cours. Si le cluster est retir\u00e9 de la prise en charge active, il est bascul\u00e9 sur son canal \u00ab fig\u00e9 \u00bb \u2014 par exemple, <code>freeze-2019-03-20<\/code>.<\/p>\n<p>En plus des mises \u00e0 jour des hooks et des charts Helm, il peut \u00eatre n\u00e9cessaire de <b>mettre \u00e0 jour un composant tiers<\/b>. Par exemple, si vous avez remarqu\u00e9 un bug dans un suppos\u00e9 node-exporter et m\u00eame trouv\u00e9 comment le patcher. Puis vous ouvrez un PR et attendez la nouvelle version pour passer en revue tous les clusters et augmenter la version de l'image. Pour ne pas attendre ind\u00e9finiment, vous pouvez compiler votre propre node-exporter et passer \u00e0 celui-ci en attendant l'acceptation du PR.<\/p>\n<p>En fait, cela peut \u00eatre fait sans l'Addon-operator, mais avec l'Addon-operator, le module pour l'installation de node-exporter sera visible dans un seul d\u00e9p\u00f4t, le Dockerfile pour construire votre image peut \u00e9galement y \u00eatre maintenu, ce qui permet \u00e0 tous les participants de mieux comprendre ce qui se passe\u2026 Et si plusieurs clusters sont en place, il devient plus facile de tester votre PR ainsi que de d\u00e9ployer une nouvelle version !<\/p>\n<p>Cette organisation de mise \u00e0 jour des composants fonctionne avec succ\u00e8s chez nous, mais il est \u00e9galement possible de mettre en \u0153uvre tout autre sch\u00e9ma appropri\u00e9 \u2014 apr\u00e8s tout <b>dans ce cas, l'Addon-operator est un simple fichier binaire<\/b>.<\/p>\n<h2>Conclusion<\/h2>\n<p>\nLes principes mis en \u0153uvre dans l'Addon-operator permettent de construire un processus transparent de cr\u00e9ation, de test, d'installation et de mise \u00e0 jour des addons dans le cluster, similaire aux processus de d\u00e9veloppement d'applications ordinaires.<\/p>\n<p>Les addons pour l'Addon-operator au format de modules (Helm-chart + hooks) peuvent \u00eatre rendus largement accessibles. Nous, la soci\u00e9t\u00e9 Flant, pr\u00e9voyons de publier au cours de l'\u00e9t\u00e9 nos travaux sous forme de tels addons. Rejoignez le d\u00e9veloppement sur 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>), essayez de cr\u00e9er votre propre addon bas\u00e9 sur <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/addon-operator\/tree\/master\/examples\">des exemples<\/a><\/noindex> et <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/addon-operator\/blob\/master\/README.md\">documentation<\/a><\/noindex>, attendez les nouvelles sur Habr et sur notre <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/c\/%D0%A4%D0%BB%D0%B0%D0%BD%D1%82\">cha\u00eene YouTube<\/a><\/noindex>!<\/p>\n<h2>P.S.<\/h2>\n<p>\nLisez aussi dans notre blog :<\/p>\n<ul>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/449096\/\">\u00c9largir et compl\u00e9ter Kubernetes (aper\u00e7u et vid\u00e9o de la pr\u00e9sentation)<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/447442\/\">Nous vous pr\u00e9sentons le shell-operator : cr\u00e9er des op\u00e9rateurs pour Kubernetes est devenu encore plus facile<\/a><\/noindex>\u00bb.<\/li>\n<\/ul>\n<p>Source : <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.2 - 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\/fr\/blog\/administrirovanie\/gotovit-kubernetes-klaster-prosto-i-udobno-anonsiruem-addon-operator\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\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\/fr\/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\udd47Est-il simple et pratique de configurer un cluster Kubernetes ? Nous annon\u00e7ons l'addon-operator | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/fr\/blog\/administrirovanie\/gotovit-kubernetes-klaster-prosto-i-udobno-anonsiruem-addon-operator","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"fr_FR","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\/fr\/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\/fr\/wp-json\/wp\/v2\/posts\/35226","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/comments?post=35226"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/35226\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media?parent=35226"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/categories?post=35226"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/tags?post=35226"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}