เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเปเบฅเบฐเป€เบ„เบฑเบ”เบฅเบฑเบš Kubernetes: เบงเบดเบ—เบตเบเบฒเบ™เป€เบžเบตเปˆเบกเบœเบปเบ™เบœเบฐเบฅเบดเบ”

เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเปเบฅเบฐเป€เบ„เบฑเบ”เบฅเบฑเบš Kubernetes: เบงเบดเบ—เบตเบเบฒเบ™เป€เบžเบตเปˆเบกเบœเบปเบ™เบœเบฐเบฅเบดเบ”

Kubectl เป€เบ›เบฑเบ™เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบšเบฑเบ™เบ—เบฑเบ”เบ„เปเบฒเบชเบฑเปˆเบ‡เบ—เบตเปˆเบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบชเปเบฒเบฅเบฑเบš Kubernetes เปเบฅเบฐเบชเปเบฒเบฅเบฑเบš Kubernetes, เปเบฅเบฐเบžเบงเบเป€เบฎเบปเบฒเปƒเบŠเป‰เบกเบฑเบ™เบ—เบธเบเป†เบกเบทเป‰. เบกเบฑเบ™เบกเบตเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบซเบผเบฒเบเบขเปˆเบฒเบ‡ เปเบฅเบฐเบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ™เบณเปƒเบŠเป‰เบฅเบฐเบšเบปเบš Kubernetes เบซเบผเบทเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบžเบทเป‰เบ™เบ–เบฒเบ™เบ‚เบญเบ‡เบกเบฑเบ™เบเบฑเบšเบกเบฑเบ™เป„เบ”เป‰.

เบ™เบตเป‰เปเบกเปˆเบ™เบšเบฒเบ‡เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบเปˆเบฝเบงเบเบฑเบšเบงเบดเบ—เบตเบฅเบฐเบซเบฑเบ” เปเบฅเบฐเบ™เบณเปƒเบŠเป‰เป„เบ”เป‰เป„เบงเบ‚เบถเป‰เบ™เปƒเบ™ Kubernetes.

kubectl autocomplete

เบ—เปˆเบฒเบ™เบˆเบฐเปƒเบŠเป‰ Kubectl เบ•เบฐเบซเบผเบญเบ”เป€เบงเบฅเบฒ, เบชเบฐเบ™เบฑเป‰เบ™เบ”เป‰เบงเบเบเบฒเบ™เบ•เบทเปˆเบกเบ‚เปเป‰เบกเบนเบ™เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”, เบ—เปˆเบฒเบ™เบˆเบฐเบšเปเปˆเบˆเบณเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบ•เบตเบเบฐเปเบˆเบญเบตเบ.

เบ—เปเบฒเบญเบดเบ”เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบŠเบธเบ”เบเบฒเบ™เบชเปเบฒเป€เบฅเบฑเบ” bash (เบกเบฑเบ™เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบ•เบดเบ”เบ•เบฑเป‰เบ‡เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™).

  • Linux

## Install
apt-get install bash-completion
## Bash
echo 'source <(kubectl completion bash)' >>~/.bashrc
## Zsh
source <(kubectl completion zsh)

  • MacOS

## Install
brew install bash-completion@2

เบ”เบฑเปˆเบ‡เบ—เบตเปˆเบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบซเบฑเบ™เป„เบ”เป‰เปƒเบ™เบœเบปเบ™เบœเบฐเบฅเบดเบ”เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡ brew (เบžเบฒเบ Caveats), เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป€เบžเบตเปˆเบกเบชเบฒเบเบ•เปเปˆเป„เบ›เบ™เบตเป‰เปƒเบชเปˆเป„เบŸเบฅเปŒ. ~/.bashrc ะธะปะธ ~/.bash_profile:

export BASH_COMPLETION_COMPAT_DIR=/usr/local/etc/bash_completion.d
[[ -r /usr/local/etc/profile.d/bash_completion.sh ]] && . /usr/local/etc/profile.d/bash_completion.sh

