{"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\/et\/blog\/administrirovanie\/gotovit-kubernetes-klaster-prosto-i-udobno-anonsiruem-addon-operator","title":{"rendered":"Kubernetes-kl\u00f5ster on lihtne ja mugav seadistada? Tutvustame addon-operatorit","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Kubernetes-kl\u00f5ster on lihtne ja mugav seadistada? Tutvustame addon-operatorit\" src=\"\/wp-content\/uploads\/8df3959f765d5d1bc8d427d3258aacc4.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nJ\u00e4rgnevalt <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/447442\/\">shell-operator<\/a><\/noindex> esitleme tema vanemat venda \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/addon-operator\">addon-operator<\/a><\/noindex>. See on Open Source projekt, mida kasutatakse s\u00fcsteemikomponentide installimiseks Kubernetes'i klastrisse, mida v\u00f5ib kutsuda \u00fcldiselt \u2014 lisanditeks.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Miks \u00fcldse mingid lisandid?<\/h2>\n<p>\nEi ole saladus, et Kubernetes ei ole valmis toode, mis sisaldab k\u00f5ike-\u00fches, ja t\u00e4iskasvanud klastri ehitamiseks on vajalikud erinevad lisandid. Addon-operator aitab neid lisandeid installida, konfigureerida ja hoida need ajakohasena.<\/p>\n<p>Lisaelementide vajadus klastris on esitatud <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/449096\/\">aruandes<\/a><\/noindex> kolleegid <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/driusha\/\" class=\"user_link\">driusha<\/a><\/noindex>. L\u00fchidalt, olukord Kubernetes'ega on praegu selline, et lihtsaks 'katsetamiseks' piisab karbist saadud komponentidest, arendajate ja testimise jaoks saab lisada Ingress'i, kuid t\u00e4ielikuks installatsiooniks, mida v\u00f5iks nimetada 'teie tootmine on valmis', on vajalik lisada tosin erinevat lisandit: midagi monitoorimiseks, midagi logide jaoks, \u00e4ra unusta ingress'i ja cert-manager'it, eralda s\u00f5lmede gruppe, lisa v\u00f5rgupoliitikaid, maitsesta sysctl'i ja pod autoscaler'i seadistustega...<\/p>\n<p><img decoding=\"async\" alt=\"Kubernetes-kl\u00f5ster on lihtne ja mugav seadistada? Tutvustame addon-operatorit\" src=\"\/wp-content\/uploads\/ab3bed8ee8b29d4e51905e45c908f078.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Mis on nende t\u00f6\u00f6 erip\u00e4ra?<\/h2>\n<p>\nKogemused n\u00e4itavad, et \u00fche installatsiooniga asi ei piirdu. Mugavaks t\u00f6\u00f6tamiseks klastriga tuleb laiendusi uuendada, v\u00e4lja l\u00fclitada (klastrist eemaldada) ja m\u00f5ningaid soovitakse testida enne tootmisclustersse installimist.<\/p>\n<p>Nii et v\u00f5ib-olla Ansible piisab? V\u00f5ib-olla. Kuid <b>t\u00e4ielikud laiendused ei toimi tavaliselt ilma seadistuseta.<\/b>. Need to be mindful that these settings may vary depending on the cluster option (aws, gce, azure, bare-metal, do, \u2026). Some configurations cannot be predetermined \u2014 they must be retrieved from the cluster. Moreover, the cluster is not static: certain settings will require monitoring for changes. This is where Ansible falls short; a program that lives within the cluster is required, i.e., a Kubernetes Operator.<\/p>\n<p>Need, kes on seda t\u00f6\u00f6s proovinud <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/shell-operator\">shell-operator<\/a><\/noindex>, \u00fctlevad, et laienduste installimise ja uuendamise \u00fclesanded ning seadistuste j\u00e4lgimine on t\u00e4iesti v\u00f5imalik lahendada <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/shell-operator\/blob\/master\/HOOKS.md\">hook'ide<\/a><\/noindex> shell-operatoriga. Saab kirjutada skripti, mis teeb tingimuslikku <code>kubectl apply<\/code> ja j\u00e4lgib n\u00e4iteks ConfigMap'i, kus seadistused salvestatakse. Ligikaudu see ongi addon-operator'is rakendatud.<\/p>\n<h2>Kuidas see addon-operator'is korraldatud on?<\/h2>\n<p>\nUue lahenduse loomisel l\u00e4htusime j\u00e4rgmistest p\u00f5him\u00f5tetest:<\/p>\n<ul>\n<li> T\u00e4ienduste paigaldaja peab toetama <b>mallimist ja deklaratiivset konfiguratsiooni<\/b>. Me ei loo maagilisi skripte, mis paigaldavad t\u00e4iendusi. Addon-operator kasutab t\u00e4ienduste paigaldamiseks Helmi. Paigaldamiseks tuleb luua chart ja m\u00e4\u00e4rata values, mis kasutatakse seadistamiseks. <\/li>\n<li> Seadeid saab <b>genereerida paigaldamise k\u00e4igus<\/b>, neid saab <b>saada klastrist<\/b>, v\u00f5i <b>saada uuendusi<\/b>, j\u00e4lgides klastri ressursse. Need toimingud saab teostada hookide abil.<\/li>\n<li> Seadeid saab <b>hoida klastris<\/b>. Seadeid klastris hoitakse ConfigMap\/addon-operator, ja Addon-operator j\u00e4lgib selle ConfigMapi muudatusi. Addon-operator annab hookidele ligip\u00e4\u00e4su seadistustele lihtsalt kokkulepitud viiside kaudu.<\/li>\n<li> <b>T\u00e4iendamine s\u00f5ltub seadistustest<\/b>. Kui seaded muutuvad, siis Addon-operator v\u00e4ljastab Helm-chart koos uusimate values'itega. Helm-charti, value'ide ja hookide \u00fchendamist nimetame mooduliks (lisainfot vt allpool).<\/li>\n<li> <b>Etappimine<\/b>. Ei ole maagilisi v\u00e4ljalaske skripte. Uuenduse mehhanism on sarnane tavap\u00e4rasele rakendusele \u2014 koguda t\u00e4iendusi ja addon-operatorit pildiks, t\u00e4histada ja v\u00e4ljastada.<\/li>\n<li> <b>Tulemuse kontroll<\/b>. Addon-operator suudab edastada metrikat Prometheusele.<\/li>\n<\/ul>\n<p><\/p>\n<h2>Mis on addon-operatori lisand?<\/h2>\n<p>\nLisandina v\u00f5ib pidada k\u00f5ike, mis lisab klastrisse uusi funktsioone. N\u00e4iteks on Ingress'i installimine suurep\u00e4rane n\u00e4ide lisandist. See v\u00f5ib olla \u00fcksk\u00f5ik milline operaator v\u00f5i kontroller koos oma CRD-ga: prometheus-operator, cert-manager, kube-controller-manager jne. V\u00f5i midagi v\u00e4ikest, kuid kasutuse lihtsustamiseks \u2014 n\u00e4iteks salajaste andmete kopeerija, mis kopeerib registri saladusi uutesse nimes\u00fcsteemidesse, v\u00f5i sysctl tuner, mis seadistab sysctl parameetreid uutel s\u00f5lmedel.<\/p>\n<p>Lisandite rakendamiseks pakub Addon-operator mitmeid kontseptsioone:<\/p>\n<ul>\n<li> <b>Helm-chart<\/b> kasutatakse erineva tarkvara installimiseks klastrisse \u2014 n\u00e4iteks Prometheus, Grafana, nginx-ingress. Kui vajaliku komponendi jaoks on olemas Helm-chart, on selle Installimine Addon-operatoriga v\u00e4ga lihtne.<\/li>\n<li> <b>Values'i hoidla<\/b>. Helm-chartidel on tavaliselt palju erinevaid seadistusi, mis v\u00f5ivad aja jooksul muutuda. Addon-operator toetab nende seadistuste salvestamist ja oskab j\u00e4lgida nende muutusi, et uuesti installida Helm-chart koos uute v\u00e4\u00e4rtustega.<\/li>\n<li> <b>Haanikud<\/b> \u2014 need to be executed files, which the Addon-operator triggers based on events and gains access to the values storage. The hook can monitor changes in the cluster and update values in the values storage. This means that hooks can perform discovery to gather values from the cluster at startup or on a schedule, or even continuous discovery by collecting values from the cluster based on changes within it.<\/li>\n<li> <b>Modul<\/b> \u2014 \u044d\u0442\u043e Helm-\u0447\u0430\u0440\u0442, \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0438 \u0445\u0443\u043a\u0438. \u041c\u043e\u0434\u0443\u043b\u0438 \u043c\u043e\u0436\u043d\u043e \u0432\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u0438 \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u0442\u044c. \u041e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043c\u043e\u0434\u0443\u043b\u044f \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0432\u0441\u0435\u0445 \u0440\u0435\u043b\u0438\u0437\u043e\u0432 Helm-\u0447\u0430\u0440\u0442\u0430. \u041c\u043e\u0434\u0443\u043b\u0438 \u043c\u043e\u0433\u0443\u0442 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u0441\u0430\u043c\u0438 \u0441\u0435\u0431\u044f, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0435\u0441\u043b\u0438 \u0432\u0441\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u043c\u043e\u0434\u0443\u043b\u0438 \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u0438\u043b\u0438 \u0435\u0441\u043b\u0438 discovery \u0432 \u0445\u0443\u043a\u0430\u0445 \u043d\u0430\u0448\u0435\u043b \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u2014 \u044d\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f \u043f\u0443\u0442\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0441\u043a\u0440\u0438\u043f\u0442\u0430 enabled.<\/li>\n<li> <b>Globaalne h\u00fc\u00fcded<\/b>. Need on h\u00fc\u00fcded, mis toimivad iseseisvalt, nad ei kuulu moodulitesse ja neil on ligip\u00e4\u00e4s globaalsetele v\u00e4\u00e4rtuste ladudele, mille v\u00e4\u00e4rtused on kergesti k\u00e4tte saadavad k\u00f5igile moodulites olevatele h\u00fcuetele.<\/li>\n<\/ul>\n<p>\nKuidas need osad koos t\u00f6\u00f6tavad? Vaadake dokumentatsioonist pilti:<\/p>\n<p><img decoding=\"async\" alt=\"Kubernetes-kl\u00f5ster on lihtne ja mugav seadistada? Tutvustame addon-operatorit\" src=\"\/wp-content\/uploads\/c9bb8e5ae78aa5df0d6c4fbf353e4236.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nT\u00f6\u00f6protsesside stsenaariume on kaks:<\/p>\n<ol>\n<li> Globaalne hulk k\u00e4ivitub s\u00fcndmuse korral \u2014 n\u00e4iteks klastris ressursi muutmisel. See hulk t\u00f6\u00f6tleb muudatusi ja salvestab uued v\u00e4\u00e4rtused globaalsesse v\u00e4\u00e4rtuste hoiuruumi. Addon-operator m\u00e4rgib, et globaalne hoiuruum on muutunud ja k\u00e4ivitab k\u00f5ik moodulid. Iga moodul m\u00e4\u00e4rab oma hakkide abil, kas ta peab sisse l\u00fclituma, ja v\u00e4rskendab oma v\u00e4\u00e4rtuste hoiuruumi. Kui moodul on sisse l\u00fclitatud, k\u00e4ivitab Addon-operator Helm-chart'i paigaldamise. Helm-chartil on juurdep\u00e4\u00e4s v\u00e4\u00e4rtustele mooduli hoiuruumist ja globaalsest hoiuruumist.<\/li>\n<li> Teine stsenaarium on lihtsam: mooduli hulk k\u00e4ivitub s\u00fcndmuse korral, muudab v\u00e4\u00e4rtusi mooduli v\u00e4\u00e4rtuste hoiuruumis. Addon-operator m\u00e4rkab seda ja k\u00e4ivitab Helm-chart'i v\u00e4rskendatud v\u00e4\u00e4rtustega.<\/li>\n<\/ol>\n<p>\nLisa v\u00f5ib olla realiseeritud kas \u00fcheainsa hulgana v\u00f5i \u00fche Helm-chart'ina, v\u00f5i <b>isegi mitme s\u00f5ltuva moodulina<\/b> \u2014 see s\u00f5ltub klastrisse paigaldatava komponendi keerukusest ja vajalikust seadistuste paindlikkuse tasemest. N\u00e4iteks hoidlas (<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/addon-operator\/tree\/master\/examples\">\/examples<\/a><\/noindex>) on sysctl-tuner, which is implemented both as a simple module with a hook and Helm chart, as well as using a values repository, allowing settings to be added by editing the ConfigMap.<\/p>\n<h2>Updates delivery<\/h2>\n<p>\nA few words about organizing updates for the components installed by the Addon operator.<\/p>\n<p>To run the Addon operator in the cluster, you need to <b>build an image with addons<\/b> in the form of hook files and Helm charts, add the binary file <code>addon-operator<\/code> and everything needed for the hooks: <code>bash<\/code>, <code>kubectl<\/code>, <code>jq<\/code>, <code>python<\/code> etc. After that, this image can be deployed to the cluster like a regular application, and you will likely want to establish some tagging scheme. If there are only a few clusters, the same approach as with applications may work: new release, new version, go through all clusters and update the image in the Pods. However, when deploying to a significant number of clusters, the concept of self-updating from a channel is more suitable for us. <\/p>\n<p>We have it set up like this:<\/p>\n<ul>\n<li>A channel is essentially an identifier that you can set to anything (for example, dev\/stage\/ea\/stable).<\/li>\n<li>Kanali nimi on pildi silt. Kui on vaja kanali uuendusi v\u00e4lja viia, kogutakse uus pilt ja m\u00e4rgistatakse kanali nimega.<\/li>\n<li>Kui registris ilmub uus pilt, taask\u00e4ivitub Addon-operator ja k\u00e4ivitub uue pildiga.<\/li>\n<\/ul>\n<p>\nSee ei ole parim praktika, millest on kirjutatud <noindex><a rel=\"nofollow\" href=\"https:\/\/kubernetes.io\/docs\/concepts\/containers\/images\/#updating-images\">Kubernetes'i dokumentatsioonis<\/a><\/noindex>. Nii teha ei soovitata, kuid jutt on <i>tavalisest rakendusest, mis elab \u00fches klastris<\/i>. Addon-operatori puhul on rakendus hulgaliselt paigaldusi, mis on hajutatud klastrite vahel, ja iseuuendamine aitab t\u00f5eliselt palju ning lihtsustab elu. <\/p>\n<p>Kanali tasemed aitavad samuti <b>testimisel<\/b>: kui on olemas abiklastr, saab selle seadistada <code>etapi<\/code> kanaliks ja katsetada uuendusi selles, enne kui need viiakse v\u00e4lja <code>ees<\/code> ja <code>stabiilseks<\/code>. Kui klastris, millel on kanal, esineb viga, saab selle l\u00fclitada <code>ees<\/code> , kuni uurimine k\u00e4ib selle klastriga seotud probleemi osas. Kui klaster elimineeritakse aktiivselt, l\u00fclitatakse see tema \"k\u00fclmutatud\" kanali juurde \u2014 n\u00e4iteks, <code>stabiilseks<\/code>, kuni uurimine selle klastriga seotud probleemide osas on k\u00e4imas. Kui klaster on aktiivsest toest v\u00e4ljas, l\u00fclitub see oma \u201ek\u00fclmutatud\u201d kanalile \u2014 n\u00e4iteks, <code>freeze-2019-03-20<\/code>.<\/p>\n<p>. Uuenduste \u00fcle vaalude ja Helm-chartide puhul v\u00f5ib osutuda vajalikuks <b>uuendada ka kolmanda osapoole komponenti.<\/b>. N\u00e4iteks olete m\u00e4rganud viga node-exporteris ja isegi leiutanud, kuidas seda patcheda. Siis avasite PR-i ja ootate uut v\u00e4ljalaset, et k\u00f5iki klastreid k\u00fclastada ja pildi versiooni t\u00e4iustada. Et mitte oodata ebamugavat aega, v\u00f5ite oma node-exporteri \u00fcles ehitada ja sellele \u00fcle minna, kuni PR on vastu v\u00f5etud.<\/p>\n<p>\u00dcldiselt saab seda teha ka ilma Addon-operatorita, kuid Addon-operatori puhul on node-exporteri installimismoodul \u00fches repos n\u00e4htav, Dockerfile oma pildi ehitamiseks saab hoida samuti seal, ning k\u00f5ik osalised saavad kergemini aru, mis toimub... Ja kui on mitu klastrit, siis on lihtsam nii oma PR-i testida kui ka uut versiooni rakendada!<\/p>\n<p>See komponentide v\u00e4rskendamise korraldus t\u00f6\u00f6tab meil edukalt, kuid on v\u00f5imalik rakendada ka m\u00f5nda muud sobivat skeemi \u2014 sest <b>sellel juhul on Addon-operator lihtne binaarfail<\/b>.<\/p>\n<h2>Kokkuv\u00f5te<\/h2>\n<p>\nAddon-operatoris rakendatud p\u00f5him\u00f5tted v\u00f5imaldavad luua l\u00e4bipaistva protsessi t\u00e4ienduste loomisel, testimisel, installimisel ja v\u00e4rskendamisel klastris, sarnase tavaliste rakenduste arendusprotsessidega.<\/p>\n<p>Addon-operatorile moodulite vormingus (Helm-chart + hookid) saab avalikuks muuta. Meie, ettev\u00f5te Flant, plaanime suve jooksul jagada oma arendust\u00f6id selliste lisandite kujul. Liitu arendusega GitHubis (<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>), proovi luua oma lisand <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/addon-operator\/tree\/master\/examples\">n\u00e4idiste<\/a><\/noindex> ja <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/flant\/addon-operator\/blob\/master\/README.md\">dokumentatsioonis<\/a><\/noindex>, oota uudiseid Habrilt ja meie <noindex><a rel=\"nofollow\" href=\"https:\/\/www.youtube.com\/c\/%D0%A4%D0%BB%D0%B0%D0%BD%D1%82\">YouTube'i kanalis<\/a><\/noindex>!<\/p>\n<h2>P.S.<\/h2>\n<p>\nLugege ka meie blogist:<\/p>\n<ul>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/449096\/\">Kubernetesi laiendamine ja t\u00e4iendamine (\u00fclevaade ja video ettekandest)<\/a><\/noindex>\u00bb;<\/li>\n<li> \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/flant\/blog\/447442\/\">Tutvustame shell-operatorit: Kubernetes'e operaatorite loomine on veelgi lihtsam<\/a><\/noindex>\u00bb.<\/li>\n<\/ul>\n<p>Allikas: <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\/et\/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=\"et_EE\" \/>\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\/et\/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\udd47Kas Kubernetes'i klastri loomine on lihtne ja mugav? Tutvustame addon-operatorit | ProHoster","description":"P\u00e4rast shell-operatorit tutvustame tema suuremat venda \u2013 addon-operatorit. See on Open Source projekt, mida kasutatakse Kubernetes'i klastrisse s\u00fcsteemsete komponentide installimiseks, mida saab \u00fcldiselt nimetada \u2014 lisanditeks. Miks on \u00fcldse mingeid lisandeid? Pole saladus, et Kubernetes pole valmis toode k\u00f5iges-\u00fches, ning t\u00e4iskasvanud klastrite loomine vajab erinevaid lisandeid. Addon-operator aitab installida, seadistada ja","canonical_url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/gotovit-kubernetes-klaster-prosto-i-udobno-anonsiruem-addon-operator","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","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\/et\/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\/et\/wp-json\/wp\/v2\/posts\/35226","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=35226"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/35226\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=35226"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=35226"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=35226"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}