KlusterKit

KlusterKit. բաց կոդով գործիքակազմ՝ Kubernetes-ի տեղակայումը պարզեցնելու և ֆիզիկապես մեկուսացված ներքին միջավայրերում գործարկելու համար

KlusterKit

Այսօր մենք ուրախ ենք տեղեկացնել, որ Platform9-ը բաց աղբյուր է ներկայացնում Klusterkit-ը՝ երեք գործիքներից բաղկացած փաթեթ, GitHub-ում Apache v2.0 լիցենզիայի ներքո:

Մեր հաճախորդները ծրագրային ապահովում են թողարկում մասնավոր տվյալների կենտրոններում, որոնք հաճախ միացված չեն ինտերնետին (անվտանգության կամ այլ պատճառներով): Այս խոշոր ընկերությունները ցանկանում են օգտվել Kubernetes-ի առավելություններից և արդիականացնել իրենց հավելվածները և միևնույն ժամանակ դրանք տարածել տարբեր տվյալների կենտրոններում, որոնք հաճախ կապված չեն արտաքին աշխարհի հետ: Այստեղ է գալիս Klusterkit-ը, ինչը հեշտացնում է K8s կլաստերների տրամադրումն ու կառավարումը ֆիզիկապես մեկուսացված միջավայրերում:

Klusterkit-ը ներառում է երեք անկախ գործիքներ, որոնք կարող են օգտագործվել միասին կամ առանձին՝ կառավարելու Kubernetes արտադրական կլաստերի կյանքի ցիկլը.

  1. etcdadm, CLI պարզեցված etcd կլաստերի կառավարման համար:
  2. nodeadm, CLI հանգույցի կառավարման համար, որը ընդլայնում է kubeadm-ը և տեղակայում kubeadm-ի համար անհրաժեշտ կախվածությունները։
  3. cctl, կլաստերի կյանքի ցիկլի կառավարման գործիք, որն ընդունում է Կլաստերի API-ն Kubernetes համայնքից և օգտագործում է nodeadm և etcdadm՝ անխափան կերպով մատուցելու և պահպանելու բարձր հասանելի Kubernetes կլաստերները ներքին և նույնիսկ ֆիզիկապես մեկուսացված միջավայրերում:

Այս երեք գործիքները միասին կատարում են հետևյալ խնդիրները.

  • Հեշտությամբ տրամադրեք և կառավարեք բարձր հասանելի etcd կլաստերը և Kubernetes-ի վահանակը ֆիզիկապես մեկուսացված ներքին միջավայրերում Cluster API-ի միջոցով:
  • Կլաստերի կառավարման վահանակի վերականգնում ձախողումից հետո՝ օգտագործելով etcd կրկնօրինակում:
  • Փաթեթավորում բոլոր արտեֆակտները, որոնք անհրաժեշտ են Kubernetes-ը ֆիզիկապես մեկուսացված միջավայր հասցնելու համար:

Klusterkit-ի առանձնահատկությունները

  • Multi-master աջակցություն (HA կլաստեր K8s):
  • Անվտանգ etcd կլաստերների առաքում և կառավարում:
  • Աշխատել ֆիզիկապես մեկուսացված միջավայրում:
  • Աջակցում է շարժվող արդիականացումներին և հետադարձումներին:
  • Flannel (vxlan) որպես CNI backend-ի համար; Ծրագրեր կան աջակցել այլ CNI-ներին:
  • Քվորումի կորստից հետո etcd կլաստերների կրկնօրինակում և վերականգնում:
  • Պաշտպանում է կառավարման վահանակը հիշողության և պրոցեսորի ժամանակի սպառումից:

Klusterkit Solution Architecture

KlusterKit

Սխալների հանդուրժողականության և պարզության համար Klusterkit-ը օգտագործում է մեկ cctl-state.yaml ֆայլ՝ Kubernetes կլաստերի մետատվյալները պահելու համար: cctl CLI-ի միջոցով դուք կարող եք կառավարել Kubernetes կլաստերի կյանքի ցիկլը ցանկացած մեքենայի վրա, որն ունի այս վիճակի ֆայլը: Սա կարող է լինել օպերատորի նոութբուքը կամ ցանկացած այլ համակարգիչ, որը մտնում է Kubernetes կլաստերի մեջ:

Cctl-ն իրականացնում և կանչում է cluster-api ինտերֆեյսը վերին հոսանքով որպես գրադարան՝ CRUD գործողությունների կլաստերների վրա: Նա օգտագործում է ssh-մատակարար, բաց կոդով բաց մետաղական կլաստեր-api մատակարար՝ Platform9-ից, որն իր հերթին կանչում է etcdadm և nodeadm՝ կլաստերի վրա գործողություններ կատարելու համար։

Ինչպես օգտագործել Klusterkit-ը և դրա բաղադրիչները.

1 – Երեք գործիքներից որևէ մեկը հեշտությամբ կարելի է հավաքել go get հրամանով.

go get -u github.com/platform9/cctl

go get -u github.com/platform9/nodeadm

go get -u github.com/kubernetes-sigs/etcdadm

2 – Այս գործարկվողները կարող են այնուհետև փաթեթավորվել և պատճենվել թիրախային մեքենաներում, որտեղ պետք է գործարկվի բարձր հասանելի Kubernetes կլաստերը: Տեղադրեք nodeadm և etcdadm ֆայլերը տարբերակների գրացուցակներում.

cp $GOPATH/bin/nodeadm /var/cache/ssh-provider/nodeadm//

cp $GOPATH/bin/etcdadm /var/cache/ssh-provider/etcdadm//

3 – Եթե Ձեզ անհրաժեշտ է կազմակերպել Kubernetes կլաստերը տեղական մակարդակում, ֆիզիկապես մեկուսացված միջավայրում, անհրաժեշտ կախվածությունները կարող են հեշտությամբ ներբեռնվել նախօրոք ինտերնետ հասանելիությամբ համակարգչում՝ օգտագործելով nodeadm և etcdadm ներբեռնման հրամանը: Այնուհետև ներբեռնված տարրերը (այսինքն՝ kubelet և kubelet միավոր ֆայլը systemd-ի համար, CNI գործարկվող ֆայլերը, kubeadm ֆայլը, բոլոր կոնտեյների պատկերները, ներառյալ Kubernetes-ը, keepalived պատկերը և systemd ֆայլը, etcd կոնտեյների պատկերը և համապատասխան կազմաձևման ֆայլերը) կարող են հեշտությամբ պատճենվել ֆիզիկապես մեկուսացված հոստերերի երկայնքով: cctl-ով, nodeadm-ով և etcdadm-ով: (Տես մանրամասները Վիքիփեդիա, ազատ հանրագիտարան).

4 – Երբ ամեն ինչ իր տեղում է, դուք կարող եք ստեղծել առաջին Kubernetes կլաստերը մի քանի հրամաններով.

– Նախ ստեղծեք հավատարմագրեր կլաստերի համար:

$GOPATH/bin/cctl create credential --user root --private-key ~/.ssh/id_rsa

– Այնուհետև ստեղծեք կլաստերի օբյեկտ: - օգնությունը ցույց է տալիս աջակցվող ընտրանքների ցանկը:

$GOPATH/bin/cctl create cluster --pod-network 192.168.0.0/16 --service-network 192.169.0.0/24

– Վերջապես, ստեղծեք կլաստերի առաջին մեքենան:

$GOPATH/bin/cctl create machine --ip $MACHINE_IP --role master

Կարդացեք ավելի շատ փաստաթղթեր այստեղ GitHub.

Source: www.habr.com

Добавить комментарий