KlusterKitα αααα ααα§ααααααααααααΎαα αα ααΎααααΈααααα½ααααααΆαααΆαααααααΆα Kubernetes αα·αααααΎαααΆααααα»αααα·ααααΆααααα»αααα·αααααΆα ααααα‘ααα
αααααααααΎαααΆαααα ααααΈααααΎααααα»αααΆααααααΆαααΆ Platform9 ααΊααΆαααααααΎαα αα Klusterkit αααααΆαααα»αααα§αααααα ααα½αααΈ αααααα’αΆααααΆααααα Apache v2.0 αα ααΎ GitHub α
α’αα·αα·ααααααααΎααααα αααααααα·ααΈαα αααα»αααααααααααα·ααααααα―ααα αααααΆααΏαααα·αααααΌαααΆαααααΆαααα α’ααΈαααΊαα·α (αααααΆαααα»ααααα·ααΆα α¬α ααα»αααααααααα)α αααα»αα αα»ααααααΆαααααα ααααΆαααα’αααααααααααααΈ Kubernetes αα·αααααΎααααΎααααααααααα·ααΈαααααα½ααα α αΎααα αααααΆαα½αααααΆαααααΆααααΌαααΆαααΆααα αααα αααα»αααααααααααα·ααααααααααααααααΆ αααααΆααΏαααα·αααΆαααααΆααααααααΆαα½ααα·ααααΆααααα αααααα αααααΊααΆααααααααα Klusterkit α αΌααα αααααααΎα±ααααΆααΆααααα½ααααα»αααΆαααααα αα·ααααααααααα ααααα K8s αα αααα»αααα·ααααΆαααΆα ααααα‘ααα
Klusterkit αα½ααααα αΌαα§αααααα―αααΆαααα ααα½αααΈαααα’αΆα ααααΎααΆαααΆαα½αααααΆ α¬αααα‘ααααΈααααΆ ααΎααααΈαααααααααααααααΈαα·ααααααα»αααα·ααααα Kubernetesα
etcdadm , CLI αααααΆααααΆααααααααααα ααααα etcd ααΆαααααnodeadm CLI αααααΆααααΆααααααααααααααΆααααααααααΈα kubeadm αα·αααΆαααααααΆαααΆαα’αΆααααααααααααΌαααΆαααα kubeadm αcctl αααααΆα§ααααααααααααααααααααΈαα·αααααα ααααααααααα½ααα Cluster API ααΈαα αααα Kubernetes αα·αααααΎ nodeadm αα·α etcdadm ααΎααααΈα ααα αΆα αα·ααααααααΆα ααααα Kubernetes αααα’αΆα ααααΎααΆαααααααα αααα»αααα·ααα αα·αααΌααααΈααααα·ααααΆαααΆα ααααα‘ααααΈααα
ααΆαα½αααααΆ α§αααααααΆααααΈαααα’αα»ααααααΆααα·α αα ααΌα ααΆααααααα
- αααααααΆαααΆααααα½α αα·ααααααααααα ααααα etcd αααα’αΆα ααααΎααΆαααααα αα·αααααΆααααααααααα Kubernetes αα αααα»αααα·ααααΆααααα»αααα·αααααΆα ααααα‘ααααΆαααα Cluster API α
- ααΆαααααΆαααααΆαααααααΆα αααααα‘αΎααα·ααααααΆααααΈααΆααααΆααααααααααΎααΆαααααα»ααα»α etcd α
- ααΆαααα ααα ααααααα»αα»ααΆαααΆααα’αααααααααΌαααΆαααΎααααΈαααααΌα Kubernetes αα αααα»αααα·ααΆααΆαααΆα ααααα‘ααα
αααααααα·ααααααα Klusterkit
- ααΆαααΆαααααα α»αα (HA cluster K8s) α
- ααΆαααΉααααααΌα αα·αααΆααααααααααα ααααα etcd αα»ααααα·ααΆαα
- ααααΎααΆααααα»αααα·ααΆααΆαα―ααααΆαααΆαααΆαα
- ααΆααααααΆαααααΎα±αααααααΎααα·ααα»α αα·αααΆααα·ααααα‘αααααα·αα
- Flannel (vxlan) ααΆ CNI αααααΆαα backend; ααΆαααααααααΆαααα CNIs ααααααααα
- ααΆαααααα»ααα»α αα·αααΆαααααΆαα‘αΎααα·αααΌααααα»α etcd αααααΆααααΈααΆαααααααΌααα»αα
- ααΆαααΆαααααΆαααααααΆααΈααΆαα’ααα’αααα αα αΆα αα·ααααααααΆαααΈααΈααΌα
ααααΆαααααααααααααααααΆα 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 unit αααααΆαα systemd α―αααΆααααα’αΆα
ααααα·ααααα·ααΆα CNI α―αααΆα kubeadm ααΌαααΆααα»αααΊαααααΆααα’αααα½αααΆαα Kubernetes ααΌαααΆααααααΆαα»α αα·αα―αααΆα systemd ααΌαααΆααα»αααΊααα etcd αα·αα―αααΆαααααααα
ααΆαααααααααααααααΌαααααΆ) α’αΆα
ααααΌαααΆαα
αααααααΆαααΆααααα½ααα
ααΆαααααΆαααΈααααααΆα
ααααα‘ααααΈααα ααΆαα½α 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