{"id":32283,"date":"2019-10-31T21:46:07","date_gmt":"2019-10-31T18:46:07","guid":{"rendered":"https:\/\/prohoster.info\/blog\/klusterkit\/"},"modified":"2019-10-31T21:46:07","modified_gmt":"2019-10-31T18:46:07","slug":"klusterkit","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sl\/blog\/administrirovanie\/klusterkit","title":{"rendered":"KlusterKit","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<h2 id=\"klusterkit-nabor-instrumentov-s-otkrytym-ishodnym-kodom-dlya-uproscheniya-deploev-kubernetes-i-raboty-v-fizicheski-izolirovannyh-lokalnyh-sredah\">KlusterKit: nabor orudiy s otkrytym istochnikom dlya uproshcheniya deployev Kubernetes i raboty v fizicheski izolirovannykh lokal'nykh sredakh<\/h2>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"KlusterKit\" src=\"\/wp-content\/uploads\/2019\/04\/52d94ced35948048c526188d866d71ae.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Segodnya my s radost'yu ob'yavlyaem, chto Platform9 otkryvaet istochniki Klusterkit, nabora iz trekh orudiy, po l\u0438\u0446enz\u0438\u0438 Apache v2.0 na GitHub.<\/p>\n<p><\/p>\n<p>Nashi klienty vykatyvayut PO v chastnykh data-tsentrah, kotorye chasto ne podklyucheny k internetu (po sobrazheniyam bezopasnosti ili po drugym prichinam). Eti krupnye kompanii khotyat ispol'zovat' preimushchestva Kubernetes i modernizirovat' svoi prilozheniya i pri etom vykatyvat' ikh v raznykh data-tsentrah, u kotorykh nonre chasto net svyazi s vneshnim mir\u043e\u043c. I tut na pomoshch' prikhodit Klusterkit, kotoryy uproshchaet postavku i upravlenie klasterami K8s v fizicheski izolirovannykh sredakh.<\/p>\n<p><\/p>\n<p>V Klusterkit vkhodit tri nezavisimmikh instrumenta, kotorye mozhno ispol'zovat' vmeste ili po otdel'nosti dlya upravleniya zhiznennym tsiklom production-klastera Kubernetes:<\/p>\n<p><\/p>\n<ol>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes-sigs\/etcdadm\">etcdadm<\/a><\/noindex>, CLI dlya uproshchennogo upravleniya klastrom etcd.<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/platform9\/nodeadm\">nodeadm<\/a><\/noindex>, CLI dlya administrirovaniya nod, kotoryy dopolnyayet kubeadm i razvertyvayet zavisimosti, nuzhnye kubeadm.<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/platform9\/cctl\">cctl<\/a><\/noindex>, instrument upravleniya zhiznennym tsiklom klastera, kotoryy prinimat Cluster API iz soobshchestva Kubernetes i ispol'zuet nodeadm i etcdadm, chtoby bez lishnikh khlopot postavlyat' i podderzhivat' vysokodostupnye klastery Kubernetes v lokal'nykh i v tom chisle fizicheski izolirovannykh sredakh.<\/li>\n<\/ol>\n<p><\/p>\n<p>VMeste eti tri instrumenta vypolnyayut sleduyushchie zadachi:<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<ul>\n<li>Prostaya postavka i upravlenie vysokodostupnym klasterom etcd i panel'yu upravleniya Kubernetes v fizicheski izolirovannykh lokal'nykh sredakh cherez Cluster API.<\/li>\n<li>Vosstanovlenie panely upravleniya klastera posle sboya s pomoshch'yu byekapa etcd.<\/li>\n<li>Upakovka vsekh artefaktov, nuzhnykh dlya postavki Kubernetes, v fizicheski izolirovannykh sredakh.<\/li>\n<\/ul>\n<p><\/p>\n<h3 id=\"vozmozhnosti-klusterkit\">Vozmozhnosti Klusterkit<\/h3>\n<p><\/p>\n<ul>\n<li>Podderzhka neskol'kikh masterov (HA-klaster K8s).<\/li>\n<li>Postavka zashchishchennykh klasterov etcd i upravlenie nimi.<\/li>\n<li>Rabota v fizicheski izolirovannykh sredakh.<\/li>\n<li>Podderzhka posledovatel'nogo obnovleniya i otkata.<\/li>\n<li>Flannel (vxlan) v kachestve CNI dlya bekenda; v planakh podderzhka drugikh CNI.<\/li>\n<li>Rezervirovanie i vosstanovlenie etcd-klasterov posle poteri kvoruma.<\/li>\n<li>Zashchita panely upravleniya ot nekhvatki pamyati i vremeni TsP.<\/li>\n<\/ul>\n<p><\/p>\n<h3 id=\"arhitektura-resheniya-klusterkit\">Arkhitekturnye resheniya Klusterkit<\/h3>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/5y\/xo\/lv\/5yxolv8yt1frmyxan5lmuji_ego.jpeg\"><img decoding=\"async\" alt=\"KlusterKit\" src=\"\/wp-content\/uploads\/2019\/04\/047c51df33c20b7d97c489d050d801a2.png\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>Za visoko dostupnost in enostavnost Klusterkit uporablja en sam datoteko cctl-state.yaml za shranjevanje metapodatkov Kubernetes klastr. Z uporabo cctl CLI je mogo\u010de upravljati \u017eivljenjski cikel Kubernetes klastr na katerikoli napravi, kjer je ta datoteka stanja. To je lahko prenosni ra\u010dunalnik operaterja ali katerikoli drug ra\u010dunalnik, ki je del Kubernetes klastr.<\/p>\n<p><\/p>\n<p>Cctl implementira in kli\u010de iz upstream vmesnika cluster-api kot knji\u017enico CRUD operacij na klastrih. Uporablja <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/platform9\/ssh-provider\">ssh-provider<\/a><\/noindex>, dobavitelja cluster-api z odprto kodo na 'golem \u017eelezu' od Platform9, ki nato kli\u010de etcdadm in nodeadm za izvajanje operacij na klastru.<\/p>\n<p><\/p>\n<h3 id=\"kak-ispolzovat-klusterkit-i-ego-komponenty\">Kako uporabljati Klusterkit in njegove komponente:<\/h3>\n<p><\/p>\n<p>1 \u2013 Katerokoli od treh orodij je mogo\u010de enostavno zgraditi s pomo\u010djo ukaza go get:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">go get -u github.com\/platform9\/cctl\n\ngo get -u github.com\/platform9\/nodeadm\n\ngo get -u github.com\/kubernetes-sigs\/etcdadm<\/code><\/pre>\n<p><\/p>\n<p>2 \u2013 Nato je mogo\u010de te izvr\u0161ljive datoteke pakirati in kopirati na ciljne naprave, kjer naj bi deloval visoko dostopen Kubernetes klastr. Datoteke nodeadm in etcdadm postavite v razli\u010dne mape:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">cp $GOPATH\/bin\/nodeadm \/var\/cache\/ssh-provider\/nodeadm\/\/\n\ncp $GOPATH\/bin\/etcdadm \/var\/cache\/ssh-provider\/etcdadm\/\/<\/code><\/pre>\n<p><\/p>\n<p>3 \u2013 \u010ce je potrebno orkestrirati Kubernetes klastr lokalno, v fizi\u010dno izoliranem okolju, je mogo\u010de potrebne odvisnosti enostavno prenesti vnaprej na ra\u010dunalniku z dostopom do interneta z ukazom za prenos nodeadm in etcdadm. Nato lahko prenesene elemente (tj. kubelet in enotno datoteko kubelet za systemd, izvr\u0161ljive datoteke CNI, datoteko kubeadm, vse slike vsebnikov, vklju\u010dno s Kubernetes, sliko keepalived in datoteko systemd, sliko vsebnika etcd in ustrezne konfiguracijske datoteke) enostavno kopiramo na fizi\u010dno izolirane gostitelje skupaj s cctl, nodeadm in etcdadm. (Podrobnosti si oglejte v <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/platform9\/cctl\/wiki\">wiki<\/a><\/noindex>).<\/p>\n<p><\/p>\n<p>4 \u2013 Ko je vse pripravljeno, lahko prvi Kubernetes klastr ustvarite z nekaj ukazi:<\/p>\n<p><\/p>\n<p>\u2013 Najprej ustvarite poverilnice za klastr.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">$GOPATH\/bin\/cctl create credential --user root --private-key ~\/ .ssh\/id_rsa<\/code><\/pre>\n<p><\/p>\n<p>\u2013 Nato ustvarite objekt klastr. \u2013help kli\u010de seznam podprtih parametrov.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">$GOPATH\/bin\/cctl create cluster --pod-network 192.168.0.0\/16 --service-network 192.169.0.0\/24<\/code><\/pre>\n<p><\/p>\n<p>\u2013 Na koncu ustvarite prvo napravo v klastru.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">$GOPATH\/bin\/cctl create machine --ip $MACHINE_IP --role master<\/code><\/pre>\n<p><\/p>\n<p>Ve\u010d dokumentacije preberite na <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/platform9\/cctl\/\">GitHub<\/a><\/noindex>.<\/p>\n<p>Izvor: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/southbridge\/blog\/449214\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>KlusterKit: \u043d\u0430\u0431\u043e\u0440 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c \u0434\u043b\u044f \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u0438\u044f \u0434\u0435\u043f\u043b\u043e\u0435\u0432 Kubernetes \u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0432 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438 \u0438\u0437\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u0440\u0435\u0434\u0430\u0445 \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u043c\u044b \u0441 \u0440\u0430\u0434\u043e\u0441\u0442\u044c\u044e \u043e\u0431\u044a\u044f\u0432\u043b\u044f\u0435\u043c, \u0447\u0442\u043e Platform9 \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u043a\u043e\u0434\u044b Klusterkit, \u043d\u0430\u0431\u043e\u0440\u0430 \u0438\u0437 \u0442\u0440\u0435\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432, \u043f\u043e \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0438 Apache v2.0 \u043d\u0430 GitHub. \u041d\u0430\u0448\u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u044b \u0432\u044b\u043a\u0430\u0442\u044b\u0432\u0430\u044e\u0442 \u041f\u041e \u0432 \u0447\u0430\u0441\u0442\u043d\u044b\u0445 \u0434\u0430\u0442\u0430-\u0446\u0435\u043d\u0442\u0440\u0430\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0447\u0430\u0441\u0442\u043e \u043d\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u044b \u043a \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0443 (\u043f\u043e \u0441\u043e\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u043c \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":24101,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-32283","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.4 - aioseo.com -->\n\t<meta name=\"description\" content=\"KlusterKit: \u043d\u0430\u0431\u043e\u0440 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c \u0434\u043b\u044f.\" \/>\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\/sl\/blog\/administrirovanie\/klusterkit\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"sl_SI\" \/>\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\udd47KlusterKit | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"KlusterKit: \u043d\u0430\u0431\u043e\u0440 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c \u0434\u043b\u044f.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sl\/blog\/administrirovanie\/klusterkit\" \/>\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-31T18:46:07+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:46:07+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\udd47KlusterKit | ProHoster","description":"KlusterKit: niz orodij z odprto kodo za.","canonical_url":"https:\/\/prohoster.info\/sl\/blog\/administrirovanie\/klusterkit","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sl_SI","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\udd47KlusterKit | ProHoster","og:description":"KlusterKit: \u043d\u0430\u0431\u043e\u0440 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c \u0434\u043b\u044f.","og:url":"https:\/\/prohoster.info\/sl\/blog\/administrirovanie\/klusterkit","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-31T18:46:07+00:00","article:modified_time":"2019-10-31T18:46:07+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"32283","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 10:07:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 03:02:06","updated":"2026-01-21 10:07:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/posts\/32283","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/comments?post=32283"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/posts\/32283\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/media\/24101"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/media?parent=32283"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/categories?post=32283"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/tags?post=32283"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}