KlusterKit: Π½Π°Π±ΠΎΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄ Π·Π° ΠΎΠΏΡΠΎΡΡΡΠ²Π°ΡΠ΅ Π½Π° Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠΈΡΠ΅ Π½Π° Kubernetes ΠΈ ΡΠ°Π±ΠΎΡΠ° Π²ΠΎ ΡΠΈΠ·ΠΈΡΠΊΠΈ ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Π½ΠΈ Π»ΠΎΠΊΠ°Π»Π½ΠΈ ΡΡΠ΅Π΄ΠΈΠ½ΠΈ

ΠΠ΅Π½Π΅Ρ Ρ ΡΠ°Π΄ΠΎΡΡ ΠΎΠ±ΡΠ°Π²ΡΠ²Π°ΠΌΠ΅ Π΄Π΅ΠΊΠ° Platform9 Π³ΠΈ ΠΎΡΠ²ΠΎΡΠ° ΠΈΠ·Π²ΠΎΡΠ½ΠΈΡΠ΅ ΠΊΠΎΠ΄ΠΎΠ²ΠΈ Π½Π° Klusterkit, ΠΏΠ°ΠΊΠ΅Ρ ΠΎΠ΄ ΡΡΠΈ Π°Π»Π°ΡΠΊΠΈ, ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½ΡΠ° Apache v2.0 Π½Π° GitHub.
ΠΠ°ΡΠΈΡΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΠΈ ΡΠ° ΠΊΠΎΡΠΈΡΡΠ°Ρ ΡΠΎΡΡΠ²Π΅ΡΠΎΡ Π²ΠΎ ΠΏΡΠΈΠ²Π°ΡΠ½ΠΈ Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡΠΈ, ΠΊΠΎΠΈ ΡΠ΅ΡΡΠΎ Π½Π΅ ΡΠ΅ ΠΏΠΎΠ²ΡΠ·Π°Π½ΠΈ ΡΠΎ ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΠΎΡ (ΠΏΠΎ Π±Π΅Π·Π±Π΅Π΄Π½ΠΎΡΠ½ΠΈ ΠΏΡΠΈΡΠΈΠ½ΠΈ ΠΈΠ»ΠΈ ΠΏΠΎ Π΄ΡΡΠ³ΠΈ ΠΏΡΠΈΡΠΈΠ½ΠΈ). ΠΠ²ΠΈΠ΅ Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΡΠ°ΠΊΠ°Π°Ρ Π΄Π° Π³ΠΈ ΠΈΡΠΊΠΎΡΠΈΡΡΠ°Ρ ΠΏΡΠΈΠ΄ΠΎΠ±ΠΈΠ²ΠΊΠΈΡΠ΅ Π½Π° Kubernetes ΠΈ Π΄Π° Π³ΠΈ ΠΌΠΎΠ΄Π΅ΡΠ½ΠΈΠ·ΠΈΡΠ°Π°Ρ ΡΠ²ΠΎΠΈΡΠ΅ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΈ Π²ΠΎ ΠΈΡΡΠΎ Π²ΡΠ΅ΠΌΠ΅ Π΄Π° Π³ΠΈ Π΄ΠΈΡΡΡΠΈΠ±ΡΠΈΡΠ°Π°Ρ Π²ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡΠΈ ΠΊΠΎΠΈ ΡΠ΅ΡΡΠΎ Π½Π΅ΠΌΠ°Π°Ρ Π²ΡΡΠΊΠ° ΡΠΎ Π½Π°Π΄Π²ΠΎΡΠ΅ΡΠ½ΠΈΠΎΡ ΡΠ²Π΅Ρ. Π’ΡΠΊΠ° ΠΏΠΎΠΌΠ°Π³Π° Klusterkit, ΠΊΠΎΡ Π³ΠΎ ΠΏΠΎΠ΅Π΄Π½ΠΎΡΡΠ°Π²ΡΠ²Π° ΠΈΡΠΏΠΎΡΠ°ΠΊΠ°ΡΠ° ΠΈ ΡΠΏΡΠ°Π²ΡΠ²Π°ΡΠ΅ΡΠΎ ΡΠΎ K8s ΠΊΠ»Π°ΡΡΠ΅ΡΠΈ Π²ΠΎ ΡΠΈΠ·ΠΈΡΠΊΠΈ ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Π½ΠΈ ΡΡΠ΅Π΄ΠΈΠ½ΠΈ.
ΠΠΎ Klusterkit Π²Π»Π΅Π³ΡΠ²Π°Π°Ρ ΡΡΠΈ Π½Π΅Π·Π°Π²ΠΈΡΠ½ΠΈ Π°Π»Π°ΡΠΊΠΈ, ΠΊΠΎΠΈ ΠΌΠΎΠΆΠ°Ρ Π΄Π° ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠ°Ρ Π·Π°Π΅Π΄Π½ΠΎ ΠΈΠ»ΠΈ ΠΎΠ΄Π΄Π΅Π»Π½ΠΎ Π·Π° ΡΠΏΡΠ°Π²ΡΠ²Π°ΡΠ΅ ΡΠΎ ΠΆΠΈΠ²ΠΎΡΠ½ΠΈΠΎΡ ΡΠΈΠΊΠ»ΡΡ Π½Π° production-ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΡ Π½Π° Kubernetes:
- , CLI Π·Π° ΠΏΠΎΠ΅Π΄Π½ΠΎΡΡΠ°Π²Π΅Π½ΠΎ ΡΠΏΡΠ°Π²ΡΠ²Π°ΡΠ΅ ΡΠΎ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° etcd.
- , CLI Π·Π° Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠ°ΡΠ΅ Π½Π° Π½ΠΎΠ΄ΠΎΠ²ΠΈ, ΠΊΠΎΡ Π³ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΡΠ²Π° kubeadm ΠΈ ΡΠ°ΡΠΏΠΎΡΠ΅Π΄ΡΠ²Π° Π·Π°Π²ΠΈΡΠ½ΠΎΡΡΠΈ ΠΏΠΎΡΡΠ΅Π±Π½ΠΈ Π·Π° kubeadm.
- , Π°Π»Π°ΡΠΊΠ° Π·Π° ΡΠΏΡΠ°Π²ΡΠ²Π°ΡΠ΅ ΡΠΎ ΠΆΠΈΠ²ΠΎΡΠ½ΠΈΠΎΡ ΡΠΈΠΊΠ»ΡΡ Π½Π° ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΡ, ΠΊΠΎΡΠ° ΠΏΡΠΈΠΌΠ° Cluster API ΠΎΠ΄ Π·Π°Π΅Π΄Π½ΠΈΡΠ°ΡΠ° Π½Π° Kubernetes ΠΈ Π³ΠΈ ΠΊΠΎΡΠΈΡΡΠΈ nodeadm ΠΈ etcdadm Π·Π° Π±Π΅Π· Π½Π°ΠΏΠΎΡΠΈ Π΄Π° ΠΈΡΠΏΠΎΡΠ°ΡΠ° ΠΈ ΠΎΠ΄ΡΠΆΡΠ²Π° Π²ΠΈΡΠΎΠΊΠΎ-Π΄ΠΎΡΡΠ°ΠΏΠ½ΠΈ Kubernetes ΠΊΠ»Π°ΡΡΠ΅ΡΠΈ Π²ΠΎ Π»ΠΎΠΊΠ°Π»Π½ΠΈ ΠΈ ΡΠΈΠ·ΠΈΡΠΊΠΈ ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Π½ΠΈ ΡΡΠ΅Π΄ΠΈΠ½ΠΈ.
ΠΠ°Π΅Π΄Π½ΠΎ, ΠΎΠ²ΠΈΠ΅ ΡΡΠΈ Π°Π»Π°ΡΠΊΠΈ ΠΈΠ·Π²ΡΡΡΠ²Π°Π°Ρ ΡΠ»Π΅Π΄Π½ΠΈΠ²Π΅ Π·Π°Π΄Π°ΡΠΈ:
- ΠΠ΄Π½ΠΎΡΡΠ°Π²Π½Π° ΠΈΡΠΏΠΎΡΠ°ΠΊΠ° ΠΈ ΡΠΏΡΠ°Π²ΡΠ²Π°ΡΠ΅ ΡΠΎ Π²ΠΈΡΠΎΠΊΠΎ-Π΄ΠΎΡΡΠ°ΠΏΠ΅Π½ ΠΊΠ»Π°ΡΡΠ΅Ρ etcd ΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅Π½ ΠΏΠ°Π½Π΅Π» Π½Π° Kubernetes Π²ΠΎ ΡΠΈΠ·ΠΈΡΠΊΠΈ ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Π½ΠΈ Π»ΠΎΠΊΠ°Π»Π½ΠΈ ΡΡΠ΅Π΄ΠΈΠ½ΠΈ ΠΏΡΠ΅ΠΊΡ Cluster API.
- ΠΡΠ°ΡΠ°ΡΠ΅ Π½Π° ΠΊΠΎΠ½ΡΡΠΎΠ»Π½ΠΈΠΎΡ ΠΏΠ°Π½Π΅Π» Π½Π° ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΡ ΠΏΠΎ Π½Π΅ΡΡΠΏΠ΅Ρ ΠΏΡΠ΅ΠΊΡ Π±Π΅ΠΊΠ°ΠΏ Π½Π° etcd.
- ΠΠ°ΠΊΡΠ²Π°ΡΠ΅ Π½Π° ΡΠΈΡΠ΅ Π°ΡΡΠ΅ΡΠ°ΠΊΡΠΈ ΠΏΠΎΡΡΠ΅Π±Π½ΠΈ Π·Π° ΠΈΡΠΏΠΎΡΠ°ΠΊΠ° Π½Π° Kubernetes Π²ΠΎ ΡΠΈΠ·ΠΈΡΠΊΠΈ ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Π½ΠΈ ΡΡΠ΅Π΄ΠΈΠ½ΠΈ.
ΠΠΎΠΆΠ½ΠΎΡΡΠΈ Π½Π° Klusterkit
- ΠΠΎΠ΄Π΄ΡΡΠΊΠ° Π·Π° ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΌΠ°ΡΡΠ΅ΡΠΈ (HA-ΠΊΠ»Π°ΡΡΠ΅Ρ K8s).
- ΠΡΠΏΠΎΡΠ°ΠΊΠ° Π½Π° Π·Π°ΡΡΠΈΡΠ΅Π½ΠΈ etcd ΠΊΠ»ΠΎΡΡΠ΅ΡΠΈ ΠΈ ΡΠΏΡΠ°Π²ΡΠ²Π°ΡΠ΅ ΡΠΎ Π½ΠΈΠ².
- Π Π°Π±ΠΎΡΠ° Π²ΠΎ ΡΠΈΠ·ΠΈΡΠΊΠΈ ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Π½ΠΈ ΡΡΠ΅Π΄ΠΈΠ½ΠΈ.
- ΠΠΎΠ΄Π΄ΡΡΠΊΠ° Π·Π° ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½ΠΎ Π½Π°Π΄Π³ΡΠ°Π΄ΡΠ²Π°ΡΠ΅ ΠΈ Π²ΡΠ°ΡΠ°ΡΠ΅.
- Flannel (vxlan) ΠΊΠ°ΠΊΠΎ CNI Π·Π° Π±Π΅ΠΊΠ΅Π½Π΄; Π²ΠΎ ΠΏΠ»Π°Π½ΠΎΡ Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΊΠ°ΡΠ° Π½Π° Π΄ΡΡΠ³ΠΈ CNI.
- Π Π΅Π·Π΅ΡΠ²ΠΈΡΠ°ΡΠ΅ ΠΈ Π²ΡΠ°ΡΠ°ΡΠ΅ Π½Π° etcd-ΠΊΠ»Π°ΡΡΠ΅ΡΠΈ ΠΏΠΎ Π·Π°Π³ΡΠ±Π° Π½Π° ΠΊΠ²ΠΎΡΡΠΌ.
- ΠΠ°ΡΡΠΈΡΠ° Π½Π° ΠΊΠΎΠ½ΡΡΠΎΠ»Π½ΠΈΠΎΡ ΠΏΠ°Π½Π΅Π» ΠΎΠ΄ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΠΊ Π½Π° ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ° ΠΈ Π²ΡΠ΅ΠΌΠ΅ Π½Π° Π¦Π.
ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Π½Π° ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΡΠΎ Klusterkit
ΠΠ° Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΎΡΡ ΠΈ ΠΏΡΠΎΡΡΠΎΡΠ° Klusterkit ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π΅Π΄ΠΈΠ½ ΡΠ°ΠΉΠ» cctl-state.yaml Π·Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΠΈ Π·Π° ΠΊΠ»ΡΡΡΠ΅ΡΠ° Kubernetes. Π§ΡΠ΅Π· cctl CLI ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΠΏΡΠ°Π²Π»ΡΠ²Π° ΠΆΠΈΠ·Π½Π΅Π½ΠΈΡΡ ΡΠΈΠΊΡΠ» Π½Π° ΠΊΠ»ΡΡΡΠ΅ΡΠ° Kubernetes Π½Π° Π²ΡΡΠΊΠ° ΠΌΠ°ΡΠΈΠ½Π°, Π½Π° ΠΊΠΎΡΡΠΎ ΠΈΠΌΠ° ΡΠΎΠ·ΠΈ ΡΠ°ΠΉΠ» Π·Π° ΡΡΡΡΠΎΡΠ½ΠΈΠ΅. Π’ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ Π»Π°ΠΏΡΠΎΠΏ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° ΠΈΠ»ΠΈ Π²ΡΡΠΊΠ°ΠΊΡΠ² Π΄ΡΡΠ³ ΠΊΠΎΠΌΠΏΡΡΡΡ, ΠΊΠΎΠΉΡΠΎ Π΅ Π² ΠΊΠ»ΡΡΡΠ΅ΡΠ° Kubernetes.
Cctl ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ° ΠΈ ΠΈΠ·Π²ΠΈΠΊΠ²Π° ΠΎΡ upstream ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° cluster-api ΠΊΠ°ΡΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π·Π° CRUD ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π²ΡΡΡ Ρ ΠΊΠ»ΡΡΡΠ΅ΡΠΈ. Π’ΠΎΠΉ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° , Π΄ΠΎΡΡΠ°Π²ΡΠΈΠΊ Π½Π° cluster-api Ρ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄, ΡΠ°Π±ΠΎΡΠ΅Ρ Π½Π° βΠ³ΠΎΠ»ΠΎ ΠΆΠ΅Π»ΡΠ·ΠΎβ ΠΎΡ Platform9, ΠΊΠΎΠΉΡΠΎ ΠΎΡ ΡΠ²ΠΎΡ ΡΡΡΠ°Π½Π° ΠΈΠ·Π²ΠΈΠΊΠ²Π° etcdadm ΠΈ nodeadm Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π² ΠΊΠ»ΡΡΡΠ΅ΡΠ°.
ΠΠ°ΠΊ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ 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/etcdadm2 β Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΡΠ΅Π·ΠΈ ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΏΠ°ΠΊΠ΅ΡΠΈΡΠ°Π½ΠΈ ΠΈ ΠΊΠΎΠΏΠΈΡΠ°Π½ΠΈ Π½Π° ΡΠ΅Π»Π΅Π²ΠΈ ΠΌΠ°ΡΠΈΠ½ΠΈ, ΠΊΡΠ΄Π΅ΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ°Π±ΠΎΡΠΈ Π²ΠΈΡΠΎΠΊΠΎ-Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΠΊΠ»ΡΡΡΠ΅Ρ 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 ΠΈ unit ΡΠ°ΠΉΠ» kubelet Π·Π° systemd, ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ CNI, kubeadm ΡΠ°ΠΉΠ», Π²ΡΠΈΡΠΊΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ½ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ Kubernetes, ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ for keepalived ΠΈ ΡΠ°ΠΉΠ» 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ΠΠΎΠ²Π΅ΡΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π½Π°ΠΌΠ΅ΡΠΈΡΠ΅ Π½Π° .
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: habr.com
