{"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\/sv\/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: ett verktygssats med \u00f6ppen k\u00e4llkod f\u00f6r att f\u00f6renkla distributioner av Kubernetes och arbete i fysiskt isolerade lokala milj\u00f6er<\/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>Idag \u00e4r vi glada att meddela att Platform9 \u00f6ppnar k\u00e4llkoden f\u00f6r Klusterkit, en upps\u00e4ttning av tre verktyg, under Apache v2.0-licensen p\u00e5 GitHub.<\/p>\n<p><\/p>\n<p>V\u00e5ra kunder distribuerar programvara i privata datacenter som ofta inte \u00e4r anslutna till internet (av s\u00e4kerhetssk\u00e4l eller andra anledningar). Dessa stora f\u00f6retag vill dra nytta av Kubernetes och modernisera sina applikationer, samtidigt som de distribuerar dem i olika datacenter, som ofta saknar kontakt med omv\u00e4rlden. H\u00e4r kommer Klusterkit till hj\u00e4lp, vilket f\u00f6renklar distribution och hantering av K8s-kluster i fysiskt isolerade milj\u00f6er.<\/p>\n<p><\/p>\n<p>Klusterkit inkluderar tre oberoende verktyg som kan anv\u00e4ndas tillsammans eller separat f\u00f6r att hantera livscykeln f\u00f6r produktion av Kubernetes-kluster:<\/p>\n<p><\/p>\n<ol>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/kubernetes-sigs\/etcdadm\">etcdadm<\/a><\/noindex>, CLI f\u00f6r f\u00f6renklad hantering av etcd-kluster.<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/platform9\/nodeadm\">nodeadm<\/a><\/noindex>, CLI f\u00f6r administration av noder som kompletterar kubeadm och distribuerar de beroenden som kr\u00e4vs av kubeadm.<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/platform9\/cctl\">cctl<\/a><\/noindex>, ett verktyg f\u00f6r hantering av klusterlivscykeln, som anv\u00e4nder Cluster API fr\u00e5n Kubernetes-gemenskapen och anv\u00e4nder nodeadm och etcdadm f\u00f6r att enkelt distribuera och underh\u00e5lla h\u00f6g tillg\u00e4nglighet av Kubernetes-kluster i lokala och fysiskt isolerade milj\u00f6er.<\/li>\n<\/ol>\n<p><\/p>\n<p>Tillsammans utf\u00f6r dessa tre verktyg f\u00f6ljande uppgifter:<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<ul>\n<li>Enkel distribution och hantering av h\u00f6g tillg\u00e4nglighet etcd-kluster och Kubernetes-\u00f6vervakningspanel i fysiskt isolerade lokala milj\u00f6er via Cluster API.<\/li>\n<li>\u00c5terst\u00e4llning av kluster\u00f6vervakningspanelen efter ett fel med hj\u00e4lp av etcd-backup.<\/li>\n<li>Paketering av alla artefakter n\u00f6dv\u00e4ndiga f\u00f6r distribution av Kubernetes i fysiskt isolerade milj\u00f6er.<\/li>\n<\/ul>\n<p><\/p>\n<h3 id=\"vozmozhnosti-klusterkit\">Funktioner i Klusterkit<\/h3>\n<p><\/p>\n<ul>\n<li>St\u00f6d f\u00f6r flera masterservrar (HA-kluster K8s).<\/li>\n<li>Distribution och styrning av s\u00e4kra etcd-kluster.<\/li>\n<li>Arbete i fysiskt isolerade milj\u00f6er.<\/li>\n<li>St\u00f6d f\u00f6r sekventiell uppgradering och nedgradering.<\/li>\n<li>Flannel (vxlan) som CNI f\u00f6r backend; planer p\u00e5 att st\u00f6dja andra CNI.<\/li>\n<li>Reservdelning och \u00e5terst\u00e4llning av etcd-kluster efter kvorumf\u00f6rlust.<\/li>\n<li>Skydd av \u00f6vervakningspanelen mot bristande minneskapacitet och CPU-tid.<\/li>\n<\/ul>\n<p><\/p>\n<h3 id=\"arhitektura-resheniya-klusterkit\">Arkitektur f\u00f6r Klusterkit-l\u00f6sningen<\/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>F\u00f6r att s\u00e4kerst\u00e4lla redundans och enkelhet anv\u00e4nder Klusterkit en enda fil cctl-state.yaml f\u00f6r att lagra metadata f\u00f6r Kubernetes-kluster. Genom cctl CLI kan livscykeln f\u00f6r Kubernetes-klustret hanteras p\u00e5 vilken maskin som helst d\u00e4r denna tillst\u00e5ndsfil finns. Det kan vara operat\u00f6rens b\u00e4rbara dator eller vilken annan dator som helst som ing\u00e5r i Kubernetes-klustret.<\/p>\n<p><\/p>\n<p>Cctl implementerar och kallar fr\u00e5n upstream-gr\u00e4nssnittet cluster-api som ett bibliotek f\u00f6r CRUD-operationer p\u00e5 kluster. Den anv\u00e4nder <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/platform9\/ssh-provider\">ssh-provider<\/a><\/noindex>, en \u00f6ppen k\u00e4llkod cluster-api-leverant\u00f6r p\u00e5 \"bare metal\" fr\u00e5n Platform9, som i sin tur kallar etcdadm och nodeadm f\u00f6r att utf\u00f6ra operationer p\u00e5 klustret.<\/p>\n<p><\/p>\n<h3 id=\"kak-ispolzovat-klusterkit-i-ego-komponenty\">S\u00e5 h\u00e4r anv\u00e4nder du Klusterkit och dess komponenter:<\/h3>\n<p><\/p>\n<p>1 \u2013 N\u00e5got av de tre verktygen kan enkelt samlas in med kommandot 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 Dessa k\u00f6rbara filer kan sedan packas och kopieras till m\u00e5ldatorer d\u00e4r det h\u00f6gtillg\u00e4ngliga Kubernetes-klustret ska k\u00f6ras. Placera filerna nodeadm och etcdadm i versionskataloger:<\/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 Om det beh\u00f6vs att orkestrera Kubernetes-klustret lokalt, i en fysiskt isolerad milj\u00f6, kan n\u00f6dv\u00e4ndiga beroenden enkelt laddas ner i f\u00f6rv\u00e4g p\u00e5 en dator med internet\u00e5tkomst med hj\u00e4lp av nedladdningskommandot f\u00f6r nodeadm och etcdadm. Sedan kan de nedladdade elementen (dvs kubelet och kubelet-enhetsfilen f\u00f6r systemd, k\u00f6rbara CNI-filer, kubeadm-filen, alla containerbilder, inklusive Kubernetes, keepalived-bilden och systemd-filen, etcd-containern och motsvarande konfigurationsfiler) enkelt kopieras till fysiskt isolerade v\u00e4rdar tillsammans med cctl, nodeadm och etcdadm. (Detaljer finns i <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/platform9\/cctl\/wiki\">wiki<\/a><\/noindex>).<\/p>\n<p><\/p>\n<p>4 \u2013 N\u00e4r allt \u00e4r p\u00e5 plats kan du skapa det f\u00f6rsta Kubernetes-klustret med ett par kommandon:<\/p>\n<p><\/p>\n<p>\u2013 F\u00f6rst skapar du ett autentiseringsutf\u00f6rande f\u00f6r klustret.<\/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 Skapa sedan ett klusterobjekt. \u2013help listar de st\u00f6dja parametrarna.<\/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 Slutligen skapar du den f\u00f6rsta maskinen i klustret.<\/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>Mer dokumentation finns p\u00e5 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/platform9\/cctl\/\">GitHub<\/a><\/noindex>.<\/p>\n<p>K\u00e4lla: <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\/sv\/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=\"sv_SE\" \/>\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\/sv\/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: en upps\u00e4ttning verktyg med \u00f6ppen k\u00e4llkod f\u00f6r.","canonical_url":"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/klusterkit","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sv_SE","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\/sv\/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\/sv\/wp-json\/wp\/v2\/posts\/32283","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/comments?post=32283"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts\/32283\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media\/24101"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media?parent=32283"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/categories?post=32283"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/tags?post=32283"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}