ಕ್ಲಸ್ಟರ್ಕಿಟ್

ಕ್ಲಸ್ಟರ್‌ಕಿಟ್: ಕುಬರ್ನೆಟ್ಸ್ ನಿಯೋಜನೆಗಳನ್ನು ಸರಳೀಕರಿಸಲು ಮತ್ತು ಭೌತಿಕವಾಗಿ ಪ್ರತ್ಯೇಕವಾದ ಆನ್-ಆವರಣದ ಪರಿಸರದಲ್ಲಿ ರನ್ ಮಾಡಲು ತೆರೆದ ಮೂಲ ಟೂಲ್‌ಕಿಟ್

ಕ್ಲಸ್ಟರ್ಕಿಟ್

GitHub ನಲ್ಲಿ Apache v9 ಲೈಸೆನ್ಸ್‌ನ ಅಡಿಯಲ್ಲಿ Platform2.0 ಓಪನ್ ಸೋರ್ಸಿಂಗ್ ಕ್ಲಸ್ಟರ್‌ಕಿಟ್, ಮೂರು ಪರಿಕರಗಳ ಸೂಟ್ ಎಂದು ಇಂದು ನಾವು ಘೋಷಿಸಲು ಉತ್ಸುಕರಾಗಿದ್ದೇವೆ.

ನಮ್ಮ ಗ್ರಾಹಕರು ಸಾಮಾನ್ಯವಾಗಿ ಇಂಟರ್ನೆಟ್‌ಗೆ ಸಂಪರ್ಕ ಹೊಂದಿರದ ಖಾಸಗಿ ಡೇಟಾ ಕೇಂದ್ರಗಳಲ್ಲಿ ಸಾಫ್ಟ್‌ವೇರ್ ಅನ್ನು ಹೊರತರುತ್ತಾರೆ (ಸುರಕ್ಷತೆ ಅಥವಾ ಇತರ ಕಾರಣಗಳಿಗಾಗಿ). ಈ ದೊಡ್ಡ ಕಂಪನಿಗಳು ಕುಬರ್ನೆಟ್ಸ್‌ನ ಲಾಭವನ್ನು ಪಡೆಯಲು ಮತ್ತು ತಮ್ಮ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಆಧುನೀಕರಿಸಲು ಬಯಸುತ್ತವೆ ಮತ್ತು ಅದೇ ಸಮಯದಲ್ಲಿ ಅವುಗಳನ್ನು ವಿವಿಧ ಡೇಟಾ ಕೇಂದ್ರಗಳಲ್ಲಿ ಸುತ್ತಿಕೊಳ್ಳುತ್ತವೆ, ಅವುಗಳು ಸಾಮಾನ್ಯವಾಗಿ ಹೊರಗಿನ ಪ್ರಪಂಚಕ್ಕೆ ಸಂಪರ್ಕ ಹೊಂದಿಲ್ಲ. ಇಲ್ಲಿ Klusterkit ಬರುತ್ತದೆ, ಇದು ಭೌತಿಕವಾಗಿ ಪ್ರತ್ಯೇಕವಾದ ಪರಿಸರದಲ್ಲಿ K8s ಕ್ಲಸ್ಟರ್‌ಗಳನ್ನು ಒದಗಿಸುವುದು ಮತ್ತು ನಿರ್ವಹಿಸುವುದು ಸುಲಭವಾಗುತ್ತದೆ.

