{"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\/nl\/blog\/administrirovanie\/gotovit-kubernetes-klaster-prosto-i-udobno-anonsiruem-addon-operator","title":{"rendered":"Is het eenvoudig en handig om een Kubernetes-cluster op te zetten? We introduceren de addon-operator","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Is het eenvoudig en handig om een Kubernetes-cluster op te zetten? We introduceren de addon-operator\" src=\"\/wp-content\/uploads\/8df3959f765d5d1bc8d427d3258aacc4.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNa <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/447442\/\">shell-operator<\/a><\/noindex> We stellen zijn oudere broer voor \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/addon-operator\">addon-operator<\/a><\/noindex>. Dit is een Open Source-project dat wordt gebruikt voor de installatie in een Kubernetes-cluster van systeemcomponenten, die samen onder de algemene term \u2014 aanvullingen \u2014 kunnen worden genoemd.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Waarom zouden we \u00fcberhaupt aanvullingen nodig hebben?<\/h2>\n<p>\nHet is geen geheim dat Kubernetes geen kant-en-klaar product is; voor het opbouwen van een 'volwassen' cluster zijn verschillende aanvullingen nodig. De addon-operator helpt bij het installeren, configureren en onderhouden van deze aanvullingen in de actuele staat.<\/p>\n<p>De noodzaak van extra componenten in het cluster wordt onthuld in <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/449096\/\">presentatie<\/a><\/noindex> collega's <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/driusha\/\" class=\"user_link\">driusha<\/a><\/noindex>. Kortom, de situatie met Kubernetes is op dit moment zodanig dat je voor een eenvoudige installatie om te 'spelen' kunt volstaan met de componenten uit de doos, voor ontwikkelaars en testen kun je Ingress toevoegen, maar voor een volledige installatie die je 'je productie is klaar' kunt noemen, is het nodig om een tiental verschillende aanvullingen toe te voegen: iets voor monitoring, iets voor logs, vergeet de ingress en cert-manager niet, wijs knooppuntgroepen toe, stel netwerkbeleid in, en voeg instellingen voor sysctl en pod autoscaler toe...<\/p>\n<p><img decoding=\"async\" alt=\"Is het eenvoudig en handig om een Kubernetes-cluster op te zetten? We introduceren de addon-operator\" src=\"\/wp-content\/uploads\/ab3bed8ee8b29d4e51905e45c908f078.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Wat is de specificiteit van het werken met hen?<\/h2>\n<p>\nZoals de praktijk aantoont, beperkt het zich niet tot alleen installatie. Voor comfortabel werken met het cluster moeten aanvullingen worden bijgewerkt, uitgeschakeld (uit het cluster verwijderd), en sommige willen we testen voordat ze in het productiecluster worden ge\u00efnstalleerd.<\/p>\n<p>Dus, is Ansible hier misschien voldoende? Misschien. Maar <b>volledige aanvullingen leven in het algemeen niet zonder instellingen<\/b>. Deze instellingen kunnen per cluster optie verschillen (aws, gce, azure, bare-metal, do, \u2026). Sommige instellingen kunnen niet van tevoren worden ingesteld \u2014 deze moeten uit het cluster worden gehaald. En het cluster is niet statisch: voor sommige instellingen moet je wijzigingen volgen. En hier schiet Ansible te kort: er is een programma nodig dat in het cluster leeft, namelijk een Kubernetes Operator.<\/p>\n<p>Degenen die het in de praktijk hebben geprobeerd <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/shell-operator\">shell-operator<\/a><\/noindex>, zullen zeggen dat de taken van installatie en update van aanvullingen en het toezicht houden op instellingen heel goed kunnen worden opgelost met behulp van <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/shell-operator\/blob\/master\/HOOKS.md\">hooks<\/a><\/noindex> voor de shell-operator. Je kunt een script schrijven dat een voorwaardelijke <code>kubectl apply<\/code> maakt en bijvoorbeeld de ConfigMap in de gaten houdt, waar de instellingen worden bewaard. Dit is ongeveer wat is gerealiseerd in de addon-operator.<\/p>\n<h2>Hoe is het georganiseerd in de addon-operator?<\/h2>\n<p>\nBij het cre\u00ebren van een nieuwe oplossing zijn we uitgegaan van de volgende principes:<\/p>\n<ul>\n<li> De installateur van aanvullingen moet ondersteuning bieden voor <b>templating en declaratieve configuratie<\/b>We don't create magical scripts that install addons. The addon operator uses Helm to install addons. To install, you need to create a chart and define the values that will be used for configuration. <\/li>\n<li> Settings can <b>be generated during installation<\/b>, they can <b>be obtained from the cluster<\/b>, ofwel <b>receive updates<\/b>, by monitoring the cluster resources. These operations can be implemented using hooks.<\/li>\n<li> Settings can <b>store in the cluster<\/b>. To store settings in the cluster, a ConfigMap\/addon-operator is created and the addon-operator monitors changes to this ConfigMap. The addon-operator gives hooks access to the settings through simple agreements.<\/li>\n<li> <b>The addon depends on the settings<\/b>. If the settings change, the addon-operator rolls out a Helm chart with new values. The combination of the Helm chart, values for it, and hooks is referred to as a module (see below for more details).<\/li>\n<li> <b>Staging<\/b>. There are no magical release scripts. The update mechanism is similar to that of a regular application \u2014 collect addons and the addon-operator into an image, tag it, and release it.<\/li>\n<li> <b>Result control<\/b>. The addon-operator can provide metrics for Prometheus.<\/li>\n<\/ul>\n<p><\/p>\n<h2>What is an addon in the addon-operator?<\/h2>\n<p>\nAn addon can be anything that adds new functionality to the cluster. For example, setting up Ingress is a great example of an addon. It could be any operator or controller with its own CRD: prometheus-operator, cert-manager, kube-controller-manager, etc. Or something small, but simplifying operation \u2014 for instance, a secret copier that copies registry secrets to new namespaces, or a sysctl tuner that configures sysctl parameters on new nodes.<\/p>\n<p>To implement addons, the addon-operator provides several concepts:<\/p>\n<ul>\n<li> <b>Helm chart<\/b> is used to install various software in the cluster \u2014 for instance, Prometheus, Grafana, nginx-ingress. If the required component has a Helm chart, installing it using the addon-operator will be very simple.<\/li>\n<li> <b>Value storage<\/b>. Helm charts usually have many different settings that may change over time. The addon-operator supports storing these settings and can monitor changes to reinstall the Helm chart with new values.<\/li>\n<li> <b>Hooks<\/b> \u2014 dit zijn uitvoerbare bestanden die door de Addon-operator worden gestart op gebeurtenissen, en die toegang krijgen tot de waardenopslag. De hook kan wijzigingen in het cluster volgen en de waarden in de waardenopslag bijwerken. Met hooks kan je discovery maken om waarden uit het cluster te verzamelen bij de start of volgens een schema, of je kunt continuous discovery hebben door waarden uit het cluster te verzamelen bij wijzigingen in het cluster.<\/li>\n<li> <b>Module<\/b> \u2014 dit is een combinatie van een Helm-chart, een waardenopslag en hooks. Modules kunnen in- en uitgeschakeld worden. Het uitschakelen van een module betekent het verwijderen van alle releases van het Helm-chart. Modules kunnen zichzelf dynamisch inschakelen, bijvoorbeeld als alle benodigde modules zijn ingeschakeld of als discovery in de hooks de vereiste parameters heeft gevonden \u2014 dit gebeurt met behulp van een ondersteunend enabled-script.<\/li>\n<li> <b>Globale hooks<\/b>. Dit zijn hooks \"op zichzelf\", ze zijn niet opgenomen in modules en hebben toegang tot de globale waardenopslag, waarvan de waarden beschikbaar zijn voor alle hooks in modules.<\/li>\n<\/ul>\n<p>\nHoe werken deze onderdelen samen? Laten we een afbeelding uit de documentatie bekijken:<\/p>\n<p><img decoding=\"async\" alt=\"Is het eenvoudig en handig om een Kubernetes-cluster op te zetten? We introduceren de addon-operator\" src=\"\/wp-content\/uploads\/c9bb8e5ae78aa5df0d6c4fbf353e4236.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEr zijn twee scenario's:<\/p>\n<ol>\n<li> De globale hook wordt gestart op een gebeurtenis \u2014 bijvoorbeeld bij het wijzigen van een resource in het cluster. Deze hook verwerkt de wijzigingen en schrijft nieuwe waarden naar de globale waardenopslag. De Addon-operator merkt op dat de globale opslag is gewijzigd en start alle modules. Elke module bepaalt met zijn hooks of deze moet inschakelen, en werkt zijn eigen waardenopslag bij. Als de module is ingeschakeld, start de Addon-operator de installatie van het Helm-chart. Het Helm-chart heeft toegang tot waarden uit zowel de moduleopslag als de globale opslag.<\/li>\n<li> Het tweede scenario is eenvoudiger: de modulaire hook wordt gestart op een gebeurtenis en wijzigt waarden in de waardenopslag van de module. De Addon-operator merkt dit op en start het Helm-chart met de bijgewerkte waarden.<\/li>\n<\/ol>\n<p>\nEen toevoeging kan worden ge\u00efmplementeerd als \u00e9\u00e9n enkele hook of als \u00e9\u00e9n Helm-chart, of <b>zelfs als verschillende afhankelijke modules<\/b> \u2014 dit hangt af van de complexiteit van de component die in het cluster wordt ge\u00efnstalleerd en het gewenste niveau van configuratieflexibiliteit. Bijvoorbeeld, in de repository (<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/addon-operator\/tree\/master\/examples\">\/examples<\/a><\/noindex>) is er een toevoeging sysctl-tuner, die zowel als een eenvoudige module met een hook en Helm-chart is ge\u00efmplementeerd, als met gebruik van waardenopslag, wat de mogelijkheid biedt om instellingen toe te voegen door ConfigMap te bewerken.<\/p>\n<h2>Levering van updates<\/h2>\n<p>\nEnkele woorden over het organiseren van updates van componenten die door de Addon-operator worden ge\u00efnstalleerd.<\/p>\n<p>Om de Addon-operator in een cluster te starten, moet je <b>een afbeelding met aanvullingen samenstellen<\/b> in de vorm van hook-bestanden en Helm-diagrammen, het binaire bestand toevoegen <code>addon-operator<\/code> en alles wat nodig is voor de hooks: <code>bash<\/code>, <code>kubectl<\/code>, <code>jq<\/code>, <code>python<\/code> enzovoort. Vervolgens kan deze afbeelding in het cluster worden uitgerold als een gewone applicatie en je wilt waarschijnlijk een of andere tagging-schema organiseren. Als er maar een paar clusters zijn, kan dezelfde aanpak worden toegepast als bij applicaties: nieuwe release, nieuwe versie, door alle clusters gaan en het image van de Pods aanpassen. Echter, in het geval van uitrol naar een significante hoeveelheid clusters, is het concept van zelf-updating vanuit het kanaal meer geschikt voor ons. <\/p>\n<p>Zo hebben we het geregeld:<\/p>\n<ul>\n<li>Een kanaal is in feite een identificatie die je vrij kunt toekennen (bijvoorbeeld, dev\/stage\/ea\/stable).<\/li>\n<li>De naam van het kanaal is het tag van de afbeelding. Wanneer het tijd is om updates naar het kanaal uit te rollen, wordt er een nieuwe afbeelding samengesteld en getagd met de naam van het kanaal.<\/li>\n<li>Wanneer er een nieuwe afbeelding in de registry verschijnt, wordt de Addon-operator opnieuw gestart en met de nieuwe afbeelding uitgevoerd.<\/li>\n<\/ul>\n<p>\nDit is geen best practice, zoals beschreven in <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/containers\/images\/#updating-images\">de Kubernetes-documentatie<\/a><\/noindex>. Dit wordt niet aanbevolen, maar het gaat om <i>een gewone applicatie die in \u00e9\u00e9n cluster draait<\/i>. In het geval van de Addon-operator is de applicatie een verzameling Deployments verspreid over clusters, en zelf-updating helpt enorm en vergemakkelijkt het leven. <\/p>\n<p>Kanalen helpen ook <b>bij testen<\/b>: als er een ondersteunend cluster is, kan het op een kanaal worden ingesteld <code>stage<\/code> en updates naar dit cluster worden uitgerold voordat ze naar de kanalen worden uitgerold. <code>ea<\/code> en <code>stable<\/code>. Als er een fout optrad met het cluster op het kanaal, kan het worden omgeschakeld naar <code>ea<\/code> , terwijl het probleem met dit cluster wordt onderzocht. Als het cluster uit actieve ondersteuning is gehaald, schakelt het over naar zijn \"bevroren\" kanaal \u2014 bijvoorbeeld, <code>stable<\/code>freeze-2019-03-20 <code>Naast het bijwerken van hooks en Helm-diagrammen kan het nodig zijn<\/code>.<\/p>\n<p>ook een externe component bij te werken <b>. Bijvoorbeeld, je merkte een fout op in de hypothetische node-exporter en je hebt zelfs bedacht hoe je deze kunt patchen. Vervolgens heb je een PR geopend en wacht je op de nieuwe release om door alle clusters te gaan en de versie van de afbeelding te verhogen. Om niet op een onbepaalde tijd te wachten, kun je je eigen node-exporter samenstellen en naar die versie overschakelen totdat de PR is goedgekeurd.<\/b>. Bijvoorbeeld, je hebt een fout opgemerkt in de conditionele node-exporter en zelfs bedacht hoe je het kunt patchen. Je hebt vervolgens een PR geopend en wacht op een nieuwe release om door alle clusters te gaan en de versie van het image te verhogen. Om niet onbepaalde tijd te wachten, kun je je eigen node-exporter bouwen en daarop overschakelen totdat de PR is goedgekeurd.<\/p>\n<p>In principe kan dit ook zonder de Addon-operator, maar met de Addon-operator wordt de module voor de installatie van de node-exporter zichtbaar in \u00e9\u00e9n repository, kan het Dockerfile voor het bouwen van je eigen image ook daar worden gehouden, en wordt het voor alle betrokkenen gemakkelijker om te begrijpen wat er gaande is... En als er meerdere clusters zijn, wordt het ook eenvoudiger om je PR te testen en een nieuwe versie uit te rollen!<\/p>\n<p>Deze organisatie van componentupdates werkt succesvol bij ons, maar het is ook mogelijk om een andere geschikte aanpak te implementeren \u2014 immers, <b>in dit geval is de Addon-operator een eenvoudig binaire bestand.<\/b>.<\/p>\n<h2>Conclusie<\/h2>\n<p>\nDe principes die in de Addon-operator zijn ge\u00efmplementeerd, maken het mogelijk om een transparant proces voor het maken, testen, installeren en bijwerken van extensies in de cluster op te zetten, vergelijkbaar met de processen van de ontwikkeling van gewone applicaties.<\/p>\n<p>Extensies voor de Addon-operator in de vorm van modules (Helm-chart + hooks) kunnen openbaar worden gedeeld. Wij, het bedrijf Flant, zijn van plan om gedurende de zomer onze ontwikkelingen in de vorm van dergelijke extensies te delen. Sluit je aan bij de ontwikkeling op 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>), probeer je eigen extensie te maken op basis van <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/addon-operator\/tree\/master\/examples\">voorbeelden<\/a><\/noindex> en <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/addon-operator\/blob\/master\/README.md\">de documentatie<\/a><\/noindex>, houd ons op de hoogte via Habra en op ons <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/c\/%D0%A4%D0%BB%D0%B0%D0%BD%D1%82\">YouTube-kanaal<\/a><\/noindex>!<\/p>\n<h2>P.S.<\/h2>\n<p>\nLees ook op onze blog:<\/p>\n<ul>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/449096\/\">We breiden Kubernetes uit en vullen het aan (overzicht en video van de presentatie)<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/447442\/\">We introduceren shell-operator: het maken van operators voor Kubernetes is nog eenvoudiger geworden<\/a><\/noindex>\u00bb.<\/li>\n<\/ul>\n<p>Bron: <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.3 - 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\/nl\/blog\/administrirovanie\/gotovit-kubernetes-klaster-prosto-i-udobno-anonsiruem-addon-operator\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"nl_NL\" \/>\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\/nl\/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\udd47Is het eenvoudig en handig om een Kubernetes-cluster op te zetten? We kondigen de addon-operator aan | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/nl\/blog\/administrirovanie\/gotovit-kubernetes-klaster-prosto-i-udobno-anonsiruem-addon-operator","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"nl_NL","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\/nl\/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\/nl\/wp-json\/wp\/v2\/posts\/35226","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/comments?post=35226"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts\/35226\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/media?parent=35226"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/categories?post=35226"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/tags?post=35226"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}