KlusterKit: ืึทื ืึธืคึฟื ืืงืืจ ืืึธืึธืืงืื ืฆื ืคืึทืจืคึผืึธืฉืขืืขืจื Kubernetes ืืืคึผืืืืืึทื ืฅ ืืื ืืืืคื ืืื ืคืืืืงืื ืืคืืขืืื ืืขืจื ืื ืืืืืจืึทื ืืึทื ืฅ ืืื ืืึธืงืึทื.
ืืืึทื ื ืืืจ ืืขื ืขื ืืงืกืืืืึทื ืฆื ืืขืืื ืึทื Platform9 ืืื ืึธืคึฟื ืกืึธืจืกืื ื Klusterkit, ืึท ืกืืืื ืคืื ืืจืื ืืืฉืืจืื, ืืื ืืขืจ ืื Apache v2.0 ืืขืจืืืืืขื ืืฉ ืืืืฃ GitHub.
ืืื ืืืขืจ ืงืืืืึทื ืฅ ืจืึธืืื ืืืืก ืืืืืืืืืจื ืืื ืคึผืจืืืืึทื ืืึทืื ืกืขื ืืขืจืก ืืืึธืก ืืขื ืขื ืึธืคื ื ืืฉื ืงืึธื ื ืขืงืืขื ืฆื ืื ืืื ืืขืจื ืขื (ืคึฟืึทืจ ืืืืขืจืืืื ืึธืืขืจ ืื ืืขืจืข ืกืืืืช). ืื ืืจืืืก ืงืึธืืคึผืึทื ืืขืก ืืืืื ืฆื ื ืืฆื Kubernetes ืืื ืคืึทืจืืืึทื ืืืงื ืืืืขืจ ืึทืคึผืืึทืงืืืฉืึทื ื ืืื ืืื ืืขืจ ืืขืืืืงืขืจ ืฆืืื ืจืึธืืื ืืื ืืืืก ืืื ืคืึทืจืฉืืืขื ืข ืืึทืื ืกืขื ืืขืจืก, ืืืึธืก ืืขื ืขื ืึธืคื ื ืืฉื ืคืืจืืื ืื ืฆื ืื ืึทืจืืืก ืืืขืื. ืืึธืก ืืื ืืื Klusterkit ืงืืื ืืื, ืืืึธืก ืืืื ืขืก ืืจืื ื ืฆื ืฆืืฉืืขืื ืืื ืคืืจื K8 ืก ืงืืึทืกืืขืจื ืืื ืคืืืืงืื ืืคืืขืืื ืืขืจื ืื ืืืืืจืึทื ืืึทื ืฅ.
Klusterkit ืื ืงืืืื ืืจืื ืคืจืืึท ืืืฉืืจืื ืืืึธืก ืงืขื ืขื ืืืื ืืขืืืืื ื ืฆืืืึทืืขื ืึธืืขืจ ืกืขืคึผืขืจืึทืืื ืฆื ืคืืจื ืื ืืืืคืกืืืง ืคืื ืึท ืงืืืขืจื ืขืืขืก ืคึผืจืึธืืืงืฆืืข ืงื ืืื:
ืขืืงืืื , CLI ืคึฟืึทืจ ืกืืืคึผืืึทืคืืื ืขืืง ืงื ืืื ืคืึทืจืืืึทืืืื ื.ื ืึธืืขืึทืื , ืึท CLI ืคึฟืึทืจ ื ืึธืืข ืึทืืืื ืืกืืจืึทืฆืืข ืืืึธืก ืืงืกืืขื ืื kubeadm ืืื ืืืคึผืืืืื ืื ืืืคึผืขื ืืึทื ืกืื ืืืจืฃ ืืืจื kubeadm.cctl , ืึท ืงื ืืื ืืืคืขืกืืงืืข ืคืึทืจืืืึทืืืื ื ืืขืฆืืึทื ืืืึธืก ืึทืืึทืคึผืฅ ืื Cluster API ืคึฟืื ืื Kubernetes ืงืื ืืื ื ืืฆื ื ืึธืืขืึทืื ืืื ืขืืงืืื ืฆื ืกืืืืึทืกืื ืฆืืฉืืขืื ืืื ืืืึทื ืขื ืืขืืกื ืื ืืืฆื Kubernetes ืงืืึทืกืืขืจื ืืื ืืึธืงืึทื ืืื ืืคืืื ืคืืืืงืื ืืคืืขืืื ืืขืจื ืื ืืืืืจืึทื ืืึทื ืฅ.
ืฆืืืึทืืขื, ืื ืืจืื ืืืฉืืจืื ืืืจืืคืืจื ืื ืคืืืืขื ืืข ืืึทืกืงืก:
- ืืืืื ืฆืืฉืืขืื ืืื ืคืืจื ืึท ืืขืืกื ืื ืืืฆื ืขืืง ืงื ืืื ืืื Kubernetes ืืึทืฉืืึธืจื ืืื ืคืืืืงืื ืืคืืขืืื ืืขืจื ืื ืืืืืจืึทื ืืึทื ืฅ ืืื ืืึธืงืึทื ืืืจื ืื Cluster API.
- ืจืืกืืึธืจืื ื ืื ืงื ืืื ืงืึธื ืืจืึธื ืืึทืคืืืข ื ืึธื ืึท ืืืจืืคืึทื ื ืืฆื ืขืืง ืืึทืงืึทืคึผ.
- ืคึผืึทืงืงืึทืืื ื ืึทืืข ืึทืจืืึทืคืึทืงืฅ ืืืจืฃ ืฆื ืฆืืฉืืขืื Kubernetes ืืื ืคืืืืงืื ืืคืืขืืื ืืขืจื ืื ืืืืืจืึทื ืืึทื ืฅ.
ืงืืืกืืขืจืงืื ืคึฟืขืึดืงืืืื
- ืืืืื-ืืขื ืฉืืืฆื (ืืึท ืงื ืืื ืง8ืก).
- ืขืงืกืคึผืจืขืก ืืื ืคืึทืจืืืึทืืืื ื ืคืื ืืืืขืจ ืขืืง ืงืืึทืกืืขืจื.
- ืืจืืขืื ืืื ืคืืืืงืื ืืคืืขืืื ืืขืจื ืื ืืืืืจืึทื ืืึทื ืฅ.
- ืฉืืืฆื ืจืึธืืืื ื ืึทืคึผืืจืืืื ืืื ืจืึธืืืืึทืงืงืก.
- ืคืืึทื ืึทื (ืืืงืกืืึทื) ืืื CNI ืคึฟืึทืจ ืื ืืึทืงืขื ื; ืขืก ืืขื ืขื ืคึผืืึทื ื ืฆื ืฉืืืฆื ืื ืืขืจืข CNIs.
- ืืึทืงืงืืคึผ ืืื ืจืขืกืืขืจืืืฉืึทื ืคืื ืขืืง ืงืืึทืกืืขืจื ื ืึธื ืึธื ืืืขืจ ืคืื ืงืืืึธืจื.
- ืคึผืจืึทืืขืงืฅ ืื ืงืึธื ืืจืึธื ืืึทืคืืืข ืคืื โโืคืืืกื ืืืง ืืืืก ืคืื ืืึผืจืื ืืื ืงืคึผื ืฆืืื.
ืงืืืกืืขืจืงืื ืกืึทืืืฉืึทื ืึทืจืืฉืืืขืงืืืจืข
ืคึฟืึทืจ ืฉืืื ืืึธืืขืจืึทื ืฅ ืืื ืคึผืึทืฉืืขืก, Klusterkit ื ืืฆื ืึท ืืืื cctl-state.yaml ืืขืงืข ืฆื ืงืจืึธื Kubernetes ืงื ืืื ืืขืืึทืืึทืืึท. ืืืจื ืื cctl CLI ืืืจ ืงืขื ืขื ืคืืจื ืื ืืืืคืกืืืง ืคืื ืึท Kubernetes ืงื ืืื ืืืืฃ ืงืืื ืืึทืฉืื ืืืึธืก ืืื ืืขื ืฉืืึทื ืืขืงืข. ืืึธืก ืงืขื ืืืื ืึท ืืึทืคึผืืึทืคึผ ืคืื ืึท ืึธืคึผืขืจืึทืืึธืจ ืึธืืขืจ ืงืืื ืื ืืขืจืข ืงืึธืืคึผืืืืขืจ ืืืึธืก ืืื ืืืื ืคืื ืื Kubernetes ืงื ืืื.
Cctl ืืืคึผืืึทืืึทื ืฅ ืืื ืจืืคื ืื ืงื ืืื-ืึทืคึผื ืฆืืืื ื ืคึฟืื ืึทืคึผืกืืจืื ืืื ืึท ืืืืืืึธืืขืง ืคึฟืึทืจ CRUD ืึทืคึผืขืจืืืฉืึทื ื ืืืืฃ ืงืืึทืกืืขืจื. ืขืจ ื ืืฆื
ืืื ืฆื ื ืืฆื Klusterkit ืืื ืืืึทื ืงืึทืืคึผืึธืื ืึทื ืฅ:
1 - ืงืืื ืคืื ืื ืืจืื ืืืฉืืจืื ืงืขื ืขื ืืืื ืืืืื ืืขืืืืื ืืื ืื ืืืื ืืึทืงืืืขื ืืึทืคึฟืขื:
go get -u github.com/platform9/cctl
go get -u github.com/platform9/nodeadm
go get -u github.com/kubernetes-sigs/etcdadm
2 - ืื ืขืงืกืขืงืืืึทืืืขืก ืงืขื ืขื ืืืื ืคึผืึทืงืืืืฉื ืืื ืงืึทืคึผืื ืฆื ืื ืฆืื ืืืฉืื ืขื ืืื ืื ืืขืืกื ืื ืืืฆื Kubernetes ืงื ืืื ืืึธื ืืืื ืคืืืกื ืืืง. ืฉืืขืื ืื ื ืึธืืขืึทืื ืืื ืขืืงืืึทืื ืืขืงืขืก ืืื ืื ืืืขืจืกืืข ืืืืจืขืงืืขืจืื:
cp $GOPATH/bin/nodeadm /var/cache/ssh-provider/nodeadm//
cp $GOPATH/bin/etcdadm /var/cache/ssh-provider/etcdadm//
3 - ืืืื ืืืจ ืืึทืจืคึฟื ืฆื ืึธืจืงืขืกืืจืืจื ืึท Kubernetes ืงื ืืื ืืึธืืงืึทืื, ืืื ืึท ืคืืืืงืื ืืคืืขืืื ืืขืจื ืกืืืืืืข, ืื ื ืืืืืง ืืืคึผืขื ืืึทื ืกืื ืงืขื ืขื ืืืื ืืืืื ืืึทืื ืืึธืืืื ืืื ืฉืืืึทืื ืืืืฃ ืึท ืงืึธืืคึผืืืืขืจ ืืื ืืื ืืขืจื ืขื ืึทืงืกืขืก ื ืืฆื ืื Nodeadm ืืื Etcdadm ืืจืืคืงืืคืืข ืืึทืคึฟืขื. ืืขืจื ืึธื ืื ืืึทืื ืืึธืืืื ืืืืึทืื (ื"ื ืงืืืขืืขื ืืื ืงืืืขืืขื ืึทืคึผืึทืจืึทื ืืขืงืข ืคึฟืึทืจ ืกืืกืืขื, CNI ืขืงืกืขืงืืืึทืืืข ืืขืงืขืก, ืงืืืขืื ืืขืงืข, ืึทืืข ืงืึทื ืืืื ืขืจ ืืืืืขืจ ืึทืจืืึทื ืืขืจืขืื ื ืงืืืขืจื ืขืืขืก, ืงืขืขืึทืืืืืขื ืืืื ืืื ืกืืกืืขื ืืขืงืข, ืขืืง ืงืึทื ืืืื ืขืจ ืืืื ืืื ืงืึธืจืึทืกืคึผืึทื ืืื ื ืงืึทื ืคืืืืขืจืืืฉืึทื ืืขืงืขืก) ืงืขื ืขื ืืืื ืืืืื ืงืึทืคึผืื ืฆื ืคืืืืงืื ืืคืืขืืื ืืขืจื ืืื ืืช ืฆืืืืืขื. ืืื 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