Klusterkit ಮೂರು ಸ್ವತಂತ್ರ ಪರಿಕರಗಳನ್ನು ಒಳಗೊಂಡಿದೆ, ಇದನ್ನು ಕುಬರ್ನೆಟ್ಸ್ ಉತ್ಪಾದನಾ ಕ್ಲಸ್ಟರ್‌ನ ಜೀವನಚಕ್ರವನ್ನು ನಿರ್ವಹಿಸಲು ಒಟ್ಟಿಗೆ ಅಥವಾ ಪ್ರತ್ಯೇಕವಾಗಿ ಬಳಸಬಹುದಾಗಿದೆ:

  1. ಇತ್ಯಾದಿ, ಸರಳೀಕೃತ ಇತ್ಯಾದಿ ಕ್ಲಸ್ಟರ್ ನಿರ್ವಹಣೆಗಾಗಿ CLI.
  2. ನೋಡೆಡ್ಮ್, kubeadm ಅನ್ನು ವಿಸ್ತರಿಸುವ ಮತ್ತು kubeadm ಗೆ ಅಗತ್ಯವಿರುವ ಅವಲಂಬನೆಗಳನ್ನು ನಿಯೋಜಿಸುವ ನೋಡ್ ಆಡಳಿತಕ್ಕಾಗಿ CLI.
  3. cctl, ಕ್ಲಸ್ಟರ್ ಲೈಫ್‌ಸೈಕಲ್ ಮ್ಯಾನೇಜ್‌ಮೆಂಟ್ ಟೂಲ್ ಇದು ಕುಬರ್ನೆಟ್ಸ್ ಸಮುದಾಯದಿಂದ ಕ್ಲಸ್ಟರ್ API ಅನ್ನು ಅಳವಡಿಸಿಕೊಂಡಿದೆ ಮತ್ತು ಆವರಣದಲ್ಲಿ ಮತ್ತು ಭೌತಿಕವಾಗಿ ಪ್ರತ್ಯೇಕವಾದ ಪರಿಸರದಲ್ಲಿ ಹೆಚ್ಚು ಲಭ್ಯವಿರುವ ಕುಬರ್ನೆಟ್ಸ್ ಕ್ಲಸ್ಟರ್‌ಗಳನ್ನು ಮನಬಂದಂತೆ ತಲುಪಿಸಲು ಮತ್ತು ನಿರ್ವಹಿಸಲು nodeadm ಮತ್ತು etcdadm ಅನ್ನು ಬಳಸುತ್ತದೆ.

ಒಟ್ಟಾಗಿ, ಈ ಮೂರು ಉಪಕರಣಗಳು ಈ ಕೆಳಗಿನ ಕಾರ್ಯಗಳನ್ನು ನಿರ್ವಹಿಸುತ್ತವೆ:

  • ಕ್ಲಸ್ಟರ್ API ಮೂಲಕ ಭೌತಿಕವಾಗಿ ಪ್ರತ್ಯೇಕವಾದ ಆನ್-ಆವರಣದ ಪರಿಸರದಲ್ಲಿ ಹೆಚ್ಚು ಲಭ್ಯವಿರುವ ಇತ್ಯಾದಿ ಕ್ಲಸ್ಟರ್ ಮತ್ತು ಕುಬರ್ನೆಟ್ಸ್ ಡ್ಯಾಶ್‌ಬೋರ್ಡ್ ಅನ್ನು ಸುಲಭವಾಗಿ ಒದಗಿಸಿ ಮತ್ತು ನಿರ್ವಹಿಸಿ.
  • ಇತ್ಯಾದಿ ಬ್ಯಾಕಪ್ ಬಳಸಿಕೊಂಡು ವೈಫಲ್ಯದ ನಂತರ ಕ್ಲಸ್ಟರ್ ನಿಯಂತ್ರಣ ಫಲಕವನ್ನು ಮರುಸ್ಥಾಪಿಸಲಾಗುತ್ತಿದೆ.
  • ಕುಬರ್ನೆಟ್ಸ್ ಅನ್ನು ಭೌತಿಕವಾಗಿ ಪ್ರತ್ಯೇಕವಾದ ಪರಿಸರಕ್ಕೆ ತಲುಪಿಸಲು ಅಗತ್ಯವಿರುವ ಎಲ್ಲಾ ಕಲಾಕೃತಿಗಳನ್ನು ಪ್ಯಾಕೇಜಿಂಗ್ ಮಾಡುವುದು.

