KlusterKit: nyílt forráskódú eszközkészlet a Kubernetes telepítések egyszerűsítésére és fizikailag elszigetelt helyi környezetekben való működtetésére

Ma örömmel jelentjük be, hogy a Platform9 megnyitja a Klusterkit, három eszközből álló szett nyílt forráskódját, az Apache v2.0 licenc alatt a GitHub-on.
Ügyfeleink olyan magán adatközpontokban telepítik a szoftvereket, amelyek gyakran nem csatlakoznak az internethez (biztonsági okokból vagy más okok miatt). Ezek a nagyvállalatok szeretnék kihasználni a Kubernetes előnyeit, modernizálni alkalmazásaikat, miközben különböző adatközpontokban telepítik őket, amelyek gyakran nem rendelkeznek külső kapcsolattal. Itt jön a Klusterkit a segítségükre, amely egyszerűsíti a Kubernetes klaszterek telepítését és kezelését fizikailag elszigetelt környezetekben.
A Klusterkit három független eszközt tartalmaz, amelyeket együtt vagy külön-külön használhatunk a production Kubernetes klaszter életciklusának kezelésére:
- , CLI az etcd klaszter egyszerűsített kezelésére.
- , CLI a node-ok adminisztrálására, amely kiegészíti a kubeadm-ot és telepíti a kubeadm-hoz szükséges függőségeket.
- , a klaszter életciklus kezelésére szolgáló eszköz, amely a Kubernetes közösség Cluster API-ját használja, és a nodeadm-ot és etcdadm-ot alkalmazva problémamentesen biztosítja és tartja fenn a nagy rendelkezésre állású Kubernetes klasztereket helyi, beleértve a fizikailag elszigetelt környezetekben.
E három eszköz együtt a következő feladatokat végzi:
- Egyszerű telepítés és a Kubernetes kezelőfelület magas rendelkezésre állású klaszterének kezelése fizikailag elszigetelt helyi környezetekben a Cluster API-n keresztül.
- A klaszter kezelőfelület helyreállítása hiba esetén az etcd biztonsági mentése segítségével.
- Minden szükséges artefaktum csomagolása a Kubernetes telepítéséhez fizikailag elszigetelt környezetekben.
A Klusterkit lehetőségei
- Több gazda támogatása (HA K8s klaszter).
- Védett etcd klaszterek telepítése és kezelése.
- Működés fizikailag elszigetelt környezetekben.
- Fokozatos frissítések és visszagörgetések támogatása.
- Flannel (vxlan) mint CNI backend; más CNI-k támogatása tervezett.
- Az etcd klaszterek quorum elvesztése utáni biztonsági mentése és helyreállítása.
- A kezelőfelület védelme memória- és CPU-időhiány ellen.
A Klusterkit megoldás architektúrája
A megbízhatóság és egyszerűség érdekében a Klusterkit egyetlen cctl-state.yaml fájlt használ a Kubernetes klaszter metaadatainak tárolására. A cctl CLI-n keresztül bármely gépen kezelheti a Kubernetes klaszter életciklusát, ahol ez a fájl megtalálható. Ez lehet az operátor laptopja vagy bármely más számítógép, amely csatlakozik a Kubernetes klaszterhez.
A cctl megvalósítja és az upstream cluster-api interfészét hívja meg, mint a klaszterek CRUD műveleteihez szükséges könyvtárat. Használja , nyílt forráskódú cluster-api szolgáltató, amely a Platform9 „bare metal” megoldásán alapul, és amely saját maga hívja az etsdadm-t és a nodeadm-ot a klaszter műveleteinek végrehajtására.
A Klusterkit és alkotóelemeinek használata:
1 – Bármelyik három eszköz könnyen telepíthető a go get parancs használatával:
go get -u github.com/platform9/cctl
go get -u github.com/platform9/nodeadm
go get -u github.com/kubernetes-sigs/etcdadm2 – Ezután ezeket az végrehajtható fájlokat be lehet csomagolni és átmásolni a célgépekre, ahol a nagy rendelkezésre állású Kubernetes klaszternek működnie kell. Másolja a nodeadm és etcdadm fájlokat a verzió könyvtárakba:
cp $GOPATH/bin/nodeadm /var/cache/ssh-provider/nodeadm//
cp $GOPATH/bin/etcdadm /var/cache/ssh-provider/etcdadm//3 – Ha szüksége van a Kubernetes klaszter helyben, fizikailag elszigetelt környezetben történő vezérlésére, akkor a szükséges függőségek egyszerűen letölthetők egy internetelérhető számítógépre a nodeadm és etcdadm letöltő parancsával. Azután az letöltött elemeket (azaz kubelet és a kubelet unit fájl a systemd-hez, a CNI végrehajtható fájlok, kubeadm fájl, minden konténerkép, beleértve a Kubernetes-t, a keepalived képet és a systemd-fájlt, az etcd tároló képét és a megfelelő konfigurációs fájlokat) egyszerűen átmásolhatók a fizikailag elszigetelt hosztokra a cctl, nodeadm és etcdadm mellett. (Részletekért lásd a ).
4 – Amikor minden a helyén van, az első Kubernetes klasztert néhány parancs segítségével létrehozhatja:
– Először hozzon létre klaszterhitelesítő adatokat.
$GOPATH/bin/cctl create credential --user root --private-key ~/ .ssh/id_rsa– Ezután hozzon létre egy klaszter objektumot. –help megjeleníti a támogatott paraméterek listáját.
$GOPATH/bin/cctl create cluster --pod-network 192.168.0.0/16 --service-network 192.169.0.0/24– Végül hozzon létre egy első gépet a klaszterben.
$GOPATH/bin/cctl create machine --ip $MACHINE_IP --role masterTovábbi dokumentációt olvashat a .
Forrás: habr.com
