KlusterKit. բաց կոդով գործիքակազմ՝ Kubernetes-ի տեղակայումը պարզեցնելու և ֆիզիկապես մեկուսացված ներքին միջավայրերում գործարկելու համար
Այսօր մենք ուրախ ենք տեղեկացնել, որ Platform9-ը բաց աղբյուր է ներկայացնում Klusterkit-ը՝ երեք գործիքներից բաղկացած փաթեթ, GitHub-ում Apache v2.0 լիցենզիայի ներքո:
Մեր հաճախորդները ծրագրային ապահովում են թողարկում մասնավոր տվյալների կենտրոններում, որոնք հաճախ միացված չեն ինտերնետին (անվտանգության կամ այլ պատճառներով): Այս խոշոր ընկերությունները ցանկանում են օգտվել Kubernetes-ի առավելություններից և արդիականացնել իրենց հավելվածները և միևնույն ժամանակ դրանք տարածել տարբեր տվյալների կենտրոններում, որոնք հաճախ կապված չեն արտաքին աշխարհի հետ: Այստեղ է գալիս Klusterkit-ը, ինչը հեշտացնում է K8s կլաստերների տրամադրումն ու կառավարումը ֆիզիկապես մեկուսացված միջավայրերում:
Klusterkit-ը ներառում է երեք անկախ գործիքներ, որոնք կարող են օգտագործվել միասին կամ առանձին՝ կառավարելու Kubernetes արտադրական կլաստերի կյանքի ցիկլը.
etcdadm, CLI պարզեցված etcd կլաստերի կառավարման համար:
nodeadm, CLI հանգույցի կառավարման համար, որը ընդլայնում է kubeadm-ը և տեղակայում kubeadm-ի համար անհրաժեշտ կախվածությունները։
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-ը օգտագործում է մեկ 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 ֆայլերը տարբերակների գրացուցակներում.
3 – Եթե Ձեզ անհրաժեշտ է կազմակերպել Kubernetes կլաստերը տեղական մակարդակում, ֆիզիկապես մեկուսացված միջավայրում, անհրաժեշտ կախվածությունները կարող են հեշտությամբ ներբեռնվել նախօրոք ինտերնետ հասանելիությամբ համակարգչում՝ օգտագործելով nodeadm և etcdadm ներբեռնման հրամանը: Այնուհետև ներբեռնված տարրերը (այսինքն՝ kubelet և kubelet միավոր ֆայլը systemd-ի համար, CNI գործարկվող ֆայլերը, kubeadm ֆայլը, բոլոր կոնտեյների պատկերները, ներառյալ Kubernetes-ը, keepalived պատկերը և systemd ֆայլը, etcd կոնտեյների պատկերը և համապատասխան կազմաձևման ֆայլերը) կարող են հեշտությամբ պատճենվել ֆիզիկապես մեկուսացված հոստերերի երկայնքով: cctl-ով, nodeadm-ով և etcdadm-ով: (Տես մանրամասները Վիքիփեդիա, ազատ հանրագիտարան).
4 – Երբ ամեն ինչ իր տեղում է, դուք կարող եք ստեղծել առաջին Kubernetes կլաստերը մի քանի հրամաններով.