ಕ್ಲಸ್ಟರ್ಕಿಟ್ ವೈಶಿಷ್ಟ್ಯಗಳು

  • ಬಹು-ಮಾಸ್ಟರ್ ಬೆಂಬಲ (HA ಕ್ಲಸ್ಟರ್ K8s).
  • ಸುರಕ್ಷಿತ ಇತ್ಯಾದಿ ಕ್ಲಸ್ಟರ್‌ಗಳ ವಿತರಣೆ ಮತ್ತು ನಿರ್ವಹಣೆ.
  • ದೈಹಿಕವಾಗಿ ಪ್ರತ್ಯೇಕವಾದ ಪರಿಸರದಲ್ಲಿ ಕೆಲಸ ಮಾಡುವುದು.
  • ರೋಲಿಂಗ್ ಅಪ್‌ಗ್ರೇಡ್‌ಗಳು ಮತ್ತು ರೋಲ್‌ಬ್ಯಾಕ್‌ಗಳನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ.
  • ಬ್ಯಾಕೆಂಡ್‌ಗಾಗಿ CNI ಆಗಿ ಫ್ಲಾನ್ನೆಲ್ (vxlan); ಇತರ CNIಗಳನ್ನು ಬೆಂಬಲಿಸುವ ಯೋಜನೆಗಳಿವೆ.
  • ಕೋರಂ ನಷ್ಟದ ನಂತರ ಇತ್ಯಾದಿ ಕ್ಲಸ್ಟರ್‌ಗಳ ಬ್ಯಾಕಪ್ ಮತ್ತು ಮರುಸ್ಥಾಪನೆ.
  • ಮೆಮೊರಿ ಮತ್ತು CPU ಸಮಯ ಖಾಲಿಯಾಗದಂತೆ ನಿಯಂತ್ರಣ ಫಲಕವನ್ನು ರಕ್ಷಿಸುತ್ತದೆ.

Klusterkit ಪರಿಹಾರ ಆರ್ಕಿಟೆಕ್ಚರ್

ಕ್ಲಸ್ಟರ್ಕಿಟ್

ದೋಷ ಸಹಿಷ್ಣುತೆ ಮತ್ತು ಸರಳತೆಗಾಗಿ, Klusterkit Kubernetes ಕ್ಲಸ್ಟರ್ ಮೆಟಾಡೇಟಾವನ್ನು ಸಂಗ್ರಹಿಸಲು ಒಂದೇ cctl-state.yaml ಫೈಲ್ ಅನ್ನು ಬಳಸುತ್ತದೆ. cctl CLI ಮೂಲಕ ನೀವು ಈ ಸ್ಟೇಟ್ ಫೈಲ್ ಹೊಂದಿರುವ ಯಾವುದೇ ಗಣಕದಲ್ಲಿ ಕುಬರ್ನೆಟ್ಸ್ ಕ್ಲಸ್ಟರ್‌ನ ಜೀವನಚಕ್ರವನ್ನು ನಿರ್ವಹಿಸಬಹುದು. ಇದು ಆಪರೇಟರ್‌ನ ಲ್ಯಾಪ್‌ಟಾಪ್ ಆಗಿರಬಹುದು ಅಥವಾ ಕುಬರ್ನೆಟ್ಸ್ ಕ್ಲಸ್ಟರ್‌ನ ಭಾಗವಾಗಿರುವ ಯಾವುದೇ ಇತರ ಕಂಪ್ಯೂಟರ್ ಆಗಿರಬಹುದು.

Cctl ಅಪ್‌ಸ್ಟ್ರೀಮ್‌ನಿಂದ ಕ್ಲಸ್ಟರ್-ಎಪಿಐ ಇಂಟರ್‌ಫೇಸ್ ಅನ್ನು ಕ್ಲಸ್ಟರ್‌ಗಳಲ್ಲಿ CRUD ಕಾರ್ಯಾಚರಣೆಗಳಿಗಾಗಿ ಲೈಬ್ರರಿಯಾಗಿ ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತದೆ ಮತ್ತು ಕರೆಯುತ್ತದೆ. ಅವನು ಬಳಸುತ್ತಾನೆ ssh- ಒದಗಿಸುವವರು, Platform9 ನಿಂದ ತೆರೆದ ಮೂಲ ಬೇರ್ ಮೆಟಲ್ ಕ್ಲಸ್ಟರ್-api ಪೂರೈಕೆದಾರ, ಇದು ಕ್ಲಸ್ಟರ್‌ನಲ್ಲಿ ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ನಿರ್ವಹಿಸಲು 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/etcdadm

