
Kubectl Π΅ Π΅ΡΠ΅ΠΊΡΠΈΠ²Π΅Π½ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π·Π° ΠΊΠΎΠΌΠ°Π½Π΄Π΅Π½ ΡΠ΅Π΄ Π½Π° Kubernetes ΠΈ Π½ΠΈΠ΅ Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΎ. ΠΠΌΠ° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ Ρ Π½Π΅Π³ΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ°Π·Π³ΡΡΡΠ°ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ° Kubernetes ΠΈΠ»ΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ ΠΌΡ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ.
ΠΡΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΈ ΡΡΠ²Π΅ΡΠΈ Π·Π° ΠΏΠΎ-Π±ΡΡΠ·ΠΎ ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ ΠΈ Π΄Π΅ΠΏΠ»ΠΎΠΉ Π² Kubernetes.
ΠΠ²ΡΠΎΠ·Π°Π²ΡΡΡΠ²Π°Π½Π΅ Π½Π° kubectl
Kubectl ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ, ΡΠ°ΠΊΠ° ΡΠ΅ Ρ Π°Π²ΡΠΎΠ·Π°Π²ΡΡΡΠ²Π°Π½Π΅ΡΠΎ Π½ΡΠΌΠ° Π΄Π° ΡΠ΅ Π½Π°Π»Π°Π³Π° Π΄Π° Π½Π°ΡΠΈΡΠΊΠ°ΡΠ΅ ΠΊΠ»Π°Π²ΠΈΡΠΈΡΠ΅ ΠΈΠ·Π»ΠΈΡΠ½ΠΎ.
ΠΡΡΠ²ΠΎ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΉΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠ° bash-completion (ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π½Π΅ Π΅ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½).
- 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 install (ΡΠ°Π·Π΄Π΅Π» 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) () Π·Π½Π°Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π·Π° ΡΡΡ , Π½Π°ΡΡΠ΅ΡΠ΅ ΠΏΠΎΠ²Π΅ΡΠ΅ Π·Π° Π½Π΅Π³ΠΎΠ²ΠΈΡΠ΅ Π°Π»ΠΈΠ°ΡΠΈ Π½Π° github

Π‘Π°ΠΌΠΎ Π½Π΅ Π·Π°Π΄Π°Π²Π°ΠΉΡΠ΅ Π°Π»ΠΈΠ°Ρ Π·Π° kubectl Π½Π° Π½Π°ΡΠΈΠ½Π°Π΅Ρ, ΠΈΠ½Π°ΡΠ΅ ΡΠΎΠΉ Π½ΠΈΠΊΠΎΠ³Π° Π½ΡΠΌΠ° Π΄Π° ΡΠ°Π·Π±Π΅ΡΠ΅ Π²ΡΠΈΡΠΊΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ. ΠΠ΅ΠΊΠ° ΠΏΡΡΠ²ΠΎ Π΄Π° ΠΏΠΎΡΠ°Π±ΠΎΡΠΈ Π² ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠ΅Π΄ΠΌΠΈΡΠ°-Π΄Π²Π΅.
Kubernetes + Helm-ΡΠ°ΡΡΠΎΠ²Π΅
« С Π½Π°ΠΉ-Π΄ΠΎΠ±ΡΠΈΡΡ Π½Π°ΡΠΈΠ½ Π΄Π° Π½Π°ΠΌΠΈΡΠ°ΡΠ΅, ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΡΠ²Π°ΡΠ΅ ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΡΠΎΡΡΡΠ΅Ρ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ΅Π½ Π·Π° Kubernetes.
ΠΠΎΠ³Π°ΡΠΎ ΠΈΠΌΠ°ΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² Kubernetes, ΡΠ°Π·Π³ΡΡΡΠ°Π½Π΅ΡΠΎ ΠΈ ΠΎΠ±Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ΡΠΎ ΠΈΠΌ ΡΠ΅ ΠΏΡΠ΅Π²ΡΡΡΠ° Π² ΠΌΡΠΊΠ°, ΠΎΡΠΎΠ±Π΅Π½ΠΎ Π°ΠΊΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΡΠ΅ ΠΎΠ±Π½ΠΎΠ²ΠΈ ΡΠ°Π³ΡΡ Π½Π° docker-ΠΎΠ±ΡΠ°Π·Π° ΠΏΡΠ΅Π΄ΠΈ ΡΠ°Π·Π³ΡΡΡΠ°Π½Π΅ΡΠΎ. Helm-ΡΠ°ΡΡΠΎΠ²Π΅ΡΠ΅ ΡΡΠ·Π΄Π°Π²Π°Ρ ΠΏΠ°ΠΊΠ΅ΡΠΈ, Ρ ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΠ΅, ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΡΠ΅ ΠΈ ΠΎΠ±Π½ΠΎΠ²ΡΠ²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ΅ ΡΠ΅ ΡΡΠ°ΡΡΠΈΡΠ°Ρ Π½Π° ΠΊΠ»ΡΡΡΠ΅ΡΠ° ΡΡΠ΅Π· ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π·Π° ΡΠ΅Π»ΠΈΠ·ΠΈ.

