KlusterKit: ืขืจืืช ืืืื ืืงืื ืคืชืื ืืคืืฉืื ืคืจืืกืืช Kubernetes ืืืคืขืื ืืกืืืืืช ืืงืืืืืช ืืืืืืืช ืคืืืืช
ืืืื ืื ื ื ืจืืฉืื ืืืืจืื ืฉ-Platform9 ืืื ืืงืืจืืช ืคืชืืืื ื-Klusterkit, ืืืืื ืฉื ืฉืืืฉื ืืืื, ืชืืช ืจืืฉืืื Apache v2.0 ื-GitHub.
ืืืงืืืืช ืฉืื ื ืืคืืฆืื ืชืืื ืืช ืืืจืืื ื ืชืื ืื ืคืจืืืื ืฉืืขืืชืื ืืื ื ืืืืืจืื ืืืื ืืจื ื (ืืกืืืืช ืืืืื ืื ืืืจืืช). ืืืจืืช ืืืืืืช ืืื ืจืืฆืืช ืื ืฆื ืืช Kubernetes ืืืืืฉ ืืช ืืืคืืืงืฆืืืช ืฉืืื ืืืืงืืื ืืืืื ืืืชื ืืืจืืื ื ืชืื ืื ืฉืื ืื, ืฉืืขืืชืื ืืื ื ืืืืืจืื ืืขืืื ืืืืฆืื. ืืื ื ืื ืก ืืชืืื ื Klusterkit, ืื ืฉืืงื ืขื ืืกืคืงื โโืื ืืืื ืฉื ืืฉืืืืืช K8s ืืกืืืืืช ืืืืืืืช ืคืืืืช.
Klusterkit ืืืื ืฉืืืฉื ืืืื ืขืฆืืืืื ืฉื ืืชื ืืืฉืชืืฉ ืืื ืืืื ืื ืื ืคืจื ืืื ืื ืื ืืช ืืืืืจ ืืืืื ืฉื ืืฉืืื ืืืฆืืจ Kubernetes:
ืืื'ืื , CLI ืื ืืืื ืืฉืืืืืช ืืคืืฉื ืืื'.nodeadm , CLI ืื ืืืื ืฆืืืช ืฉืืจืืื ืืช kubeadm ืืคืืจืก ืืช ืืชืืืช ืืืจืืฉืืช ื-kubeadm.cctl , ืืื ืื ืืืื ืืืืืจ ืืืื ืฉื ืืฉืืืืืช ืืืืืฆืช ืืช Cluster API ืืงืืืืช Kubernetes ืืืฉืชืืฉ ื-nodeadm ื-etcdadm ืืื ืืกืคืง ืืืชืืืง ืืฆืืจื ืืืงื ืืฉืืืืืช Kubernetes ืืืื ืื ืืืืืื ืืกืืืืืช ืืงืืืืืช ืืืคืืื ืืืืืืืช ืคืืืืช.
ืืื, ืฉืืืฉืช ืืืืื ืืืื ืืืฆืขืื ืืช ืืืฉืืืืช ืืืืืช:
- ืืงืฆืื ืื ืืืื ืืงืืืช ืฉื ืืฉืืื ืืื' ืืืื ืืืื ืืืื ืืืืื ืื ืฉื Kubernetes ืืกืืืืืช ืืงืืืืืช ืืืืืืืช ืคืืืืช ืืืืฆืขืืช ื-Cluster API.
- ืฉืืืืจ ืืื ืืืงืจื ืฉื ืืืฉืืื ืืืืจ ืชืงืื ืืืืฆืขืืช ืืืืื ืืื'.
- ืืจืืืช ืื ืืืคืฆืื ืืืจืืฉืื ืืื ืืกืคืง Kubernetes ืืชืื ืกืืืืืช ืืืืืืืช ืคืืืืช.
ืชืืื ืืช Klusterkit
- ืชืืืื ืืจืืืื ืืืกืืจ (HA cluster K8s).
- ืืกืคืงื โโืื ืืืื ืฉื ืืฉืืืืืช ืืื' ืืืืืืืื.
- ืขืืืื ืืกืืืืืช ืืืืืืืช ืคืืืืช.
- ืชืืื ืืฉืืจืืืื ืืชืืืืืื ืืืืืจืืช.
- ืคืื ื (vxlan) ื-CNI ืขืืืจ ืืงืฆื ืืืืืจื; ืืฉ ืชืืื ืืืช ืืชืืื ื-CNIs ืืืจืื.
- ืืืืื ืืฉืืืืจ ืฉื ืืฉืืืืืช ืืื' ืืืืจ ืืืืื ืืื ืืื.
- ืืื ืขื ืืื ืืืงืจื ืืคื ื ืืืื ืฉื ืืืืจืื ืืืื ืืขืื.
ืืจืืืืงืืืจืช ืคืชืจืื ืืช Klusterkit
ืขืืืจ ืกืืืื ืืช ืชืงืืืช ืืคืฉืืืช, 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. ืืืืจ ืืื ื ืืชื ืืืขืชืืง ืืงืืืช ืืช ืืคืจืืืื ืฉืืืจืืช (ืืืืืจ ืงืืืฅ kubelet ื-kubelet ืขืืืจ systemd, ืงืืฆื ืืคืขืื CNI, ืงืืืฅ kubeadm, ืื ืชืืื ืืช ืืืืืืื ืืืื Kubernetes, Keepalved image ื-systemd, ืชืืื ืช ืืืื ืืื' ืืงืืฆื ืชืฆืืจื ืืชืืืืื) ืืืืจืืื ืืืืืืื ืคืืืืช. ืขื 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