{"id":91199,"date":"2020-08-10T01:42:03","date_gmt":"2020-08-09T23:42:03","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/kubernetes-v-domklik-kak-spat-spokojno-upravlyaya-klasterom-na-1000-mikroservisov"},"modified":"2020-08-10T01:42:03","modified_gmt":"2020-08-09T23:42:03","slug":"kubernetes-v-domklik-kak-spat-spokojno-upravlyaya-klasterom-na-1000-mikroservisov","status":"publish","type":"post","link":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/kubernetes-v-domklik-kak-spat-spokojno-upravlyaya-klasterom-na-1000-mikroservisov","title":{"rendered":"Kubernetes Domklik'is: kuidas rahulikult magada, hallates 1000 mikroteenuse klastrit","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Minu nimi on Viktor Jagofarov ja olen Domklik'i Kubernetes platvormi arenduse tehniline juht Ops meeskonnas. Soovin r\u00e4\u00e4kida meie Dev &lt;-&gt; Ops protsesside korraldusest, Venemaa \u00fche suurima k8s-klastri haldamise erip\u00e4radest ning DevOps\/SRE praktikatest, mida meie meeskond rakendab.<\/p>\n<p><img decoding=\"async\" alt=\"Kubernetes Domklik&#039;is: kuidas rahulikult magada, hallates 1000 mikroteenuse klastrit\" src=\"\/wp-content\/uploads\/2020\/08\/6c908104c734b36cc7a960fbe4d65e3f.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h4>Ops meeskond<\/h4>\n<p>\nOps meeskonnas t\u00f6\u00f6tab hetkel 15 inimest. Kolm neist vastutavad b\u00fcroo eest, kaks t\u00f6\u00f6tavad teises ajav\u00f6\u00f6ndis ning on saadaval, sealhulgas \u00f6\u00f6siti. Nii on alati keegi Ops'ist monitori taga, valmis reageerima igasuguste \u00f5nnetuste korral. \u00d6\u00f6siti valveid meil ei ole, mis kaitseb meie vaimu ja annab v\u00f5imaluse k\u00f5igile korralikult magada ja nautida vaba aega mitte ainult arvuti taga.<\/p>\n<p><img decoding=\"async\" alt=\"Kubernetes Domklik&#039;is: kuidas rahulikult magada, hallates 1000 mikroteenuse klastrit\" src=\"\/wp-content\/uploads\/2020\/08\/47051db273f116df376e64bad67c6f37.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKompetentsid on k\u00f5ikidel erinevad: v\u00f5rguinsenerid, DBA-d, ELK-i virna spetsialistid, Kubernetes-i administraatorid\/aruandjad, j\u00e4lgimise, virtualiseerimise ja riistvara spetsialistid jne. \u00dchendab k\u00f5iki \u00fcks asi \u2014 iga\u00fcks v\u00f5ib mingil m\u00e4\u00e4ral asendada teist: n\u00e4iteks lisada uusi s\u00f5lme k8s klastri, v\u00e4rskendada PostgreSQL, kirjutada CI\/CD pipeline'i + Ansible, automatiseerida midagi Pythonis\/Bashis\/Go-s, \u00fchendada riistvara andmekeskusesse. Tugevad kompetentsid mingis valdkonnas ei takista suunda muuta ja alustada \u00f5ppimist m\u00f5nes teises valdkonnas. N\u00e4iteks, t\u00f6\u00f6tasin algselt ettev\u00f5ttes PostgreSQL spetsialistina, kuid n\u00fc\u00fcd on minu peamine vastutusvaldkond Kubernetes klastri juhtimine. Meeskonnas on iga areng alati teretulnud ja \u00fchtekuuluvustunne on v\u00e4ga tugevalt v\u00e4ljendatud.<\/p>\n<p>Muide, me otsime uut talenti. Kandidaatidelt ootused on \u00fcsna standardsed. Minu jaoks on oluline, et inimene sobituks meeskonda, oleks konfliktivaba, kuid oskaks ka oma seisukohti kaitsta, sooviks areneda ja ei kardaks uut proovida ning tooks oma ideid lauale. Samuti on vajalikud programmimise oskused skriptikeeltes, teadmised Linuxi p\u00f5hialustest ja inglise keel. Inglise keel on vajalik, et inimene saaks probleemide lahendamiseks kiiresti internetti otsida, mitte ei raiskaks sellele 10 minutit. S\u00fcgavate Linuxi teadmisteta spetsialiste on hetkel v\u00e4ga keeruline leida: naljakas, aga kaks kandidaati kolmest ei oska vastata k\u00fcsimusele \u201eMis on Load Average? Millest see koosneb?\u201d, ja k\u00fcsimust \u201eKuidas koguda core dump C-programmist\u201d peavad nad millegiks \u00fcleinimlikuks\u2026 v\u00f5i dinosauruste maailmast. Selle olukorraga tuleb leppida, kuna enamasti on inimestel teised oskused tugevalt arenenud, ning \u201eliinukse\u201d \u00f5petame me \u00e4ra. Vastus k\u00fcsimusele \u201emiks seda k\u00f5ike peaks DevOps-insener t\u00e4nap\u00e4eva pilveteenustes teadma\u201d peab j\u00e4\u00e4ma artikli raames arutlemiseks, kuid kolme s\u00f5naga: see on k\u00f5ik vajalik.<\/p>\n<h4>T\u00f6\u00f6riistade meeskond<\/h4>\n<p>\nAutomatiseerimises m\u00e4ngib olulist rolli Tools'i meeskond. Nende peamine \u00fclesanne on luua arendajatele mugavaid graafilisi ja CLI-t\u00f6\u00f6riistu. N\u00e4iteks v\u00f5imaldab meie sisearendus Confer m\u00f5ne hiirekl\u00f5psuga rakendust Kubernetesesse v\u00e4lja lasta, seadistada selle ressursid, v\u00f5tmed vaultist jne. Varasemalt oli kasutusel Jenkins + Helm 2, kuid pidime arendama oma t\u00f6\u00f6riista, et v\u00e4listada kopeerimise ja kleepimise vajadus ning tuua tarkvaraarendusse \u00fchtsust.<\/p>\n<p>Ops'i meeskond ei kirjuta arendajate jaoks pipeline'e, kuid nad saavad anda n\u00f5u k\u00f5igis k\u00fcsimustes nende kirjutamise osas (m\u00f5nel on veel Helm 3).<\/p>\n<h4>DevOps<\/h4>\n<p>\nMis puutub DevOps'i, siis n\u00e4eme seda sellisena:<\/p>\n<p>Dev meeskonnad kirjutavad koodi, deployivad seda l\u00e4bi Confer dev -&gt; qa\/stage -&gt; prod. Vastutus selle eest, et kood ei tarduks ega viskaks vigu, lasub Dev ja Ops tiimidel. P\u00e4evasel ajal peab probleemide korral reageerima oma rakendusele esmaj\u00e4rjekorras Opsi de\u017euurija ja \u00f5htuti ning \u00f6\u00f6sel peab de\u017euuradmin (Ops) \u00e4ratama de\u017euurarendaja, kui ta on kindel, et probleem ei ole infrastruktuuris. K\u00f5ik m\u00f5\u00f5dikud ja alertid monitoris tekivad automaatselt v\u00f5i poolautomaatsetena.<\/p>\n<p>Opsi vastutus algab hetkest, kui rakendus saadetakse tootmisse, kuid Devi vastutus ei l\u00f5pe sellega \u2014 me teeme \u00fchte asja ja oleme \u00fches paadis.<\/p>\n<p>Arendajad konsulteerivad adminne, kui vajavad abi adminni mikroteenuse kirjutamisel (n\u00e4iteks Go backend + HTML5), ning adminnid konsulteerivad arendajaid mis tahes infrastruktuuri v\u00f5i k8s-i seotud k\u00fcsimustes.<\/p>\n<p>Muide, meil ei ole \u00fcldse monoliiti, ainult mikroteenused. Nende arv on hetkel tootmis-k8s klastris vahemikus 900 kuni 1000, kui m\u00f5\u00f5ta arvu j\u00e4rgi. <i>deployments<\/i>. Poodide arv varieerub 1700 ja 2000 vahel. Prod-klastris on hetkel umbes 2000 poodi.<\/p>\n<p>Konkreetseid numbreid ma \u00f6elda ei saa, kuna j\u00e4lgime tarbetuks osutunud mikroteenuseid ja eemaldame neid poolautomaatse re\u017eiimi abil. Tarbetute \u00fcksuste j\u00e4lgimisel k8s aitab meid <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/Nastradamus\/useless-operator\">useless-operator<\/a><\/noindex>, mis s\u00e4\u00e4stab suurel m\u00e4\u00e4ral ressursse ja raha.<\/p>\n<h2> Ressursside haldamine <\/h2>\n<p><\/p>\n<h4> J\u00e4lgimine <\/h4>\n<p>\nSuure klastrihalduse nurgakiviks on \u00f5igesti \u00fcles ehitatud ja informatiivne j\u00e4lgimine. Me ei ole veel leidnud universaalset lahendust, mis kataks 100% meie j\u00e4lgimise soovidest, seega loome aeg-ajalt erinevaid kohandatud lahendusi selles keskkonnas.<\/p>\n<ul>\n<li><b>Zabbix<\/b>. Hea, vana monitorimine, mis on m\u00f5eldud eelk\u00f5ige infrastruktuuri \u00fcldise seisundi j\u00e4lgimiseks. See \u00fctleb meile, kui node sureb protsessori, m\u00e4lu, ketaste, v\u00f5rgu jne t\u00f5ttu. Mitte midagi \u00fclisuurt, kuid meil on ka eraldi DaemonSet agentidest, millega n\u00e4iteks j\u00e4lgime DNS-seisundit klastris: otsime coredns'i aeglustunud pods'e, kontrollime v\u00e4liste hostide k\u00e4tte saadavust. Tundub, et milleks selle p\u00e4rast vaeva n\u00e4ha, kuid suurte andmemahtude korral on see komponent t\u00f5sine t\u00f5rkekoht. Varasemalt olen juba <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/domclick\/blog\/495450\/\">kirjeldanud<\/a><\/noindex>, kuidas ma v\u00f5itlen klastris DNS-i j\u00f5udlusprobleemidega.<\/li>\n<li><b>Prometheus Operator<\/b>. Erinevate eksportijate kogum annab suure \u00fclevaate kogu klastrist. Edasi visualiseerime k\u00f5ik selle suurelt armatuurlaudades Grafanas, ja teatiste jaoks kasutame alertmanager'i.\n<\/li>\n<\/ul>\n<p>\nVeel \u00fcheks kasulikuks t\u00f6\u00f6riistaks meie jaoks sai <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/Nastradamus\/list-ingress\">list-ingress<\/a><\/noindex>. \u041c\u044b \u043d\u0430\u043f\u0438\u0441\u0430\u043b\u0438 \u0435\u0433\u043e \u043f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437 \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0438\u0441\u044c \u0441 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0435\u0439, \u043a\u043e\u0433\u0434\u0430 \u043e\u0434\u043d\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u043f\u0435\u0440\u0435\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u0441\u0432\u043e\u0438\u043c\u0438 \u043f\u0443\u0442\u044f\u043c\u0438 Ingress \u0434\u0440\u0443\u0433\u043e\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u044b, \u0438\u0437-\u0437\u0430 \u0447\u0435\u0433\u043e \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u043b\u0438 \u043e\u0448\u0438\u0431\u043a\u0438 50x. \u0421\u0435\u0439\u0447\u0430\u0441 \u043f\u0435\u0440\u0435\u0434 \u0434\u0435\u043f\u043b\u043e\u0435\u043c \u043d\u0430 \u043f\u0440\u043e\u0434 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u044e\u0442, \u0447\u0442\u043e \u043d\u0438\u043a\u043e\u0433\u043e \u043d\u0435 \u0437\u0430\u0434\u0435\u043d\u0443\u0442, \u0430 \u0434\u043b\u044f \u043c\u043e\u0435\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u044d\u0442\u043e \u0445\u043e\u0440\u043e\u0448\u0438\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0434\u043b\u044f \u043f\u0435\u0440\u0432\u0438\u0447\u043d\u043e\u0439 \u0434\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0441 Ingress&#8217;\u0430\u043c\u0438. \u0417\u0430\u0431\u0430\u0432\u043d\u043e, \u0447\u0442\u043e \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0435\u0433\u043e \u043d\u0430\u043f\u0438\u0441\u0430\u043b\u0438 \u0434\u043b\u044f \u0430\u0434\u043c\u0438\u043d\u043e\u0432 \u0438 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u043b \u043e\u043d \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u00ab\u0442\u043e\u043f\u043e\u0440\u043d\u043e\u00bb, \u043d\u043e \u043f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u043f\u043e\u043b\u044e\u0431\u0438\u043b\u0441\u044f dev-\u043a\u043e\u043c\u0430\u043d\u0434\u0430\u043c, \u043e\u043d \u0441\u0438\u043b\u044c\u043d\u043e \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0438\u043b\u0441\u044f \u0438 \u0441\u0442\u0430\u043b \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u0442\u044c \u043d\u0435 \u043a\u0430\u043a \u00ab\u0430\u0434\u043c\u0438\u043d \u0441\u0434\u0435\u043b\u0430\u043b \u0432\u0435\u0431-\u043c\u043e\u0440\u0434\u0443 \u0434\u043b\u044f \u0430\u0434\u043c\u0438\u043d\u043e\u0432\u00bb. \u0421\u043a\u043e\u0440\u043e \u043c\u044b \u043e\u0442\u043a\u0430\u0436\u0435\u043c\u0441\u044f \u043e\u0442 \u044d\u0442\u043e\u0433\u043e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430 \u0438 \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0435 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u0438 \u0431\u0443\u0434\u0443\u0442 \u0432\u0430\u043b\u0438\u0434\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0435\u0449\u0435 \u0434\u043e \u0432\u044b\u043a\u0430\u0442\u043a\u0438 \u043f\u0430\u0439\u043f\u043b\u0430\u0439\u043d\u0430.<\/p>\n<h4>Meeskondade ressursid \u00abKubes\u00bb<\/h4>\n<p>\nEnne n\u00e4idete juurde asumist tasub selgitada, kuidas meil toimub ressursside eraldamine <i>mikroteenustena<\/i>.<\/p>\n<p>Selleks, et m\u00f5ista, millised meeskonnad ja kui palju kasutavad oma <i>ressursse<\/i> (protsessor, m\u00e4lu, kohalik SSD), eraldame iga meeskonna jaoks oma <i>namespace<\/i> \u0432 \u00ab\u041a\u0443\u0431\u0435\u00bb \u0438 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u0435\u043c \u0435\u0433\u043e \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043f\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0443, \u043f\u0430\u043c\u044f\u0442\u0438 \u0438 \u0434\u0438\u0441\u043a\u0443, \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u0431\u0433\u043e\u0432\u043e\u0440\u0438\u0432 \u043d\u0443\u0436\u0434\u044b \u043a\u043e\u043c\u0430\u043d\u0434. \u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u043e\u0434\u043d\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430, \u0432 \u043e\u0431\u0449\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435, \u043d\u0435 \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u0443\u0435\u0442 \u0434\u043b\u044f \u0434\u0435\u043f\u043b\u043e\u044f \u0432\u0435\u0441\u044c \u043a\u043b\u0430\u0441\u0442\u0435\u0440, \u0432\u044b\u0434\u0435\u043b\u0438\u0432 \u0441\u0435\u0431\u0435 \u0442\u044b\u0441\u044f\u0447\u0438 \u044f\u0434\u0435\u0440 \u0438 \u0442\u0435\u0440\u0430\u0431\u0430\u0439\u0442\u044b \u043f\u0430\u043c\u044f\u0442\u0438. \u0414\u043e\u0441\u0442\u0443\u043f\u044b \u0432 namespace \u0432\u044b\u0434\u0430\u044e\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 AD (\u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c RBAC). Namespace&#8217;\u044b \u0438 \u0438\u0445 \u043b\u0438\u043c\u0438\u0442\u044b \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 \u043f\u0443\u043b-\u0440\u0435\u043a\u0432\u0435\u0441\u0442 \u0432 GIT-\u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439, \u0430 \u0434\u0430\u043b\u0435\u0435 \u0447\u0435\u0440\u0435\u0437 Ansible-\u043f\u0430\u0439\u043f\u043b\u0430\u0439\u043d \u0432\u0441\u0451 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0440\u0430\u0441\u043a\u0430\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f.<\/p>\n<p>N\u00e4ide ressursside eraldamisest meeskonnale:<\/p>\n<pre><code class=\"go\">namespaces:\n\n  chat-team:\n    pods: 23\n    limits:\n      cpu: 11\n      memory: 20Gi\n    requests:\n      cpu: 11\n      memory: 20Gi\n<\/code><\/pre>\n<p><\/p>\n<h4>Request\u2019id ja limiidid<\/h4>\n<p>\nKubes <i>Request<\/i> \u2014 see on garantiseeritud reservatsioonide arv <i>pod<\/i> (\u043e\u0434\u0438\u043d \u0438\u043b\u0438 \u0431\u043e\u043b\u0435\u0435 \u0434\u043e\u043a\u0435\u0440-\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432) \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435. Limit \u2014 \u044d\u0442\u043e \u043d\u0435\u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c. \u0427\u0430\u0441\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u043d\u0430 \u0433\u0440\u0430\u0444\u0438\u043a\u0430\u0445, \u043a\u0430\u043a \u043a\u0430\u043a\u0430\u044f-\u0442\u043e \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0432\u044b\u0441\u0442\u0430\u0432\u0438\u043b\u0430 \u0441\u0435\u0431\u0435 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043c\u043d\u043e\u0433\u043e \u0440\u0435\u043a\u0432\u0435\u0441\u0442\u043e\u0432 \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0441\u0432\u043e\u0438\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0438 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u0434\u0435\u043f\u043b\u043e\u0438\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0432 \u00ab\u041a\u0443\u0431\u00bb, \u0442\u0430\u043a \u043a\u0430\u043a \u043f\u043e\u0434 \u0438\u0445 namespace \u0432\u0441\u0435 request&#8217;\u044b \u0443\u0436\u0435 \u00ab\u043f\u043e\u0442\u0440\u0430\u0447\u0435\u043d\u044b\u00bb.<\/p>\n<p>Sellest olukorrast \u00f5ige lahendus: vaadata tegelikku ressursi tarbimist ja v\u00f5rrelda seda n\u00f5utud kogusega (Request).<\/p>\n<p><img decoding=\"async\" alt=\"Kubernetes Domklik&#039;is: kuidas rahulikult magada, hallates 1000 mikroteenuse klastrit\" src=\"\/wp-content\/uploads\/2020\/08\/417373d4421064f28d57a03b6bb5bf94.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<img decoding=\"async\" alt=\"Kubernetes Domklik&#039;is: kuidas rahulikult magada, hallates 1000 mikroteenuse klastrit\" src=\"\/wp-content\/uploads\/2020\/08\/3168ad6dc8b159059b21e1177e145376.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u00dclalolevates ekraanipiltides on n\u00e4ha, et \u201etaotletud\u201d (Requested) CPU-d kohandatakse tegeliku l\u00f5imearvuga, samas kui Limits v\u00f5ivad \u00fcletada tegelikku protsessorite l\u00f5imearvu =)<\/p>\n<p>N\u00fc\u00fcd vaatame p\u00f5hjalikult \u00fchte namespace'i (valisin namespace kube-system \u2014 s\u00fcsteeminamespace Kuberi komponentidele) ja vaatame, kuidas v\u00f5rreldakse tegelikult kasutatud protsessoriaega ja m\u00e4lu taotletuga:<\/p>\n<p><img decoding=\"async\" alt=\"Kubernetes Domklik&#039;is: kuidas rahulikult magada, hallates 1000 mikroteenuse klastrit\" src=\"\/wp-content\/uploads\/2020\/08\/ed6160de5397b8cd39cbae172d4bb872.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nOn ilmne, et s\u00fcsteemsete teenuste jaoks on reserveeritud palju rohkem m\u00e4lu ja CPU-d kui tegelikult kasutatakse. Kube-systemi puhul on see \u00f5igustatud: on olnud aegu, kus nginx ingress controller v\u00f5i nodelocaldns on tipptundidel CPU-le kinni j\u00e4\u00e4nud ja kasutanud v\u00e4ga palju RAM-i, seega on siin selline varu \u00f5igustatud. Pealegi ei saa me toetuda viimase 3 tunni graafikutele: soovitav on n\u00e4ha ajaloolisi m\u00f5\u00f5dikuid pikema aja jooksul.<\/p>\n<p>On v\u00e4lja t\u00f6\u00f6tatud soovituste s\u00fcsteem. N\u00e4iteks siin on n\u00e4ha, milliseid ressursse tasuks \u201epiiride\u201d (\u00fclemine lubatud tase) t\u00f5stmiseks, et v\u00e4ltida \u201etrotlingut\u201d (throttling): hetke, kui juba on kulunud CPU v\u00f5i m\u00e4lu etten\u00e4htud ajakvotal ja oodatakse, kuni nad \u201elahendatakse\u201d:<\/p>\n<p><img decoding=\"async\" alt=\"Kubernetes Domklik&#039;is: kuidas rahulikult magada, hallates 1000 mikroteenuse klastrit\" src=\"\/wp-content\/uploads\/2020\/08\/f23aece10a585e6847bcacfe947031d1.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSiin on podid, mida tasuks natuke piirata:<\/p>\n<p><img decoding=\"async\" alt=\"Kubernetes Domklik&#039;is: kuidas rahulikult magada, hallates 1000 mikroteenuse klastrit\" src=\"\/wp-content\/uploads\/2020\/08\/1ec9996ce6355aeba603008d51aac209.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nUmbes <i>throttling<\/i> + ressursside j\u00e4lgimine on laiem teema, mille kohta v\u00f5iks kirjutada mitmeid artikleid, seega k\u00fcsige julgelt kommentaarides. L\u00fchidalt \u00fctlen, et selliste metrikate automatiseerimine on keeruline \u00fclesanne, mis n\u00f5uab palju aega ja oskusi, sealhulgas \u201eakna\u201c funktsioone ja \u201eCTE\u201c Prometheus \/ VictoriaMetrics (need terminid on jutum\u00e4rkides, kuna PromQL-s ei ole praktiliselt midagi sarnast ja tuleb kirjutada hirmu\u00e4ratavaid p\u00e4ringuid, mis ulatuvad mitme ekraani pikkuseks ja optimeerida neid).<\/p>\n<p>L\u00f5puks on arendajatel t\u00f6\u00f6riistad oma namespaces'i j\u00e4lgimiseks \u201eKube'is\u201c ning nad saavad ise valida, kus ja millal milliste rakenduste puhul ressursse \u201el\u00f5igata\u201c, ja millistele podidele v\u00f5ib kogu CPU \u00f6\u00f6seks \u00fcle anda.<\/p>\n<h4>Metoodikad<\/h4>\n<p>\nPraegu ettev\u00f5ttes <i>on moes<\/i>, j\u00e4rgime DevOps- ja <i>SRE<\/i>-praktikaid. Kui ettev\u00f5ttes on 1000 mikroteenust, umbes 350 arendajat ja 15 administraatorit kogu infrastruktuuri jaoks, tuleb \u201eolla moes\u201c: nende \u201ebuzzwordide\u201c taga peitub terav vajadus k\u00f5ike automatiseerida ja administraatorid ei tohi olla protsesside pudelikael.<\/p>\n<p>Opsina me, pakume arendajatele erinevaid m\u00f5\u00f5dikuid ja juhtpaneele, mis on seotud teenuste vastuse kiirus ja t\u00f5rgetega.<\/p>\n<p>Kasutame j\u00e4rgmisi metoodikaid: <noindex><a rel=\"nofollow\" href=\"https:\/\/thenewstack.io\/monitoring-microservices-red-method\/\">RED<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"http:\/\/www.brendangregg.com\/usemethod.html\">USE<\/a><\/noindex> ja <noindex><a rel=\"nofollow\" href=\"https:\/\/medium.com\/forepaas\/distributed-monitoring-101-the-four-golden-signals-305bbbc33d35\">Kuldse Signaalid<\/a><\/noindex>, kombineerides need kokku. P\u00fc\u00fcame v\u00e4hendada juhtpaneelide arvu nii, et \u00fchest pilgust oleks selge, milline teenus on hetkel halvenemas (n\u00e4iteks vastuse koodid sekundis, vastuse aeg 99. protsentiili j\u00e4rgi) jne. Kui vajame uusi m\u00f5\u00f5dikuid \u00fcldistele juhtpaneelidele, siis joonistame need kohe ja lisame.<\/p>\n<p><i>Ma ei ole kuu aega graafikuid joonistanud. See on ilmselt hea m\u00e4rk: see t\u00e4hendab, et enamik \"soove\" on juba ellu viidud. Oli aegu, kus ma v\u00e4hemalt kord p\u00e4evas olen n\u00e4inud uue graafiku joonistamist.<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Kubernetes Domklik&#039;is: kuidas rahulikult magada, hallates 1000 mikroteenuse klastrit\" src=\"\/wp-content\/uploads\/2020\/08\/574f1b4d2be78fb779f1771bffac51dd.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"Kubernetes Domklik&#039;is: kuidas rahulikult magada, hallates 1000 mikroteenuse klastrit\" src=\"\/wp-content\/uploads\/2020\/08\/6ab2aa05f912839b14bdbcf84faaeb3a.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSaavutatud tulemus on v\u00e4\u00e4rtuslik, kuna n\u00fc\u00fcd k\u00e4ivad arendajad \u00fcsna harva administraatorite juures k\u00fcsimustega \"kust vaadata mingit m\u00f5\u00f5dikut\".<\/p>\n<p>Rakendamine <i>Teenuste Mesh<\/i> ei ole kaugel ja peaks k\u00f5igile elu oluliselt lihtsamaks tegema, Tools'i kolleegid on juba l\u00e4hedal \u00abterve inimese Istio\u00bb rakendamisele: iga HTTP(s) p\u00e4ringu eluts\u00fckkel on n\u00e4htav j\u00e4lgimises ja alati saab aru, \u00abmillisel etapil k\u00f5ik katki l\u00e4ks\u00bb teenuste vahelisel (ja mitte ainult) suhtlemisel. Liituge DomKliki uudiskirjaga. =)<\/p>\n<h2>Kubernetes'i infrastruktuuri tugi<\/h2>\n<p>\nAjalooliselt on meil kasutuses patcheeritud versioon <i>Kubespray<\/i> \u2014 Ansible'i roll Kubernetes'i juurutamiseks, laiendamiseks ja uuendamiseks. Mingil hetkel eemaldati p\u00f5hiharust tugi non-kubeadm installatsioonidele ning \u00fclemineku protsessi kubeadm'e peale ei pakutud v\u00e4lja. L\u00f5ppkokkuv\u00f5ttes tegi ettev\u00f5te Southbridge oma fork'i (kubeadm toe ja kiire kriitiliste probleemide lahendamisega). <\/p>\n<p>K\u00f5ikide k8s klastrite uuendamisprotsess v\u00e4lja n\u00e4eb selline:<\/p>\n<ul>\n<li>V\u00f5tame <i>Kubespray<\/i> Southbridge'ist, kontrollime meie haru vastu, mergime.<\/li>\n<li>Toome uuenduse v\u00e4lja <i>Stress<\/i>- \u00abKast\u00bb.<\/li>\n<li>Toome uuenduse v\u00e4lja \u00fchele nodile (Ansible'is on see \u00abserial: 1\u00bb) iga\u00fchele <i>Dev<\/i>- \u00abKast\u00bb.<\/li>\n<li>Uuendame <i>Prod<\/i> laup\u00e4eva \u00f5htul \u00fchele nodile.<\/li>\n<\/ul>\n<p>\nTulevikus on plaanid asendada <i>Kubespray<\/i> millegagi kiiremaga ja minna \u00fcle <i>kubeadm'ile.<\/i>.<\/p>\n<p>Kokku on meil kolm \u201eKubi\u201d: Stress, Dev ja Prod. Plaanime veel \u00fche k\u00e4ivitada (<i>kuum varu<\/i>) Prod-\u201eKubi\u201d teises andmekeskuses. <i>Stress<\/i> ja <i>Dev<\/i> Elame \u201evirtuaalides\u201d (oVirt Stress jaoks ja VMWare cloud Dev jaoks). <i>Prod<\/i>-\u201eKubi\u201d elab \u201epaljas rauas\u201d: need on \u00fchesugused nodid, millel on 32 CPU l\u00f5ime, 64-128 GB m\u00e4lu ja 300 GB SSD RAID 10 \u2014 kokku on neid 50. Kolm \u201e\u00f5hukest\u201d nodi on reserveeritud \u201emeistritele\u201d <i>Prod<\/i>-\u201eKubides\u201d: 16 GB m\u00e4lu, 12 CPU l\u00f5ime.<\/p>\n<p>M\u00fc\u00fcgi puhul eelistame kasutada \u201epaljast rauast\u201d ja v\u00e4ltida liigseid kihte nagu <i>OpenStack<\/i>: me ei vaja \u201em\u00fcrarikkaid naabreid\u201d ja CPU <i>aeg varastama<\/i>. Ja keerukus haldamine suureneb umbes kaks korda juhul, kui kasutatakse OpenStacki enda majas.<\/p>\n<p>CI\/CD \u201eKubi\u201d ja teiste infrastruktuuri komponentide jaoks kasutame eraldi GIT-serverit, Helm 3 (\u00fcleminek Helm 2-lt oli \u00fcsna valus, kuid oleme v\u00e4ga rahul valikuga <i>aatomiline<\/i>), Jenkins, Ansible ja Docker. Armastame feature-oksi ja juurutamist erinevatesse keskkondadesse \u00fchest repost.<\/p>\n<h3>Kokkuv\u00f5te<\/h3>\n<p><img decoding=\"async\" alt=\"Kubernetes Domklik&#039;is: kuidas rahulikult magada, hallates 1000 mikroteenuse klastrit\" src=\"\/wp-content\/uploads\/2020\/08\/34ddcd1f275c63c1ad821218d16b5abb.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nNii paistab, \u00fcldiselt, ettev\u00f5ttes DomKlik, DevOpsi protsess t\u00f6\u00f6inseneri vaatepunktist. Artikkel osutus v\u00e4hem tehniliseks kui ootasin: seega j\u00e4lgige DomKli uudiseid Habrilt: tuleb rohkem \u201eh\u00e4das\u201d artikleid Kubernetesest ja mitte ainult.<br \/>\n<br \/>Allikas: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/domclick\/blog\/501122\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u0412\u0438\u043a\u0442\u043e\u0440 \u042f\u0433\u043e\u0444\u0430\u0440\u043e\u0432, \u0438 \u044f \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0441\u044c \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435\u043c Kubernetes-\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u0414\u043e\u043c\u041a\u043b\u0438\u043a \u0432 \u0434\u043e\u043b\u0436\u043d\u043e\u0441\u0442\u0438 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0432 \u043a\u043e\u043c\u0430\u043d\u0434\u0435 Ops (\u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u044f). \u042f \u0445\u043e\u0442\u0435\u043b \u0431\u044b \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043e\u0431 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435 \u043d\u0430\u0448\u0438\u0445 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432 Dev &lt;-&gt; Ops, \u043e\u0431 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044f\u0445 \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438 \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u0441\u0430\u043c\u044b\u0445 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 k8s-\u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043e\u0432 \u0432 \u0420\u043e\u0441\u0441\u0438\u0438, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043e DevOps\/SRE-\u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0430\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442 \u043d\u0430\u0448\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430. \u041a\u043e\u043c\u0430\u043d\u0434\u0430 Ops \u0412 \u043a\u043e\u043c\u0430\u043d\u0434\u0435 Ops [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":91200,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-91199","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u0412\u0438\u043a\u0442\u043e\u0440 \u042f\u0433\u043e\u0444\u0430\u0440\u043e\u0432, \u0438 \u044f \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0441\u044c \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435\u043c Kubernetes-\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u0414\u043e\u043c\u041a\u043b\u0438\u043a \u0432 \u0434\u043e\u043b\u0436\u043d\u043e\u0441\u0442\u0438 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0432 \u043a\u043e\u043c\u0430\u043d\u0434\u0435 Ops (\u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u044f). \u042f \u0445\u043e\u0442\u0435\u043b \u0431\u044b \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043e\u0431 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435 \u043d\u0430\u0448\u0438\u0445 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432 Dev Ops, \u043e\u0431 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044f\u0445 \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438 \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u0441\u0430\u043c\u044b\u0445 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 k8s-\u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043e\u0432 \u0432 \u0420\u043e\u0441\u0441\u0438\u0438, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043e DevOps\/SRE-\u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0430\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442 \u043d\u0430\u0448\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430. \u041a\u043e\u043c\u0430\u043d\u0434\u0430 Ops \u0412 \u043a\u043e\u043c\u0430\u043d\u0434\u0435 Ops\" \/>\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\/kubernetes-v-domklik-kak-spat-spokojno-upravlyaya-klasterom-na-1000-mikroservisov\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\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\udd47Kubernetes \u0432 \u0414\u043e\u043c\u041a\u043b\u0438\u043a: \u043a\u0430\u043a \u0441\u043f\u0430\u0442\u044c \u0441\u043f\u043e\u043a\u043e\u0439\u043d\u043e, \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044f \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043e\u043c \u043d\u0430 1000 \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u0412\u0438\u043a\u0442\u043e\u0440 \u042f\u0433\u043e\u0444\u0430\u0440\u043e\u0432, \u0438 \u044f \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0441\u044c \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435\u043c Kubernetes-\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u0414\u043e\u043c\u041a\u043b\u0438\u043a \u0432 \u0434\u043e\u043b\u0436\u043d\u043e\u0441\u0442\u0438 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0432 \u043a\u043e\u043c\u0430\u043d\u0434\u0435 Ops (\u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u044f). \u042f \u0445\u043e\u0442\u0435\u043b \u0431\u044b \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043e\u0431 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435 \u043d\u0430\u0448\u0438\u0445 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432 Dev Ops, \u043e\u0431 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044f\u0445 \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438 \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u0441\u0430\u043c\u044b\u0445 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 k8s-\u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043e\u0432 \u0432 \u0420\u043e\u0441\u0441\u0438\u0438, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043e DevOps\/SRE-\u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0430\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442 \u043d\u0430\u0448\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430. \u041a\u043e\u043c\u0430\u043d\u0434\u0430 Ops \u0412 \u043a\u043e\u043c\u0430\u043d\u0434\u0435 Ops\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/kubernetes-v-domklik-kak-spat-spokojno-upravlyaya-klasterom-na-1000-mikroservisov\" \/>\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=\"2020-08-09T23:42:03+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-08-09T23:42:03+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\udd47Kubernetes DomKlikis: kuidas rahulikult magada, hallates 1000 mikroteenusega klusterit | ProHoster","description":"Minu nimi on Viktor Yagofarov ja ma olen Kubernetes platvormide arendamisega seotud ettev\u00f5ttes Domklik tehnilise arenduse juhina Ops meeskonnas. Soovin r\u00e4\u00e4kida meie DevOps-protsesside korraldusest, \u00fche suurima k8s-klusteri kasutamise erip\u00e4rast Venemaal ning meie meeskonna rakendatavast DevOps\/SRE-praktikast. Ops meeskonnas.","canonical_url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/kubernetes-v-domklik-kak-spat-spokojno-upravlyaya-klasterom-na-1000-mikroservisov","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\udd47Kubernetes \u0432 \u0414\u043e\u043c\u041a\u043b\u0438\u043a: \u043a\u0430\u043a \u0441\u043f\u0430\u0442\u044c \u0441\u043f\u043e\u043a\u043e\u0439\u043d\u043e, \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044f \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043e\u043c \u043d\u0430 1000 \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 | ProHoster","og:description":"\u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u0412\u0438\u043a\u0442\u043e\u0440 \u042f\u0433\u043e\u0444\u0430\u0440\u043e\u0432, \u0438 \u044f \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0441\u044c \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435\u043c Kubernetes-\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 \u0414\u043e\u043c\u041a\u043b\u0438\u043a \u0432 \u0434\u043e\u043b\u0436\u043d\u043e\u0441\u0442\u0438 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0432 \u043a\u043e\u043c\u0430\u043d\u0434\u0435 Ops (\u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u044f). \u042f \u0445\u043e\u0442\u0435\u043b \u0431\u044b \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043e\u0431 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435 \u043d\u0430\u0448\u0438\u0445 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432 Dev Ops, \u043e\u0431 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u044f\u0445 \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438 \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u0441\u0430\u043c\u044b\u0445 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 k8s-\u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043e\u0432 \u0432 \u0420\u043e\u0441\u0441\u0438\u0438, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043e DevOps\/SRE-\u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0430\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442 \u043d\u0430\u0448\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0430. \u041a\u043e\u043c\u0430\u043d\u0434\u0430 Ops \u0412 \u043a\u043e\u043c\u0430\u043d\u0434\u0435 Ops","og:url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/kubernetes-v-domklik-kak-spat-spokojno-upravlyaya-klasterom-na-1000-mikroservisov","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":"2020-08-09T23:42:03+00:00","article:modified_time":"2020-08-09T23:42:03+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"91199","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":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 12:32:23","updated":"2022-09-28 06:43:59"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/91199","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=91199"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/91199\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media\/91200"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=91199"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=91199"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=91199"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}