KlusterKit

KlusterKit: Usa ka bukas nga gigikanan nga toolkit aron mapasimple ang mga pag-deploy sa Kubernetes ug modagan sa pisikal nga nahimulag sa mga lugar nga palibot.

KlusterKit

Karon kami naghinam-hinam sa pagpahibalo nga ang Platform9 mao ang open sourcing Klusterkit, usa ka suite sa tulo ka mga himan, ubos sa Apache v2.0 nga lisensya sa GitHub.

Ang among mga kliyente naglunsad og software sa mga pribadong data center nga kasagaran dili konektado sa Internet (alang sa seguridad o uban pang mga rason). Gusto niining dagkong mga kompanya nga pahimuslan ang Kubernetes ug i-modernize ang ilang mga aplikasyon ug sa samang higayon i-roll kini sa lain-laing mga sentro sa datos, nga kasagaran dili konektado sa gawas nga kalibutan. Dinhi diin moabut ang Klusterkit, nga nagpasayon ​​sa paghatag ug pagdumala sa mga cluster sa K8 sa pisikal nga nahimulag nga mga palibot.

Ang Klusterkit naglakip sa tulo ka independente nga mga himan nga mahimong gamiton nga magkauban o magkalainlain aron pagdumala sa lifecycle sa usa ka Kubernetes production cluster:

  1. etcdadm, CLI para sa gipasimple etcd cluster management.
  2. nodeadm, usa ka CLI alang sa administrasyon sa node nga nagpalapad sa kubeadm ug nag-deploy sa mga dependency nga gikinahanglan sa kubeadm.
  3. cctl, usa ka gamit sa pagdumala sa siklo sa kinabuhi sa cluster nga nagsagop sa Cluster API gikan sa komunidad sa Kubernetes ug naggamit sa nodeadm ug etcdadm aron hapsay nga maghatod ug mamentinar ang anaa kaayo nga mga cluster sa Kubernetes sa on-premise ug bisan sa pisikal nga nahilain nga mga palibot.

Mag-uban, kining tulo ka mga himan naghimo sa mosunod nga mga buluhaton:

  • Sayon nga paghatag ug pagdumala sa usa ka daghan nga magamit etcd cluster ug Kubernetes dashboard sa pisikal nga nahimulag nga on-premise nga mga palibot pinaagi sa Cluster API.
  • Ibalik ang cluster control panel human sa usa ka kapakyasan gamit ang etcd backup.
  • Pag-package sa tanang artifact nga gikinahanglan aron mahatud ang mga Kubernetes ngadto sa pisikal nga nahilain nga mga palibot.

Mga bahin sa Klusterkit

  • Multi-master nga suporta (HA cluster K8s).
  • Paghatud ug pagdumala sa luwas nga etcd clusters.
  • Pagtrabaho sa pisikal nga nahimulag nga mga palibot.
  • Nagsuporta sa rolling upgrades ug rollbacks.
  • Flannel (vxlan) isip CNI alang sa backend; Adunay mga plano sa pagsuporta sa ubang mga CNI.
  • Pag-backup ug pagpasig-uli sa etcd clusters human sa pagkawala sa korum.
  • Gipanalipdan ang control panel gikan sa pagkahurot sa memorya ug oras sa CPU.

Arkitektura sa Klusterkit Solution

KlusterKit

Alang sa pagtugot sa sayup ug kayano, ang Klusterkit naggamit ug usa ka cctl-state.yaml nga file aron tipigan ang metadata sa cluster sa Kubernetes. Pinaagi sa cctl CLI mahimo nimong madumala ang lifecycle sa usa ka Kubernetes cluster sa bisan unsang makina nga adunay kini nga file sa estado. Mahimo kini nga laptop sa operator o bisan unsang computer nga bahin sa cluster sa Kubernetes.

Ang Cctl nagpatuman ug nagtawag sa cluster-api interface gikan sa upstream isip librarya para sa CRUD operations sa clusters. Iyang gigamit ssh-provider, usa ka open-source nga hubo nga metal cluster-api provider gikan sa Platform9, nga sa baylo nagtawag sa etcdadm ug nodeadm sa paghimo sa mga operasyon sa cluster.

Giunsa paggamit ang Klusterkit ug ang mga sangkap niini:

1 - Bisan unsa sa tulo nga mga himan dali nga makolekta gamit ang go get command:

go get -u github.com/platform9/cctl

go get -u github.com/platform9/nodeadm

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

2 – Kini nga mga executable mahimong ma-package ug makopya sa target nga mga makina diin ang labing magamit nga Kubernetes cluster kinahanglan nga modagan. Ibutang ang mga file sa nodeadm ug etcdadm sa mga direktoryo sa bersyon:

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

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

3 - Kung kinahanglan nimo nga i-orkestrate ang usa ka cluster sa Kubernetes sa lokal, sa usa ka pisikal nga nahimulag nga palibot, ang kinahanglan nga mga dependency dali nga ma-download nga daan sa usa ka kompyuter nga adunay access sa Internet gamit ang nodeadm ug etcdadm nga mando sa pag-download. Unya ang mga na-download nga mga butang (ie kubelet ug kubelet unit file para sa systemd, CNI executable files, kubeadm file, tanang container images lakip na ang Kubernetes, keepalived image ug systemd file, etcd container image ug katugbang nga configuration files) daling makopya ngadto sa physically isolate hosts. uban sa cctl, nodeadm ug etcdadm. (Tan-awa ang mga detalye sa wiki).

4 - Kung naa na ang tanan, mahimo nimong buhaton ang una nga cluster sa Kubernetes nga adunay pipila ka mga sugo:

- Una paghimo og mga kredensyal alang sa cluster.

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

– Dayon paghimo ug cluster object. – tabang nagdala sa usa ka lista sa gisuportahan nga mga kapilian.

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

– Sa kataposan, paghimo sa unang makina sa cluster.

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

Basaha ang dugang nga dokumentasyon sa GitHub.

Source: www.habr.com

Idugang sa usa ka comment