2 - ಈ ಎಕ್ಸಿಕ್ಯೂಟಬಲ್‌ಗಳನ್ನು ನಂತರ ಪ್ಯಾಕ್ ಮಾಡಬಹುದು ಮತ್ತು ಹೆಚ್ಚು ಲಭ್ಯವಿರುವ ಕುಬರ್ನೆಟ್ಸ್ ಕ್ಲಸ್ಟರ್ ಚಾಲನೆಯಲ್ಲಿರುವ ಗುರಿ ಯಂತ್ರಗಳಿಗೆ ನಕಲಿಸಬಹುದು. ಆವೃತ್ತಿ ಡೈರೆಕ್ಟರಿಗಳಲ್ಲಿ nodeadm ಮತ್ತು etcdadm ಫೈಲ್‌ಗಳನ್ನು ಇರಿಸಿ:

cp $GOPATH/bin/nodeadm /var/cache/ssh-provider/nodeadm//

cp $GOPATH/bin/etcdadm /var/cache/ssh-provider/etcdadm//

3 – ನೀವು ಕುಬರ್ನೆಟ್ಸ್ ಕ್ಲಸ್ಟರ್ ಅನ್ನು ಸ್ಥಳೀಯವಾಗಿ ಆರ್ಕೆಸ್ಟ್ರೇಟ್ ಮಾಡಬೇಕಾದರೆ, ಭೌತಿಕವಾಗಿ ಪ್ರತ್ಯೇಕವಾದ ಪರಿಸರದಲ್ಲಿ, ಅಗತ್ಯ ಅವಲಂಬನೆಗಳನ್ನು nodeadm ಮತ್ತು etcdadm ಡೌನ್‌ಲೋಡ್ ಆಜ್ಞೆಯನ್ನು ಬಳಸಿಕೊಂಡು ಇಂಟರ್ನೆಟ್ ಪ್ರವೇಶದೊಂದಿಗೆ ಕಂಪ್ಯೂಟರ್‌ನಲ್ಲಿ ಸುಲಭವಾಗಿ ಡೌನ್‌ಲೋಡ್ ಮಾಡಬಹುದು. ನಂತರ ಡೌನ್‌ಲೋಡ್ ಮಾಡಿದ ಐಟಂಗಳನ್ನು (ಅಂದರೆ systemd, CNI ಕಾರ್ಯಗತಗೊಳಿಸಬಹುದಾದ ಫೈಲ್‌ಗಳು, kubeadm ಫೈಲ್‌ಗಾಗಿ kubelet ಮತ್ತು kubelet ಯೂನಿಟ್ ಫೈಲ್, Kubernetes ಸೇರಿದಂತೆ ಎಲ್ಲಾ ಧಾರಕ ಚಿತ್ರಗಳು, Keepalived ಇಮೇಜ್ ಮತ್ತು systemd ಫೈಲ್, etcd ಕಂಟೈನರ್ ಇಮೇಜ್ ಮತ್ತು ಅನುಗುಣವಾದ ಕಾನ್ಫಿಗರೇಶನ್ ಫೈಲ್‌ಗಳು) ಭೌತಿಕವಾಗಿ ಪ್ರತ್ಯೇಕಿಸಲಾದ ಹೋಸ್ಟ್‌ಗಳಿಗೆ ಸುಲಭವಾಗಿ ನಕಲಿಸಬಹುದು. cctl, nodeadm ಮತ್ತು etcdadm ಜೊತೆಗೆ. (ವಿವರಗಳನ್ನು ನೋಡಿ ವಿಕಿ).

4 - ಎಲ್ಲವೂ ಸ್ಥಳದಲ್ಲಿ ಒಮ್ಮೆ, ನೀವು ಮೊದಲ ಕುಬರ್ನೆಟ್ಸ್ ಕ್ಲಸ್ಟರ್ ಅನ್ನು ಒಂದೆರಡು ಆಜ್ಞೆಗಳೊಂದಿಗೆ ರಚಿಸಬಹುದು:

- ಮೊದಲು ಕ್ಲಸ್ಟರ್‌ಗಾಗಿ ರುಜುವಾತುಗಳನ್ನು ರಚಿಸಿ.

$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

ನಲ್ಲಿ ಹೆಚ್ಚಿನ ದಸ್ತಾವೇಜನ್ನು ಓದಿ GitHub.

ಮೂಲ: www.habr.com

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