KubectlΒ β ΡΡΠΎ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Kubernetes ΠΈ Π΄Π»Ρ 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) (
Π’ΠΎΠ»ΡΠΊΠΎ Π½Π΅ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΠΉΡΠ΅ Π°Π»ΠΈΠ°Ρ kubectl Π΄Π»Ρ Π½ΠΎΠ²ΠΈΡΠΊΠ°, ΠΈΠ½Π°ΡΠ΅ ΠΎΠ½ Π² ΠΆΠΈΠ·Π½ΠΈ Π½Π΅ ΡΠ°Π·Π±Π΅ΡΠ΅ΡΡΡ ΡΠΎ Π²ΡΠ΅ΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ. ΠΡΡΡΡ ΡΠ½Π°ΡΠ°Π»Π° ΠΏΠΎΠΏΡΠ°ΠΊΡΠΈΠΊΡΠ΅ΡΡΡ Π½Π΅Π΄Π΅Π»ΡΠΊΡ-Π΄ΡΡΠ³ΡΡ.
Kubernetes + Helm-ΡΠ°ΡΡΡ
Β«
ΠΠΎΠ³Π΄Π° Ρ Π²Π°Ρ Π·Π°Π²ΠΎΠ΄ΠΈΡΡΡ ΠΊΡΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ 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 Π² ΠΊΠ»Π°ΡΡΠ΅ΡΠ΅. ΠΡΠ»ΠΈ Π΅ΡΡΡ Π²ΠΎΠΏΡΠΎΡΡ ΠΎ Kubernetes ΠΈΠ»ΠΈ Helm,
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com