KlusterKit: แฆแแ แแแแแก แฎแแแกแแฌแงแแแแแก แแแแ แแแ Kubernetes-แแก แแแแแแแแแแก แแแกแแแแ แขแแแแแแแ แแ แคแแแแแฃแ แแ แแแแแแ แแแฃแ แจแแแ แแแ แแแแจแ.
แแฆแแก แฉแแแ แแแฎแแ แฃแแแ แแแ แ แแแแแแแชแฎแแแแ, แ แแ Platform9 แแ แแก แฆแแ แฌแงแแ แแก แแแฎแแแแแ Klusterkit, แกแแแ แฎแแแกแแฌแงแแก แแแแแแแฅแขแ, Apache v2.0 แแแชแแแแแแ GitHub-แแ.
แฉแแแแ แแแแแแขแแแ แแแฃแจแแแแแแ แแ แแแ แแแฃแ แฃแแ แฃแแแแแงแแคแแก แแแ แซแ แแแแแชแแแแ แชแแแขแ แแแจแ, แ แแแแแแแช แฎแจแแ แแ แแ แแ แแแ แแแแแแจแแ แแแฃแแ แแแขแแ แแแขแแแ (แฃแกแแคแ แแฎแแแแแก แแ แกแฎแแ แแแแแแแแแก แแแแ). แแ แแแ แแแแแแแแแแก แกแฃแ แ แแกแแ แแแแแแ Kubernetes-แแ แแ แแแแแแฎแแแ แแแแ แแแแแแแชแแแแ แแ แแแแแแ แแฃแแแ แแแแแ แชแแแแ แแกแแแ แกแฎแแแแแกแฎแแ แแแแแชแแแแ แชแแแขแ แแแจแ, แ แแแแแแแช แฎแจแแ แแ แแ แแ แแแ แแแแแแจแแ แแแฃแแ แแแ แ แกแแแงแแ แแกแแแ. แกแฌแแ แแ แแฅ แแแแแก Klusterkit, แ แแช แแแแแแแแแก K8s แแแแกแขแแ แแแแก แฃแแ แฃแแแแแงแแคแแก แแ แแแ แแแแก แคแแแแแฃแ แแ แแแแแแ แแแฃแ แแแ แแแแจแ.
Klusterkit แแแแชแแแก แกแแ แแแแแฃแแแแแแแ แแแกแขแ แฃแแแแขแก, แ แแแแแแแช แจแแแซแแแแ แแแแแงแแแแแฃแ แแฅแแแก แแ แแแ แแ แชแแ-แชแแแแ Kubernetes-แแก แฌแแ แแแแแแก แแแแกแขแแ แแก แกแแกแแชแแชแฎแแ แชแแแแแก แกแแแแ แแแแแ:
etcdadm , CLI แแแแแ แขแแแแแฃแแ etcd แแแแกแขแแ แแก แแแ แแแแกแแแแก.nodeadm , CLI แแแแแซแแก แแแแแแแกแขแ แแ แแแแกแแแแก, แ แแแแแแช แแคแแ แแแแแก kubeadm-แก แแ แแแ แชแแแแแก kubeadm-แแกแแแแก แกแแญแแ แ แแแแแแแแแแฃแแแแแแก.cctl , แแแแกแขแแ แแก แกแแกแแชแแชแฎแแ แชแแแแแก แแแ แแแแก แแแกแขแ แฃแแแแขแ, แ แแแแแแช แแฆแแแก แแแแกแขแแ แแแแก API-แก Kubernetes-แแก แกแแแแแแแแแแแกแแแ แแ แแงแแแแแก nodeadm-แก แแ etcdadm-แก, แ แแแ แจแแฃแคแแ แฎแแแแแ แแแแฌแแแแก แแ แจแแแแแ แฉแฃแแแก แแแฆแแ แฎแแแแแกแแฌแแแแแ Kubernetes แแแแกแขแแ แแแ แจแแแ แแ แคแแแแแฃแ แแ แแแแแแ แแแฃแ แแแ แแแแจแแช แแ.
แแก แกแแแ แแแกแขแ แฃแแแแขแ แแ แแแ แแกแ แฃแแแแก แจแแแแแ แแแแชแแแแแก:
- แแแแแแแ แแแแฌแแแแ แแ แแแ แแแ แฃแแฆแ แแกแแ แฎแแแแแกแแฌแแแแแ etcd แแแแกแขแแ แ แแ Kubernetes แแแคแ แคแแแแแฃแ แแ แแแแแแ แแแฃแ แจแแแ แแแ แแแแจแ Cluster API-แแก แแแจแแแแแแ.
- แแแกแแขแฃแ แ แแแ แแแแก แแแแแแแก แแฆแแแแแ แฌแแ แฃแแแขแแแแแแแก แจแแแแแ etcd แกแแ แแแแ แแ แแกแแแก แแแแแงแแแแแแ.
- แงแแแแ แแ แขแแคแแฅแขแแก แจแแคแฃแแแ, แ แแแแแแช แกแแญแแ แแ Kubernetes-แแก แคแแแแแฃแ แแ แแแแแแ แแแฃแ แแแ แแแแจแ แแแแแกแแขแแแแ.
Klusterkit แแแฎแแกแแแแแแแแแ
- Multi-Master แแฎแแ แแแญแแ แ (HA แแแแกแขแแ แ K8s).
- แฃแกแแคแ แแฎแ etcd แแแแกแขแแ แแแแก แแแฌแแแแแ แแ แแแ แแแ.
- แคแแแแแฃแ แแ แแแแแแ แแแฃแ แแแ แแแแจแ แแฃแจแแแแ.
- แแฎแแ แก แฃแญแแ แก แแแซแ แแแ แแแแแฎแแแแแแแกแ แแ แฃแแแ แแแแ แฃแแแแแก.
- Flannel (vxlan) แ แแแแ แช CNI backend-แแกแแแแก; แแแแแแแแ แกแฎแแ CNI-แแแแก แแฎแแ แแแญแแ แ.
- etcd แแแแกแขแแ แแแแก แกแแ แแแแ แแ แแ แแฆแแแแแ แแแแ แฃแแแก แแแแแ แแแแก แจแแแแแ.
- แแชแแแก แแแ แแแแก แแแแแแก แแแฎแกแแแ แแแแก แแ CPU แแ แแแก แแแแฌแฃแ แแแกแแแ.
Klusterkit Solution Architecture
แจแแชแแแแแแแก แขแแแแ แแแขแแแแกแ แแ แกแแแแ แขแแแแกแแแแก, Klusterkit แแงแแแแแก แแ แ cctl-state.yaml แคแแแแก Kubernetes แแแแกแขแแ แแก แแแขแแแแแแชแแแแแแก แจแแกแแแแฎแแ. cctl CLI-แแก แกแแจแฃแแแแแแ แจแแแแซแแแแ แแแ แแแ Kubernetes แแแแกแขแแ แแก แกแแกแแชแแชแฎแแ แชแแแแ แแแแแกแแแแ แแแแฅแแแแแ, แ แแแแแกแแช แแฅแแก แแก แกแแฎแแแแฌแแคแ แคแแแแ. แแก แจแแแซแแแแ แแงแแก แแแแ แแขแแ แแก แแแแขแแแ แแ แแแแแกแแแแ แ แกแฎแแ แแแแแแฃแขแแ แ, แ แแแแแแช แแ แแก Kubernetes แแแแกแขแแ แแก แแแฌแแแ.
Cctl แแฎแแ แชแแแแแแก แแ แฃแฌแแแแแก แแแแกแขแแ -แแแ แแแขแแ แคแแแกแก แแแแแแแ, แ แแแแ แช แแแแแแแแแแ แแแแกแขแแ แแแแ 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 โ แแฃ แกแแญแแ แแ แแฃแแแ แแแขแแก แแแแกแขแแ แแก แแแแแแฃแ แแ แแ แแแกแขแ แแ แแแ, แคแแแแแฃแ แแ แแแแแแ แแแฃแ แแแ แแแแจแ, แกแแญแแ แ แแแแแแแแแแฃแแแแแก แฌแแแแกแฌแแ แฉแแแแขแแแ แแแ แจแแกแแซแแแแแแแ แแแขแแ แแแขแแ แฌแแแแแแก แแฅแแแ แแแแแแฃแขแแ แแ nodeadm แแ etcdadm แฉแแแแขแแแ แแแแก แแ แซแแแแแแก แแแแแงแแแแแแ. แจแแแแแ แแแแแแฌแแ แแแ แแ แแแฃแแแแ (แแแ. kubelet แแ kubelet แแ แแแฃแแ แคแแแแ systemd-แแกแแแแก, CNI แจแแกแ แฃแแแแแแ แคแแแแ, kubeadm แคแแแแ, แงแแแแ แแแแขแแแแแ แแก แกแฃแ แแแ, แแแ แจแแ แแก Kubernetes, keepalived แกแฃแ แแแ แแ systemd แคแแแแ, etcd แแแแขแแแแแ แแก แกแฃแ แแแ แแ แจแแกแแแแแแกแ แแแแคแแแฃแ แแชแแแก แคแแแแแแ) แจแแแซแแแแ แแแแแแแ แแแแแแแ แแแก แคแแแแแฃแ แแ แแแแแแ แแแฃแ แฐแแกแขแแแจแ. cctl, nodeadm แแ etcdadm-แแ. (แแแขแแแแแ แแฎแแแแ แแฅ
4 โ แ แแแแ แช แแ แงแแแแแคแแ แ แแแแแก แแแแแแแ แแฅแแแแ, แจแแแแซแแแแ แจแแฅแแแแ แแแ แแแแ Kubernetes แแแแกแขแแ แ แ แแแแแแแแ แแ แซแแแแแแ:
โ แฏแแ แจแแฅแแแแแ แกแแ แแแคแแแแขแแแ แแแแกแขแแ แแกแแแแก.
$GOPATH/bin/cctl create credential --user root --private-key ~/.ssh/id_rsa
โ แจแแแแแ แจแแฅแแแแแ แแแกแแขแฃแ แ แแแแแฅแขแ. -แแแฎแแแ แแแ แแแแแแฅแแก แแฎแแ แแแญแแ แแแ แแแ แแแแขแแแแก แกแแแก.
$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