KlusterKit

KlusterKit: Kubernetes-ийн байршуулалтыг хялбарчлах, бие махбодийн хувьд тусгаарлагдсан дотоод орчинд ажиллуулах нээлттэй эхийн хэрэгслийн хэрэгсэл.

KlusterKit

Өнөөдөр бид Platform9 нь GitHub дээрх Apache v2.0 лицензийн дагуу гурван хэрэглүүрийн иж бүрдэл болох Klusterkit-ийг нээлттэй эх үүсвэртэй болгож байгааг дуулгахад таатай байна.

Манай үйлчлүүлэгчид интернетэд холбогдоогүй (аюулгүй байдал болон бусад шалтгаанаар) хувийн мэдээллийн төвүүдэд програм хангамжийг нэвтрүүлдэг. Эдгээр томоохон компаниуд Kubernetes-ийн давуу талыг ашиглаж, програмуудаа шинэчлэхийн зэрэгцээ тэдгээрийг гадаад ертөнцтэй холбоогүй өөр өөр мэдээллийн төвүүдэд нэвтрүүлэхийг хүсч байна. Эндээс Klusterkit орж ирдэг бөгөөд энэ нь физикийн хувьд тусгаарлагдсан орчинд K8-ийн кластеруудыг хангах, удирдахад хялбар болгодог.

Klusterkit нь Kubernetes үйлдвэрлэлийн кластерын амьдралын мөчлөгийг удирдахад хамтад нь эсвэл тусад нь ашиглаж болох гурван бие даасан хэрэгслийг агуулдаг:

  1. etcdadm, хялбаршуулсан etcd кластерийн удирдлагад зориулсан CLI.
  2. nodeadm, kubeadm-г өргөтгөж, kubeadm-д шаардлагатай хамаарлыг байршуулдаг зангилааны удирдлагын CLI.
  3. cctl, Kubernetes нийгэмлэгээс Cluster API-г нэвтрүүлсэн кластерын амьдралын мөчлөгийн удирдлагын хэрэгсэл бөгөөд nodeadm болон etcdadm-ийг ашиглан өндөр боломжтой Kubernetes кластеруудыг газар дээр нь, тэр ч байтугай физикийн хувьд тусгаарлагдсан орчинд саадгүй хүргэж, хадгалах боломжтой.

Эдгээр гурван хэрэгсэл хамтдаа дараахь ажлуудыг гүйцэтгэдэг.

  • Cluster API-ээр дамжуулан бие махбодийн хувьд тусгаарлагдсан дотоод орчинд өндөр боломжтой etcd кластер болон Kubernetes хяналтын самбарыг хялбархан бүрдүүлж, удирдаарай.
  • etcd нөөцлөлтийг ашиглан бүтэлгүйтлийн дараа кластерын хяналтын самбарыг сэргээж байна.
  • Кубернетесийг бие махбодийн хувьд тусгаарлагдсан орчинд хүргэхэд шаардлагатай бүх олдворуудыг савлах.

Klusterkit-ийн онцлог

  • Олон мастер дэмжлэг (HA кластер K8s).
  • Аюулгүй гэх мэт кластеруудыг хүргэх, удирдах.
  • Бие махбодийн хувьд тусгаарлагдсан орчинд ажиллах.
  • Шинэчлэлт болон буцаалтыг дэмждэг.
  • Flannel (vxlan) нь арын хэсэгт зориулсан CNI; Бусад CNI-г дэмжих төлөвлөгөө бий.
  • Чуулга алдсаны дараа etcd кластеруудыг нөөцлөх, сэргээх.
  • Хяналтын самбарыг санах ой болон CPU-ийн хугацаа дуусахаас хамгаална.

Klusterkit шийдлийн архитектур

KlusterKit

Гэмтлийг тэсвэрлэх чадвар, энгийн байдлын үүднээс Klusterkit нь Kubernetes кластерын мета өгөгдлийг хадгалахын тулд нэг cctl-state.yaml файлыг ашигладаг. Cctl CLI-ээр дамжуулан та энэ төлөвийн файлтай ямар ч машин дээрх Kubernetes кластерын амьдралын мөчлөгийг удирдах боломжтой. Энэ нь операторын зөөврийн компьютер эсвэл Kubernetes кластерт багтдаг бусад компьютер байж болно.

Cctl нь кластер дээрх CRUD үйлдлүүдийн номын сан болгон дээд урсгалаас cluster-api интерфейсийг хэрэгжүүлж, дууддаг. Тэр ашигладаг ssh үйлчилгээ үзүүлэгч, Platform9-ийн нээлттэй эхийн нүцгэн металл кластер-api үйлчилгээ үзүүлэгч бөгөөд энэ нь эргээд кластер дээр үйлдлүүдийг гүйцэтгэхийн тулд 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 – Хэрэв та Кубернетес кластерыг орон нутагт, физикийн хувьд тусгаарлагдсан орчинд зохион байгуулах шаардлагатай бол nodeadm болон etcdadm татаж авах командыг ашиглан шаардлагатай хамаарлыг интернетэд нэвтрэх боломжтой компьютер дээр хялбархан татаж авах боломжтой. Дараа нь татаж авсан зүйлсийг (жишээ нь: systemd-д зориулсан kubelet болон kubelet нэгж файл, CNI-ийн гүйцэтгэгдэх файлууд, kubeadm файл, Kubernetes зэрэг бүх контейнерийн зураг, хадгалсан зураг болон системийн файл гэх мэт контейнерийн зураг болон харгалзах тохиргооны файлууд) бие махбодийн хувьд тусгаарлагдсан хостууд руу хялбархан хуулж болно. cctl, nodeadm болон etcdadm-тай. (Дэлгэрэнгүйг хэсгээс үзнэ үү вики).

4 – Бүх зүйл бэлэн болмогц та хэд хэдэн тушаалын тусламжтайгаар анхны Kubernetes кластер үүсгэж болно:

– Эхлээд кластерт итгэмжлэл үүсгэ.

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

– Дараа нь кластер объект үүсгэнэ. -help нь дэмжигдсэн сонголтуудын жагсаалтыг гаргана.

$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.

Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх