{"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\/ro\/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: un set de instrumente cu surs\u0103 deschis\u0103 pentru simplificarea desf\u0103\u0219ur\u0103rii Kubernetes \u0219i a func\u021bion\u0103rii \u00een medii locale fizic izolate<\/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>Ast\u0103zi anun\u021b\u0103m cu bucurie c\u0103 Platform9 deschide codurile surs\u0103 ale Klusterkit, un set format din trei instrumente, sub licen\u021ba Apache v2.0 pe GitHub.<\/p>\n<p><\/p>\n<p>Clien\u021bii no\u0219tri desf\u0103\u0219oar\u0103 software \u00een centre de date private, care adesea nu sunt conectate la internet (din motive de securitate sau din alte motive). Aceste mari companii doresc s\u0103 beneficieze de avantajele Kubernetes \u0219i s\u0103 \u00ee\u0219i modernizeze aplica\u021biile, desf\u0103\u0219ur\u00e2ndu-le \u00een diferite centre de date, care nu au adesea conexiune cu lumea exterioar\u0103. \u0218i aici intervine Klusterkit, care simplific\u0103 livrarea \u0219i gestionarea clusterelor K8s \u00een medii fizic izolate.<\/p>\n<p><\/p>\n<p>Klusterkit include trei instrumente independente, care pot fi utilizate \u00eempreun\u0103 sau separat pentru gestionarea ciclului de via\u021b\u0103 al unui cluster Kubernetes \u00een produc\u021bie:<\/p>\n<p><\/p>\n<ol>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes-sigs\/etcdadm\">etcdadm<\/a><\/noindex>, CLI pentru gestionarea simplificat\u0103 a clusterului etcd.<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/platform9\/nodeadm\">nodeadm<\/a><\/noindex>, CLI pentru administrarea nodurilor, care completeaz\u0103 kubeadm \u0219i desf\u0103\u0219oar\u0103 dependen\u021bele necesare kubeadm.<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/platform9\/cctl\">cctl<\/a><\/noindex>, un instrument de gestionare a ciclului de via\u021b\u0103 al clusterului, care accept\u0103 Cluster API din comunitatea Kubernetes \u0219i utilizeaz\u0103 nodeadm \u0219i etcdadm pentru a livra \u0219i men\u021bine f\u0103r\u0103 probleme clustere Kubernetes cu disponibilitate ridicat\u0103 \u00een medii locale, inclusiv fizic izolate.<\/li>\n<\/ol>\n<p><\/p>\n<p>\u00cempreun\u0103, aceste trei instrumente \u00eendeplinesc urm\u0103toarele sarcini:<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<ul>\n<li>Desf\u0103\u0219urarea \u0219i gestionarea simpl\u0103 a unui cluster etcd cu disponibilitate ridicat\u0103 \u0219i a panoului de control Kubernetes \u00een medii fizic izolate prin Cluster API.<\/li>\n<li>Restaurarea panoului de control al clusterului dup\u0103 o defec\u021biune cu ajutorul unui backup etcd.<\/li>\n<li>Ambalarea tuturor artefactelor necesare pentru desf\u0103\u0219urarea Kubernetes \u00een medii fizic izolate.<\/li>\n<\/ul>\n<p><\/p>\n<h3 id=\"vozmozhnosti-klusterkit\">Func\u021bionalit\u0103\u021bile Klusterkit<\/h3>\n<p><\/p>\n<ul>\n<li>Suport pentru mai multe mastere (cluster K8s HA).<\/li>\n<li>Desf\u0103\u0219urarea clusterelor etcd protejate \u0219i gestionarea lor.<\/li>\n<li>Func\u021bionare \u00een medii fizic izolate.<\/li>\n<li>Suport pentru actualiz\u0103ri \u0219i reveniri secven\u021biale.<\/li>\n<li>Flannel (vxlan) ca CNI pentru backend; planificat\u0103 suportarea altor CNI.<\/li>\n<li>Rezervare \u0219i restaurare a clusterelor etcd dup\u0103 pierderea cvorumului.<\/li>\n<li>Protejarea panoului de control \u00eempotriva lipsei de memorie \u0219i timp CPU.<\/li>\n<\/ul>\n<p><\/p>\n<h3 id=\"arhitektura-resheniya-klusterkit\">Arhitectura solu\u021biei 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>Pentru redundan\u021b\u0103 \u0219i simplitate, Klusterkit utilizeaz\u0103 un singur fi\u0219ier cctl-state.yaml pentru a stoca metadatele cluster-ului Kubernetes. Prin cctl CLI, se poate gestiona ciclul de via\u021b\u0103 al cluster-ului Kubernetes pe orice ma\u0219in\u0103 care dispune de acest fi\u0219ier de stare. Poate fi un laptop al operatorului sau orice alt computer care face parte din cluster-ul Kubernetes.<\/p>\n<p><\/p>\n<p>CCTL implementeaz\u0103 \u0219i invoc\u0103 din upstream interfa\u021ba cluster-api ca o bibliotec\u0103 de opera\u021bii CRUD pentru clustere. Acesta folose\u0219te <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/platform9\/ssh-provider\">ssh-provider<\/a><\/noindex>, un furnizor cluster-api open-source pe \u201ehardware brut\u201d de la Platform9, care la r\u00e2ndul s\u0103u, invoc\u0103 etcdadm \u0219i nodeadm pentru a efectua opera\u021bii pe cluster.<\/p>\n<p><\/p>\n<h3 id=\"kak-ispolzovat-klusterkit-i-ego-komponenty\">Cum s\u0103 folose\u0219ti Klusterkit \u0219i componentele sale:<\/h3>\n<p><\/p>\n<p>1 \u2013 Oricare dintre cele trei instrumente poate fi u\u0219or construit cu comanda 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 Apoi aceste fi\u0219iere executabile pot fi ambalate \u0219i copiate pe ma\u0219inile \u021bint\u0103, unde trebuie s\u0103 func\u021bioneze un cluster Kubernetes de \u00eenalt\u0103 disponibilitate. Plasa\u021bi fi\u0219ierele nodeadm \u0219i etcdadm \u00een directoarele versiunilor:<\/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 Dac\u0103 este necesar s\u0103 orchestrezi cluster-ul Kubernetes local, \u00eentr-un mediu fizic izolat, dependen\u021bele necesare pot fi u\u0219or desc\u0103rcate \u00een prealabil pe un computer cu acces la internet folosind comanda de desc\u0103rcare nodeadm \u0219i etcdadm. Apoi elementele desc\u0103rcate (adic\u0103 kubelet \u0219i fi\u0219ierul unit kubelet pentru systemd, fi\u0219ierele executabile CNI, fi\u0219ierul kubeadm, toate imaginile containerelor, inclusiv Kubernetes, imaginea keepalived \u0219i fi\u0219ierul systemd, imaginea containerului etcd \u0219i fi\u0219ierele de configurare corespunz\u0103toare) pot fi u\u0219or copiate pe gazdele fizic izolate, \u00eempreun\u0103 cu cctl, nodeadm \u0219i etcdadm. (Detalii \u00een <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/platform9\/cctl\/wiki\">wiki<\/a><\/noindex>).<\/p>\n<p><\/p>\n<p>4 \u2013 C\u00e2nd totul este la locul s\u0103u, primul cluster Kubernetes poate fi creat folosind c\u00e2teva comenzi:<\/p>\n<p><\/p>\n<p>\u2013 Mai \u00eent\u00e2i, creeaz\u0103 acreditivele pentru cluster.<\/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 Apoi creeaz\u0103 obiectul cluster-ului. \u2013help invoc\u0103 lista parametrilor accepta\u021bi.<\/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 \u00cen cele din urm\u0103, creeaz\u0103 prima ma\u0219in\u0103 \u00een cluster.<\/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>Pentru mai multe documenta\u021bii, consulta\u021bi <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/platform9\/cctl\/\">GitHub<\/a><\/noindex>.<\/p>\n<p>Sursa: <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.2.1 - 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\/ro\/blog\/administrirovanie\/klusterkit\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"ro_RO\" \/>\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\/ro\/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: un set de instrumente open-source pentru.","canonical_url":"https:\/\/prohoster.info\/ro\/blog\/administrirovanie\/klusterkit","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"ro_RO","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\/ro\/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\/ro\/wp-json\/wp\/v2\/posts\/32283","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/comments?post=32283"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/posts\/32283\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media\/24101"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/media?parent=32283"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/categories?post=32283"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/ro\/wp-json\/wp\/v2\/tags?post=32283"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}