KlusterKit: avatud lähtekoodiga tööriistade komplekt, mis lihtsustab Kubernetes'i juurutamist ja töötamist füüsiliselt isoleeritud kohalikus keskkonnas

Täna on meil hea meel teatada, et Platform9 avaldab Klusterkit, kolme tööriista komplekti, lähtekoodid Apache v2.0 litsentsi alusel GitHubis.
Meie kliendid juurutavad tarkvara privaatsetes andmekeskustes, mis sageli ei ole ühendatud Internetiga (turvakaalutlustel või muudel põhjustel). Need suured ettevõtted soovivad kasutada Kubernetes'e eeliseid ja uuendada oma rakendusi, samal ajal juurutades neid erinevates andmekeskustes, mis sageli ei suhtle välismaailmaga. Siin tuleb appi Klusterkit, mis lihtsustab K8s klastrite kohaletoimetamise ja haldamise füüsiliselt isoleeritud keskkondades.
Klusterkit sisaldab kolme sõltumatut tööriista, mida saab kasutada koos või eraldi Kubernetes'e tootmisklastri elutsükli haldamiseks:
- , CLI, et lihtsustada etcd klastrihalduse protsesse.
- , CLI, et hallata sõlmi, mis täiendab kubeadm'i ja paigaldab sõltuvusi, mida kubeadm vajab.
- , klastrihalduse elutsükli tööriist, mis toetab Kubernetes'e kogukonna Cluster API't ja kasutab nodeadm'i ning etcdadm'i, et probleemideta pakkuda ja toetada kõrge kättesaadavusega Kubernetes'e klastreid kohalikus ja füüsiliselt isoleeritud keskkondades.
Koos täidavad need kolm tööriista järgmisi ülesandeid:
- Lihtne kõrge kättesaadavuse etcd klastrite ja Kubernetes'e halduspaneeli juurutamine füüsiliselt isoleeritud kohalikus keskkonnas Cluster API kaudu.
- Klastri halduspaneeli taastamine pärast rikkeid jne.
- Kogu Kubernetes'e juurutamiseks vajalikud artefaktid füüsiliselt isoleeritud keskkondades kokku pakitud.
Klusterkiti võimalused
- Mitme meistri tugi (HA-klauster K8s).
- Turvaliste etcd klastrite juurutamine ja haldamine.
- Töötamine füüsiliselt isoleeritud keskkondades.
- Järkjärgulise värskendamise ja tagasivõtmise tugi.
- Flannel (vxlan) CNI tagaks; plaanis on teiste CNI-de tugi.
- etcd klastrite varukoopia ja taastamine pärast kvoorumi kadumist.
- Halduspaneeli kaitsmine mälu ja CPU aja puuduse eest.
Klusterkiti lahenduse arhitektuur
Kliendi turvalisuse ja lihtsuse huvides kasutab Klusterkit ühte faili cctl-state.yaml Kubernetes klastrite metaandmete säilitamiseks. Kliendi CLI abil saab hallata Kubernetes klastri elutsükli igas masinas, kus see olekufail on olemas. See võib olla operaatori sülearvuti või mõni muu arvuti, mis kuulub Kubernetes klastrisse.
Cctl rakendab ja kutsub üles upstream cluster-api liidest kui CRUD operatsioonide teostamise raamatukogu klastrite jaoks. See kasutab , avatud lähtekoodiga cluster-api pakkujat 'paljas raua' jaoks Platform9-lt, mis omakorda kutsub jne aadm ja nodeadm üles klastrite operatsioonide teostamiseks.
Kuidas kasutada Klusterkit ja selle komponente:
1 – Ükskõik millist kolmest tööriistast saab hõlpsasti üles ehitada käsuga go get:
go get -u github.com/platform9/cctl
go get -u github.com/platform9/nodeadm
go get -u github.com/kubernetes-sigs/etcdadm2 – Seejärel saab need täidisefailid pakendada ja kopeerida sihtmasinatele, kus peab töötama kõrge kättesaadavusega Kubernetes klaster. Asetage failid nodeadm ja etcdadm versioonikaustadessse:
cp $GOPATH/bin/nodeadm /var/cache/ssh-provider/nodeadm//
cp $GOPATH/bin/etcdadm /var/cache/ssh-provider/etcdadm//3 – Kui on vaja orbiidi Kubernetes klaster kohapeal füüsiliselt isoleeritud keskkonnas, saab vajalikud sõltuvused hõlpsasti eelnevalt alla laadida internetiühendusega arvutisse nodeadm ja etcdadm laadimisprotsessi käiguga. Siis saab allalaaditud elemendid (st kubelet ja kubeleti unit-fail systemd jaoks, täidisefailid CNI jaoks, kubeadm fail, kõik konteineripildid, sealhulgas Kubernetes, keepalived pilt ja systemd fail, etcd konteineripilt ja vastavad konfiguratsioonifailid) hõlpsasti kopeerida füüsiliselt isoleeritud hostidele koos cctl, nodeadm ja etcdadm-iga. (Detailid vt ).
4 – Kui kõik on paigas, saab esialgse Kubernetes klastrit luua paaris käsus:
– Esiteks looge klastrikohustused.
$GOPATH/bin/cctl create credential --user root --private-key ~/ .ssh/id_rsa– Seejärel looge klastrite objekt. –help kutsub üles toetavaid parameetreid.
$GOPATH/bin/cctl create cluster --pod-network 192.168.0.0/16 --service-network 192.169.0.0/24– Lõpuks looge klastris esimene masin.
$GOPATH/bin/cctl create machine --ip $MACHINE_IP --role masterRohkem dokumentatsiooni leiate aadressilt .
Allikas: habr.com
