KlusterKit: He hāmeʻa kumu wehe e hoʻomaʻamaʻa i ka hoʻolaha ʻana o Kubernetes a holo i loko o nā wahi kaʻawale ma ka hale.
I kēia lā, hauʻoli mākou i ka hoʻolaha ʻana e wehe ana ʻo Platform9 iā Klusterkit, kahi hui o ʻekolu mau mea hana, ma lalo o ka laikini Apache v2.0 ma GitHub.
ʻO kā mākou mea kūʻai aku e hoʻopuka i nā polokalamu i nā kikowaena data pilikino i pili pinepine ʻole i ka Pūnaewele (no ka palekana a i ʻole nā kumu ʻē aʻe). Makemake kēia mau hui nui e hoʻohana i nā Kubernetes a hoʻololi i kā lākou mau noi a ma ka manawa like e ʻōwili iā lākou i waho i nā kikowaena data like ʻole, ʻaʻole i pili pinepine i ka honua o waho. ʻO kēia kahi i komo ai ʻo Klusterkit, e maʻalahi ai ka hoʻolako ʻana a me ka mālama ʻana i nā pūʻulu K8s i nā wahi kaʻawale kino.
Aia ʻo Klusterkit i ʻekolu mau mea hana kūʻokoʻa i hiki ke hoʻohana pū ʻia a ʻokoʻa paha no ka mālama ʻana i ke ola o kahi pūʻulu hana Kubernetes:
etcdadm, CLI no ka hoʻokele hui ʻana etcd maʻalahi.
nodeadm, he CLI no ka hoʻokele node e hoʻolōʻihi i ka kubeadm a kau i nā hilinaʻi e pono ai e kubeadm.
cctl, he mea hana hoʻokele ola pōʻaiapili puʻupuʻu e hoʻohana ana i ka Cluster API mai ke kaiāulu Kubernetes a hoʻohana i ka nodeadm a me etcdadm e hoʻopuka a mālama pono i nā pūʻulu Kubernetes i loaʻa loa i loko o ka hale a me nā wahi kaʻawale kino.
Hoʻohui pū ʻia kēia mau mea hana ʻekolu i kēia mau hana:
Hoʻolako maʻalahi a hoʻokele i kahi puʻupuʻu etcd hiki ke loaʻa a me ka dashboard Kubernetes ma nā wahi kaʻawale ma ke kahua ma o ka Cluster API.
Hoʻihoʻi hou i ka pūʻulu mana ma hope o ka hoʻohana ʻole ʻana i ka etcd backup.
Hoʻopili i nā mea hana a pau e pono ai e hoʻopuka i nā Kubernetes i loko o nā kaiapuni kaʻawale kino.
Nā hiʻohiʻona Klusterkit
Kākoʻo haku nui (HA cluster K8s).
Ka lawe ʻana a me ka mālama ʻana i nā pūʻulu etcd paʻa.
Ke hana nei ma nā wahi kaʻawale kino.
Kākoʻo i ka hoʻonui ʻana a me ka rollbacks.
Flannel (vxlan) e like me CNI no ka hope; Aia nā hoʻolālā e kākoʻo i nā CNI ʻē aʻe.
Hoʻihoʻi a hoʻihoʻi i nā pūʻulu etcd ma hope o ka nalowale o ka quorum.
Mālama i ka papa hoʻomalu mai ka pau ʻana o ka hoʻomanaʻo a me ka manawa CPU.
Klusterkit Solution Architecture
No ka hoʻomanawanui a me ka maʻalahi, hoʻohana ʻo Klusterkit i hoʻokahi faila cctl-state.yaml e mālama i nā metadata cluster Kubernetes. Ma o ka cctl CLI hiki iā ʻoe ke hoʻokele i ke ola o kahi pūʻulu Kubernetes ma kekahi mīkini i loaʻa kēia faila mokuʻāina. Hiki kēia i ka pona a ka mea hoʻohana a i ʻole kekahi kamepiula ʻē aʻe i ʻāpana o ka hui Kubernetes.
Hoʻokomo a kāhea ʻo Cctl i ke kikowaena cluster-api mai luna mai ma ke ʻano he waihona no nā hana CRUD ma nā pūʻulu. Hoʻohana ʻo ia ssh-mea hoʻolako, he mea hāʻawi aku i nā mea hoʻolako pūʻulu metala metala wehe ʻole mai Platform9, a ʻo ia hoʻi e kāhea iā etcdadm a me nodeadm e hana i nā hana ma ka pūʻulu.
Pehea e hoʻohana ai iā Klusterkit a me kāna mau mea:
1 - Hiki ke hōʻiliʻili maʻalahi ʻia kekahi o nā mea hana ʻekolu me ke kauoha 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 - Hiki ke hoʻopili ʻia kēia mau mea hoʻokō a kope ʻia i nā mīkini ʻimi kahi e holo ai ka pūʻulu Kubernetes i loaʻa loa. E kau i nā faila nodeadm a me etcdadm i nā papa kuhikuhi mana:
3 - Inā pono ʻoe e hoʻonohonoho i kahi hui Kubernetes ma ka ʻāina, i kahi kaʻawale kino, hiki ke hoʻoiho mua ʻia nā hilinaʻi pono ma mua o kahi kamepiula me ka ʻike pūnaewele me ka hoʻohana ʻana i ke kauoha download nodeadm a etcdadm. A laila hiki ke kope kope ʻia nā mea i hoʻoiho ʻia (ʻo ia hoʻi, kubelet a me kubelet unit file no systemd, CNI executable files, kubeadm file, nā kiʻi pahu āpau me Kubernetes, keepalived image and systemd file, etcd container kiʻi a me nā faila hoʻonohonoho pili) hiki ke kope maʻalahi i nā pūʻali kaʻawale kino. me cctl, nodeadm a me etcdadm. (E ʻike i nā kikoʻī ma wiki).
4 - Ke paʻa nā mea āpau, hiki iā ʻoe ke hana i ka hui Kubernetes mua me nā kauoha ʻelua: