KlusterKit

KlusterKit: Ohun elo irinṣẹ orisun ṣiṣi lati ṣe irọrun awọn imuṣiṣẹ Kubernetes ati ṣiṣe ni awọn agbegbe ti o ya sọtọ ti ara

KlusterKit

Loni a ni inudidun lati kede pe Platform9 ṣii Klusterkit orisun, suite ti awọn irinṣẹ mẹta, labẹ iwe-aṣẹ Apache v2.0 lori GitHub.

Awọn alabara wa yi sọfitiwia jade ni awọn ile-iṣẹ data ikọkọ ti a ko sopọ nigbagbogbo si Intanẹẹti (fun aabo tabi awọn idi miiran). Awọn ile-iṣẹ nla wọnyi fẹ lati lo anfani Kubernetes ati ṣe imudojuiwọn awọn ohun elo wọn ati ni akoko kanna yi wọn jade ni awọn ile-iṣẹ data oriṣiriṣi, eyiti ko ni asopọ nigbagbogbo si agbaye ita. Eyi ni ibiti Klusterkit wa, ti o jẹ ki o rọrun lati pese ati ṣakoso awọn iṣupọ K8 ni awọn agbegbe ti o ya sọtọ ti ara.

Klusterkit pẹlu awọn irinṣẹ ominira mẹta ti o le ṣee lo papọ tabi lọtọ lati ṣakoso ọna igbesi aye ti iṣupọ iṣelọpọ Kubernetes kan:

  1. etcdadm, CLI fun simplified etcd iṣupọ isakoso.
  2. nodeadm, CLI kan fun iṣakoso ipade ti o gbooro kubeadm ati gbe awọn igbẹkẹle ti o nilo nipasẹ kubeadm.
  3. cctl, Ohun elo iṣakoso igbesi aye iṣupọ kan ti o gba Cluster API lati agbegbe Kubernetes ati lilo nodeadm ati etcdadm lati ṣe ifijiṣẹ lainidi ati ṣetọju awọn iṣupọ Kubernetes ti o ga julọ ni awọn agbegbe ile ati paapaa awọn agbegbe ti o ya sọtọ ti ara.

Papọ, awọn irinṣẹ mẹta wọnyi ṣe awọn iṣẹ ṣiṣe wọnyi:

  • Ni irọrun pese ati ṣakoso iṣupọ etcd ti o wa pupọ ati dasibodu Kubernetes ni awọn agbegbe ti o ya sọtọ ti ara nipasẹ Cluster API.
  • mimu-pada sipo ẹgbẹ iṣakoso iṣupọ lẹhin ikuna nipa lilo afẹyinti etcd.
  • Iṣakojọpọ gbogbo awọn ohun-ọṣọ ti a nilo lati fi Kubernetes ranṣẹ si awọn agbegbe ti o ya sọtọ ti ara.

Klusterkit awọn ẹya ara ẹrọ

  • Olona-titun support (HA iṣupọ K8s).
  • Ifijiṣẹ ati iṣakoso ti awọn iṣupọ ati bẹbẹ lọ ti o ni aabo.
  • Ṣiṣẹ ni awọn agbegbe ti o ya sọtọ ti ara.
  • Ṣe atilẹyin awọn iṣagbega sẹsẹ ati awọn iyipo.
  • Flannel (vxlan) bi CNI fun ẹhin; Awọn ero wa lati ṣe atilẹyin awọn CNI miiran.
  • Afẹyinti ati imupadabọ ti awọn iṣupọ etcd lẹhin isonu ti iyewo.
  • Ṣe aabo nronu iṣakoso lati ṣiṣe kuro ni iranti ati akoko Sipiyu.

Klusterkit Solusan Architecture

KlusterKit

Fun ifarada aṣiṣe ati ayedero, Klusterkit nlo faili cctl-state.yaml ẹyọkan lati ṣafipamọ awọn metadata iṣupọ Kubernetes. Nipasẹ cctl CLI o le ṣakoso igbesi aye ti iṣupọ Kubernetes lori eyikeyi ẹrọ ti o ni faili ipinlẹ yii. Eyi le jẹ kọǹpútà alágbèéká oniṣẹ tabi kọmputa eyikeyi miiran ti o jẹ apakan ti iṣupọ Kubernetes.

Cctl ṣe ati pe wiwo iṣupọ-api lati oke bi ile-ikawe fun awọn iṣẹ CRUD lori awọn iṣupọ. O nlo ssh-olupese, Olupese irin iṣupọ-api ti o ṣii-orisun lati Platform9, eyiti o n pe etcdadm ati nodeadm lati ṣe awọn iṣẹ lori iṣupọ naa.

Bii o ṣe le lo Klusterkit ati awọn paati rẹ:

1 - Eyikeyi awọn irinṣẹ mẹta le ni irọrun gba pẹlu aṣẹ go gba:

go get -u github.com/platform9/cctl

go get -u github.com/platform9/nodeadm

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

2 - Awọn ipaniyan wọnyi le lẹhinna ṣe akopọ ati daakọ si awọn ẹrọ ibi-afẹde nibiti iṣupọ Kubernetes ti o wa ga julọ yẹ ki o ṣiṣẹ. Fi nodeadm ati etcdadm awọn faili sinu awọn ilana ti ikede:

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

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

3 - Ti o ba nilo lati ṣe akojọpọ iṣupọ Kubernetes ni agbegbe, ni agbegbe ti o ya sọtọ ti ara, awọn igbẹkẹle pataki le ṣe igbasilẹ ni irọrun ni ilosiwaju lori kọnputa pẹlu iwọle Intanẹẹti nipa lilo aṣẹ igbasilẹ nodeadm ati etcdadm. Lẹhinna awọn nkan ti o gbasilẹ (ie kubelet ati kubelet kuro faili fun systemd, awọn faili ṣiṣe CNI, faili kubeadm, gbogbo awọn aworan eiyan pẹlu Kubernetes, aworan ti o wa laaye ati faili eto, aworan eiyan ati bẹbẹ lọ ati awọn faili iṣeto ni ibamu) le ni irọrun dakọ si awọn ọmọ ogun ti o ya sọtọ ti ara pẹlu pẹlu cctl, nodeadm ati etcdadm. (Wo awọn alaye ni wiki).

4 - Ni kete ti ohun gbogbo ba wa ni aye, o le ṣẹda iṣupọ Kubernetes akọkọ pẹlu awọn aṣẹ meji:

– Akọkọ ṣẹda awọn iwe eri fun iṣupọ.

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

– Lẹhinna ṣẹda nkan iṣupọ kan. -iranlọwọ mu atokọ ti awọn aṣayan atilẹyin.

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

- Nikẹhin, ṣẹda ẹrọ akọkọ ninu iṣupọ.

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

Ka iwe diẹ sii ni GitHub.

orisun: www.habr.com

Fi ọrọìwòye kun