ΠΠ°ΠΊΠ΅ΡΡΡ Kubernetes Π² Helm ΡΠ΅ Π½Π°ΡΠΈΡΠ° ΡΠ°ΡΡ ΠΈ ΡΡΠ΄ΡΡΠΆΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΠΏΠΎ ΠΊΠΎΡΡΠΎ ΡΠ΅ ΡΡΠ·Π΄Π°Π²Π° ΠΈΠ½ΡΡΠ°Π½ΡΠΈΡ Π½Π° Kubernetes.
ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Π΅Π·Π½Π°: ΡΡ ΡΡΠ΄ΡΡΠΆΠ° Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΈ Π΄Π°Π½Π½ΠΈ Π·Π° Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΡΠ° Π½Π° ΡΠ°ΡΡΠΎΠ²Π΅ΡΠ΅. Π Π΅Π»ΠΈΠ·ΡΡ Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠ° ΠΈΠ½ΡΡΠ°Π½ΡΠΈΡ Π² ΠΊΠ»ΡΡΡΠ΅ΡΠ°, ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠ°Π½Π° Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ.
Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ apt ΠΈΠ»ΠΈ yum, Helm-ΡΠ°ΡΡΠΎΠ²Π΅ΡΠ΅ (ΡΠΎΠ΅ΡΡ ΠΏΠ°ΠΊΠ΅ΡΠΈΡΠ΅) ΡΠ΅ ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Ρ Π²ΡΡΡ Ρ Kubernetes ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π²ΡΠΈΡΠΊΠΈ ΠΏΡΠ΅Π΄ΠΈΠΌΡΡΠ²Π° Π½Π° ΠΊΠ»Π°ΡΡΠ΅ΡΠ½Π°ΡΠ° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°, Π° Π½Π°ΠΉ-Ρ ΡΠ±Π°Π²ΠΎΡΠΎ Π΅, ΡΠ΅ ΠΏΡΠ΅Π΄Π²ΠΈΠΆΠ΄Π°Ρ ΠΌΠ°ΡΠ°Π±ΠΈΡΡΠ΅ΠΌΠΎΡΡ ΠΎΡ ΡΠ°ΠΌΠΎΡΠΎ Π½Π°ΡΠ°Π»ΠΎ. Π§Π°ΡΡΠΎΠ²Π΅ΡΠ΅ Π½Π° Π²ΡΠΈΡΠΊΠΈ ΠΎΠ±ΡΠ°Π·ΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Helm, ΡΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π°Ρ Π² ΡΠ΅Π³ΠΈΡΡΡΡ, Π½Π°ΡΠ΅ΡΠ΅Π½ Helm Workspace. Π‘Π»Π΅Π΄ ΡΠ°Π·Π³ΡΡΡΠ°Π½Π΅ΡΠΎ Π²Π°ΡΠΈΡΠ΅ DevOps Π΅ΠΊΠΈΠΏΠΈ ΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π±ΡΡΠ·ΠΎ Π΄Π° Π½Π°ΠΌΠΈΡΠ°Ρ ΡΠ°ΡΡΠΎΠ²Π΅ΡΠ΅ ΠΈ Π΄Π° Π³ΠΈ Π΄ΠΎΠ±Π°Π²ΡΡ Π² ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠ΅ ΡΠΈ.
Helm ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½ ΠΏΠΎ Π΄ΡΡΠ³ΠΈ Π½Π°ΡΠΈΠ½ΠΈ:
- Snap / Linux :
sudo snap install helm --classic- Homebrew / macOS :
brew install kubernetes-helm- Π‘ΠΊΡΠΈΠΏΡ:
curl -L https://git.io/get_helm.sh | bash- Π€Π°ΠΉΠ»:
- ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠ°ΠΉΡΠ΅ Helm ΠΈ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΉΡΠ΅ Tiller Π² ΠΊΠ»ΡΡΡΠ΅ΡΠ°:
helm init --history-max 200- ΠΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΉΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ΅Π½ ΡΠ°ΡΡ:
helm repo update
helm install --name releasemysql stable/mysqlΠ’Π΅Π·ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Ρ ΡΠ°ΡΡΠ° stable/mysql, Π° ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½Π΅ΡΠΎ ΡΠ΅ Π½Π°ΡΠΈΡΠ° releasemysql.
ΠΡΠΎΠ²Π΅ΡΠ΅ΡΠ΅ ΡΠ΅Π»ΠΈΠ·ΠΈΡΠ΅ Π½Π° helm Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° helm list.
- ΠΠ°ΠΊΡΠ°Ρ, ΡΠ΅Π»ΠΈΠ·ΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΈΠ·ΡΡΠΈΡ:
helm delete --purge releasemysqlΠ‘Π»Π΅Π΄Π²Π°ΠΉΡΠ΅ ΡΠ΅Π·ΠΈ ΡΡΠ²Π΅ΡΠΈ ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΠ° Ρ Kubernetes ΡΠ΅ Π±ΡΠ΄Π΅ ΠΏΠΎ-Π»Π΅ΡΠ½Π°. ΠΡΠ²ΠΎΠ±ΠΎΠ΄Π΅Π½ΠΎΡΠΎ Π²ΡΠ΅ΠΌΠ΅ ΠΏΠΎΡΠ²Π΅ΡΠ΅ΡΠ΅ Π½Π° ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΡΠ΅Π» Π½Π° Π²Π°ΡΠΈΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² ΠΊΠ»ΡΡΡΠ΅ΡΠ°. ΠΠΊΠΎ ΠΈΠΌΠ°ΡΠ΅ Π²ΡΠΏΡΠΎΡΠΈ Π·Π° Kubernetes ΠΈΠ»ΠΈ Helm, .
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: habr.com
