KlusterKit: เบเบธเบเปเบเบทเปเบญเบเบกเบทเปเบซเบผเปเบเปเบเบตเบเปเบเบทเปเบญเปเบฎเบฑเบเปเบซเปเบเบฒเบเบเบณเปเบเป Kubernetes เบฅเบฝเบเบเปเบฒเบ เปเบฅเบฐ เปเบฅเปเบเปเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเบเบตเปเปเบเบเบเปเบฝเบงเบเบฒเบเบฎเปเบฒเบเบเบฒเบ.
เบกเบทเปเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเบทเปเบเปเบเบฑเปเบเบเบตเปเบเบฐเบเบฐเบเบฒเบเบงเปเบฒ Platform9 เปเบกเปเบเปเบเบตเบเปเบซเบผเปเบเบเบตเปเบกเบฒ Klusterkit, เบเบธเบเบเบญเบเบชเบฒเบกเปเบเบทเปเบญเบเบกเบท, เบเบฒเบเปเบเปเปเบเบญเบฐเบเบธเบเบฒเบ Apache v2.0 เปเบ GitHub.
เบฅเบนเบเบเปเบฒเบเบญเบเบเบงเบเปเบฎเบปเบฒเปเบเบตเบเบเบปเบงเบเบญเบเปเบงเปเบเบชเบนเบเบเปเปเบกเบนเบเบชเปเบงเบเบเบปเบงเบเบตเปเบกเบฑเบเบเบฐเบเปเปเปเบเบทเปเบญเบกเบเปเปเบเบฑเบเบญเบดเบเปเบเบตเปเบเบฑเบ (เปเบเบทเปเบญเบเบงเบฒเบกเบเบญเบเปเบเบซเบผเบทเปเบซเบเบเบปเบเบญเบทเปเบเป). เบเปเบฅเบดเบชเบฑเบเบเบฐเบซเบเบฒเบเปเบซเบเปเปเบซเบผเบปเปเบฒเบเบตเปเบเปเบญเบเบเบฒเบเปเบเปเบเบฐเปเบซเบเบเบเบฒเบ Kubernetes เปเบฅเบฐเบเบฑเบเบเบธเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเบเบญเบเบเบงเบเปเบเบปเบฒเปเบซเปเบเบฑเบเบชเบฐเปเบซเบกเปเบฅเบฐเปเบเปเบงเบฅเบฒเบเบฝเบงเบเบฑเบเบกเปเบงเบเบเบงเบเบกเบฑเบเบขเบนเปเปเบเบชเบนเบเบเปเปเบกเบนเบเบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบ, เปเบเบดเปเบเบกเบฑเบเบเบฐเบเปเปเปเบเบทเปเบญเบกเบเปเปเบเบฑเบเปเบฅเบเบเบฒเบเบเบญเบ. เบเบตเปเปเบกเปเบเบเปเบญเบเบเบตเป Klusterkit เปเบเบปเปเบฒเบกเบฒ, เปเบฎเบฑเบเปเบซเปเบกเบฑเบเบเปเบฒเบเบเปเปเบเบฒเบเบเบฑเบเบซเบฒ เปเบฅเบฐเบเบฑเบเบเบฒเบเบเบธเปเบก K8s เปเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเบเบตเปเปเบเบเบเปเบฝเบง.
Klusterkit เบเบฐเบเบญเบเบกเบตเบชเบฒเบกเปเบเบทเปเบญเบเบกเบทเปเบญเบเบฐเบฅเบฒเบเบเบตเปเบชเบฒเบกเบฒเบเปเบเปเบฎเปเบงเบกเบเบฑเบเบซเบผเบทเปเบเบเบเปเบฒเบเบซเบฒเบเปเบเบทเปเบญเบเบฑเบเบเบฒเบเบงเบปเบเบเบญเบเบเบตเบงเบดเบเบเบญเบเบเบธเปเบกเบเบฒเบเบเบฐเบฅเบดเบ Kubernetes:
etcdadm , CLI เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบฑเบเบเบฒเบเบเบธเปเบก etcd เปเบเบเบเปเบฒเบเบเบฒเบ.nodeadm , CLI เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเปเบฅเบดเบซเบฒเบ node เบเบตเปเบเบฐเบซเบเบฒเบ kubeadm เปเบฅเบฐ deploys dependencies เบเบตเปเบเปเบฒเปเบเบฑเบเปเบเบ kubeadm.cctl , เปเบเบทเปเบญเบเบกเบทเบเบฒเบเบเบฑเบเบเบฒเบเบงเบปเบเบเบญเบเบเบตเบงเบดเบเบเบญเบเบเบธเปเบกเบเบตเปเบฎเบฑเบเบฎเบญเบเปเบญเบปเบฒ Cluster API เบเบฒเบเบเบธเบกเบเบปเบ Kubernetes เปเบฅเบฐเปเบเป nodeadm เปเบฅเบฐ etcdadm เปเบเบทเปเบญเบเบฑเบเบชเบปเปเบ เปเบฅเบฐเบฎเบฑเบเบชเบฒเบเบธเปเบก Kubernetes เบเบตเปเบกเบตเปเบซเปเบขเปเบฒเบเบเปเปเบขเบธเบเบขเบฑเปเบเบขเบนเปเปเบเบชเบฐเบเบฒเบเบเบตเป เปเบฅเบฐเปเบเบดเบเปเบกเปเบเบงเปเบฒเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเบเบตเปเปเบเบเบเปเบฝเบงเบเบฒเบเบฎเปเบฒเบเบเบฒเบ.
เบฎเปเบงเบกเบเบฑเบ, เบชเบฒเบกเปเบเบทเปเบญเบเบกเบทเปเบซเบผเบปเปเบฒเบเบตเปเบเบฐเบเบดเบเบฑเบเบงเบฝเบเบเบฒเบเบเบฑเปเบเบเปเปเปเบเบเบตเป:
- เบเบฑเบเบซเบฒ เปเบฅเบฐ เบเบฑเบเบเบฒเบเบเบธเปเบก etcd เบเบตเปเบกเบตเปเบซเปเปเบเปเบขเปเบฒเบเบเปเบฒเบเบเบฒเบ เปเบฅเบฐ dashboard Kubernetes เปเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเปเบเบเปเบฅเบดเปเบงเบเบเบตเปเปเบเบเบเปเบฝเบงเบเบฒเบเบฎเปเบฒเบเบเบฒเบเบเปเบฒเบ Cluster API.
- เบเบฒเบเบเบทเปเบเบเบนเปเบเบเบเบงเบเบเบธเบกเบเบธเปเบกเบซเบผเบฑเบเบเบฒเบเบเบงเบฒเบกเบฅเบปเปเบกเปเบซเบฅเบงเปเบเบเปเบเปเบเบฒเบเบชเปเบฒเบฎเบญเบเบเปเปเบกเบนเบ etcd.
- เบเบฒเบเบซเบธเปเบกเบซเปเปเบเบญเบเบเบญเบกเบเบฑเบเบซเบกเบปเบเบเบตเปเบเปเบฒเปเบเบฑเบเปเบเบทเปเบญเบชเบปเปเบ Kubernetes เปเบเบปเปเบฒเปเบเปเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเบเบตเปเปเบเบเบเปเบฝเบง.
เบเบธเบโเบเบฐโเบชเบปเบกโเบเบฑเบ Klusterkitโ
- เบฎเบญเบเบฎเบฑเบเบซเบผเบฒเบเปเบกเปเบเบปเบ (HA cluster K8s).
- เบเบฒเบเบเบฑเบเบชเบปเปเบเปเบฅเบฐเบเบฒเบเบเบธเปเบกเบเบญเบเบเบธเปเบก etcd เบเบตเปเบเบญเบเปเบ.
- เปเบฎเบฑเบเบงเบฝเบเบขเบนเปเปเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเบเบตเปเปเบเบเบเปเบฝเบงเบเบฒเบเบฎเปเบฒเบเบเบฒเบ.
- เบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบเบเบฒเบเบเบปเบเบฅเบฐเบเบฑเบเบกเปเบงเบเปเบฅเบฐ rollbacks.
- Flannel (vxlan) เปเบเบฑเบ CNI เบชเปเบฒเบฅเบฑเบ backend; เบกเบตเปเบเบเบเบฒเบเบเบตเปเบเบฐเบชเบฐเบซเบเบฑเบเบชเบฐเบซเบเบนเบ CNIs เบญเบทเปเบเป.
- เบเบฒเบโเบชเปเบฒโเบฎเบญเบโเปเบฅเบฐโเบเบฒเบโเบเบทเปเบโเบเบนโเบเบญเบโเบเบธเปเบก etcd เบซเบผเบฑเบโเบเบฒเบโเบเบฒเบโเบชเบนเบโเปเบชเบโเบเบญเบโเบเบธเปเบกโ.
- เบเบปเบเบเปเบญเบเปเบเบเบเบงเบเบเบธเบกเบเบฒเบเบเบฒเบเปเบปเบเบเบงเบฒเบกเบเบณ เปเบฅเบฐเปเบงเบฅเบฒ CPU.
Klusterkit Solution Architecture
เบชเปเบฒเบฅเบฑเบเบเบงเบฒเบกเบญเบปเบเบเบปเบเปเบฅเบฐเบเบงเบฒเบกเบเปเบฒเบเบเบฒเบ, Klusterkit เปเบเปเปเบเบฅเป cctl-state.yaml เบเบฝเบงเปเบเบทเปเบญเปเบเบฑเบเบเปเปเบกเบนเบเปเบกเบเบฒเปเบเบเบฒเบเบญเบเบเบธเปเบก Kubernetes. เบเปเบฒเบ cctl CLI เบเปเบฒเบเบชเบฒเบกเบฒเบเบเบฑเบเบเบฒเบเบงเบปเบเบเบญเบเบเบตเบงเบดเบเบเบญเบเบเบธเปเบก Kubernetes เปเบเปเบเบทเปเบญเบเปเบเบเปเปเบเปเบเบตเปเบกเบตเปเบเบฅเปเบฅเบฑเบเบเบตเป. เบเบตเปเบชเบฒเบกเบฒเบเปเบเบฑเบเปเบฅเบฑเบเบเบฑเบญเบเบเบญเบเบเบนเปเบเบฐเบเบดเบเบฑเบเบเบฒเบ เบซเบผเบทเบเบญเบกเบเบดเบงเปเบเบตเบญเบทเปเบเปเบเบตเปเปเบเบฑเบเบชเปเบงเบเปเบถเปเบเบเบญเบเบเบธเปเบก Kubernetes.
Cctl เบเบฐเบเบดเบเบฑเบเปเบฅเบฐเปเบญเบตเปเบเบเบฒเบเปเบเปเบเบญเบ cluster-api เบเบฒเบเบเบปเปเบเบเปเปเบฒเปเบเบฑเบเบซเปเบญเบเบชเบฐเบซเบกเบธเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบฒเบ CRUD เปเบเบเบธเปเบก. เบฅเบฒเบงเปเบเป
เบงเบดเบเบตเบเบฒเบเบเปเบฒเปเบเป 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 - เบเปเบฒเบเปเบฒเบเบเปเบญเบเบเบฒเบเบเบฑเบเบเบธเปเบก Kubernetes เบขเบนเปเปเบเบเปเบญเบเบเบดเปเบ, เปเบเบชเบฐเบเบฒเบเปเบงเบเบฅเปเบญเบกเบเบตเปเปเบเบเบเปเบฝเบง, เบเบฒเบเปเบเบดเปเบเบเบฒเบญเบฒเปเบชเบเบตเปเบเปเบฒเปเบเบฑเบเบชเบฒเบกเบฒเบเบเบฒเบงเปเบซเบผเบเปเบเปเบเปเบฒเบเปเบเบเบญเบกเบเบดเบงเปเบเบตเบเบตเปเบกเบตเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเบญเบดเบเปเบเบตเปเบเบฑเบเปเบเบเปเบเปเบเปเบฒเบชเบฑเปเบเบเบฒเบงเปเบซเบฅเบ nodeadm เปเบฅเบฐ etcdadm. เบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ, เบฅเบฒเบเบเบฒเบเบเบตเปเบเบฒเบงเปเบซเบผเบเบกเบฒ (i.e. kubelet เปเบฅเบฐ kubelet unit file for systemd, CNI executable files, kubeadm file, all container images including Kubernetes, keepalived image and systemd file, etcd container image and corfiguration files) เบชเบฒเบกเบฒเบเปเบเปเบฎเบฑเบเบเบฒเบเบเบฑเบเบฅเบญเบเปเบเปเบขเปเบฒเบเบเปเบฒเบเบเบฒเบเบเบฑเบ hosts เบเบตเปเปเบเบเบเปเบฝเบงเบเบฒเบกเบฎเปเบฒเบเบเบฒเบ. เบเปเบงเบ 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
เบญเปเบฒเบเปเบญเบเบฐเบชเบฒเบเปเบเบตเปเบกเปเบเบตเบกเปเบเปเบเบตเป
เปเบซเบผเปเบเบเปเปเบกเบนเบ: www.habr.com