เบ™เบฒเบกเปเบเบ‡ kubectl

เป€เบกเบทเปˆเบญเบ—เปˆเบฒเบ™เป€เบฅเบตเปˆเบกเปƒเบŠเป‰ kubectl, เบชเบดเปˆเบ‡เบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”เปเบกเปˆเบ™เบงเปˆเบฒเบกเบตเบ™เบฒเบกเปเบเบ‡เบซเบผเบฒเบ, เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบเบชเบดเปˆเบ‡เบ™เบตเป‰:

alias k='kubectl'

เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เป€เบžเบตเปˆเบกเบกเบฑเบ™ - เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เป€เบšเบดเปˆเบ‡ kubectl-aliases เปƒเบ™ Github. Ahmet Alp Balkan (https://twitter.com/ahmetb) เบฎเบนเป‰เบซเบผเบฒเบเบเปˆเบฝเบงเบเบฑเบšเบžเบงเบเป€เบ‚เบปเบฒ, เบŠเบญเบเบซเบฒเป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบเปˆเบฝเบงเบเบฑเบšเบ™เบฒเบกเปเบเบ‡เบ‚เบญเบ‡เบฅเบฒเบงเปƒเบ™ github

เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเปเบฅเบฐเป€เบ„เบฑเบ”เบฅเบฑเบš Kubernetes: เบงเบดเบ—เบตเบเบฒเบ™เป€เบžเบตเปˆเบกเบœเบปเบ™เบœเบฐเบฅเบดเบ”

เบžเบฝเบ‡เปเบ•เปˆเบขเปˆเบฒเบ•เบฑเป‰เบ‡เบ™เบฒเบกเปเบเบ‡ kubectl เบชเปเบฒเบฅเบฑเบšเบœเบนเป‰เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบฅเบฒเบงเบˆเบฐเบšเปเปˆเป€เบ‚เบปเป‰เบฒเปƒเบˆเบ„เปเบฒเบชเบฑเปˆเบ‡เบ—เบฑเบ‡เบซเบกเบปเบ”. เปƒเบซเป‰โ€‹เบฅเบฒเบงโ€‹เบเบถเบโ€‹เบŠเป‰เบญเบกโ€‹เปœเบถเปˆเบ‡โ€‹เบญเบฒเบ—เบดเบ”โ€‹เบซเบผเบทโ€‹เบชเบญเบ‡โ€‹เบญเบฒเบ—เบดเบ”โ€‹เบเปˆเบญเบ™.

เบ•เบฒเบ•เบฐเบฅเบฒเบ‡ Kubernetes + Helm

ยซHelm เป€เบ›เบฑเบ™เบงเบดเบ—เบตเบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”เบ—เบตเปˆเบˆเบฐเบ„เบปเป‰เบ™เบžเบปเบš, เปเบˆเบเบขเบฒเบ เปเบฅเบฐเบ™เปเบฒเปƒเบŠเป‰เบŠเบญเบšเปเบงเบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบชเปเบฒเบฅเบฑเบš Kubernetes.โ€

เป€เบกเบทเปˆเบญเบ—เปˆเบฒเบ™เบกเบตเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™ Kubernetes เบซเบผเบฒเบเป†เบญเบฑเบ™เบ—เบตเปˆเปเบฅเปˆเบ™, เบ™เบณเปƒเบŠเป‰ เปเบฅเบฐเบญเบฑเบšเป€เบ”เบ”เบžเบงเบเบกเบฑเบ™เบˆเบฐเบเบฒเบเป€เบ›เบฑเบ™เบ„เบงเบฒเบกเป€เบˆเบฑเบšเบ›เบงเบ”, เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐเบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบญเบฑเบšเป€เบ”เบ”เปเบ—เบฑเบเบฎเบนเบšเบžเบฒเบš docker เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบ™เบณเปƒเบŠเป‰. เบ•เบฒเบ•เบฐเบฅเบฒเบ‡ Helm เบชเป‰เบฒเบ‡เปเบžเบฑเบเป€เบเบฑเบ”เบ—เบตเปˆเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เปเบฅเบฐเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบชเบฒเบกเบฒเบ”เบ–เบทเบเบเปเบฒเบ™เบปเบ”, เบ•เบดเบ”เบ•เบฑเป‰เบ‡, เปเบฅเบฐเบ›เบฑเบšเบ›เบธเบ‡เป€เบกเบทเปˆเบญเบžเบงเบเบกเบฑเบ™เบ–เบทเบเป€เบ›เบตเบ”เบ•เบปเบงเปƒเบ™เบเบธเปˆเบกเป‚เบ”เบเบฅเบฐเบšเบปเบšเบเบฒเบ™เบ›เปˆเบญเบเบ•เบปเบง.

เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเปเบฅเบฐเป€เบ„เบฑเบ”เบฅเบฑเบš Kubernetes: เบงเบดเบ—เบตเบเบฒเบ™เป€เบžเบตเปˆเบกเบœเบปเบ™เบœเบฐเบฅเบดเบ”

เบŠเบธเบ” Kubernetes เปƒเบ™ Helm เบ–เบทเบเป€เบญเบตเป‰เบ™เบงเปˆเบฒเบ•เบฒเบ•เบฐเบฅเบฒเบ‡เปเบฅเบฐเบกเบตเบ‚เปเป‰เบกเบนเบ™เบˆเปเบฒเบ™เบงเบ™เบซเบฅเบฒเบเบ—เบตเปˆเบชเป‰เบฒเบ‡เบ•เบปเบงเบขเปˆเบฒเบ‡ Kubernetes.

เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเปเบกเปˆเบ™เบกเบตเบ›เบฐเป‚เบซเบเบ”เบซเบผเบฒเบ: เบกเบฑเบ™เบกเบตเบ‚เปเป‰เบกเบนเบ™เปเบšเบšเป€เบ„เบทเปˆเบญเบ™เป„เบซเบงเบเปˆเบฝเบงเบเบฑเบšเบงเบดเบ—เบตเบเบฒเบ™เบเปเบฒเบ™เบปเบ”เบ•เบฒเบ•เบฐเบฅเบฒเบ‡. เบเบฒเบ™เบ›เปˆเบญเบเบ•เบปเบงเปเบกเปˆเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡เบ—เบตเปˆเบกเบตเบขเบนเปˆเปเบฅเป‰เบงเปƒเบ™เบเบธเปˆเบกเบฅเบงเบกเบเบฑเบšเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบชเบฐเป€เบžเบฒเบฐ.

เบšเปเปˆเบ„เบทเบเบฑเบš apt เบซเบผเบท yum, Helm charts (i.e. packages) เปเบกเปˆเบ™เบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบขเบนเปˆเป€เบ—เบดเบ‡ Kubernetes เปเบฅเบฐเปƒเบŠเป‰เบ›เบฐเป‚เบซเบเบ”เบขเปˆเบฒเบ‡เป€เบ•เบฑเบกเบ—เบตเปˆเบˆเบฒเบเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบ‚เบญเบ‡เบเบธเปˆเบกเบ‚เบญเบ‡เบกเบฑเบ™, เปเบฅเบฐเบชเบดเปˆเบ‡เบ—เบตเปˆ coolest เปเบกเปˆเบ™เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบšเบฑเบ™เบŠเบตเปƒเบ™เบ•เบญเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เปเบœเบ™เบœเบฑเบ‡เบ‚เบญเบ‡เบฎเบนเบšเบžเบฒเบšเบ—เบฑเบ‡เปเบปเบ”เบ—เบตเปˆ Helm เปƒเบŠเป‰เบ–เบทเบเป€เบเบฑเบšเป„เบงเป‰เปƒเบ™เบ—เบฐเบšเบฝเบ™เบ—เบตเปˆเป€เบญเบตเป‰เบ™เบงเปˆเบฒ Helm Workspace. เป€เบกเบทเปˆเบญเบ–เบทเบเบ™เบณเปƒเบŠเป‰เปเบฅเป‰เบง, เบ—เบตเบกเบ‡เบฒเบ™ DevOps เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เบˆเบฐเบชเบฒเบกเบฒเบ”เบŠเบญเบเบซเบฒเบ•เบฒเบ•เบฐเบฅเบฒเบ‡ เปเบฅเบฐเป€เบžเบตเปˆเบกเบžเบงเบเบกเบฑเบ™เปƒเบชเปˆเป‚เบ„เบ‡เบเบฒเบ™เบ‚เบญเบ‡เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เปƒเบ™เป€เบงเบฅเบฒเบชเบฑเป‰เบ™เป†.

เบซเบกเบงเบเบเบฑเบ™เบเบฐเบ—เบปเบšเบชเบฒเบกเบฒเบ”เบ–เบทเบเบ•เบดเบ”เบ•เบฑเป‰เบ‡เบ”เป‰เบงเบเบงเบดเบ—เบตเบญเบทเปˆเบ™:

  • Snap/Linux:

sudo snap install helm --classic

  • Homebrew/macOS:

brew install kubernetes-helm

  • เบชเบฐเบ„เบฃเบดเบš:

curl -L https://git.io/get_helm.sh | bash

  • เปเบŸเป‰เบก:

https://github.com/helm/helm/releases

  • เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ Helm เปเบฅเบฐเบ•เบดเบ”เบ•เบฑเป‰เบ‡ Tiller เปƒเบ™เบเบธเปˆเบก:

helm init --history-max 200

  • เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบ•เบปเบงเบขเปˆเบฒเบ‡:

helm repo update
helm install --name releasemysql stable/mysql

เบ„เปเบฒเบชเบฑเปˆเบ‡เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ›เปˆเบญเบเบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบ„เบปเบ‡เบ—เบตเปˆ / mysql, เปเบฅเบฐเบเบฒเบ™เบ›เปˆเบญเบเบญเบญเบเบกเบฒเป€เบญเบตเป‰เบ™เบงเปˆเบฒ releasemysql.
เบเบงเบ”เป€เบšเบดเปˆเบ‡เบเบฒเบ™เบ›เปˆเบญเบเบซเบกเบงเบเบเบฑเบ™เบเบฐเบ—เบปเบšเป‚เบ”เบเปƒเบŠเป‰เบฅเบฒเบเบŠเบทเปˆเบซเบกเบงเบเบเบฑเบ™เบเบฐเบ—เบปเบš.

  • เบชเบธเบ”เบ—เป‰เบฒเบ, เบเบฒเบ™เบ›เปˆเบญเบเบชเบฒเบกเบฒเบ”เบ–เบทเบเบฅเบถเบš:

helm delete --purge releasemysql

เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบกเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบฅเบฐเบ›เบฐเบชเบปเบšเบเบฒเบ™ Kubernetes เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เบˆเบฐเบเป‰เบฝเบ‡เบเบงเปˆเบฒ. เบญเบธเบ—เบดเบ”เป€เบงเบฅเบฒเบซเบงเปˆเบฒเบ‡เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เปƒเบซเป‰เบเบฑเบšเป€เบ›เบปเป‰เบฒเปเบฒเบเบซเบผเบฑเบเบ‚เบญเบ‡เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™ Kubernetes เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เปƒเบ™เบเบธเปˆเบก. เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบกเบตเบ„เปเบฒเบ–เบฒเบกเบเปˆเบฝเบงเบเบฑเบš Kubernetes เบซเบผเบท Helm, เบ‚เบฝเบ™เบซเบฒเบžเบงเบเป€เบฎเบปเบฒ.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™