Kubectl Π΅ ΠΌΠΎΡΠ½Π° Π°Π»Π°ΡΠΊΠ° Π·Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½Π° Π»ΠΈΠ½ΠΈΡΠ° Π·Π° Kubernetes ΠΈ Kubernetes, ΠΈ Π½ΠΈΠ΅ ΡΠ° ΠΊΠΎΡΠΈΡΡΠΈΠΌΠ΅ ΡΠ΅ΠΊΠΎΡ Π΄Π΅Π½. ΠΠΌΠ° ΠΌΠ½ΠΎΠ³Ρ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π³ΠΎ ΡΠ°ΡΠΏΠΎΡΠ΅Π΄ΠΈΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠΎΡ Kubernetes ΠΈΠ»ΠΈ Π½Π΅Π³ΠΎΠ²ΠΈΡΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΈ ΠΊΠ°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ ΡΠΎ Π½Π΅Π³ΠΎ.
ΠΠ²Π΅ Π½Π΅ΠΊΠΎΠ»ΠΊΡ ΠΊΠΎΡΠΈΡΠ½ΠΈ ΡΠΎΠ²Π΅ΡΠΈ Π·Π° ΡΠΎΠ° ΠΊΠ°ΠΊΠΎ Π΄Π° ΠΊΠΎΠ΄ΠΈΡΠ°ΡΠ΅ ΠΈ ΡΠ°ΡΠΏΠΎΡΠ΅Π΄ΠΈΡΠ΅ ΠΏΠΎΠ±ΡΠ·ΠΎ Π½Π° Kubernetes.
Π°Π²ΡΠΎΠΌΠ°ΡΡΠΊΠΎ ΠΊΠΎΠΌΠΏΠ»Π΅ΡΠΈΡΠ°ΡΠ΅ Π½Π° kubectl
ΠΠ΅ Π³ΠΎ ΠΊΠΎΡΠΈΡΡΠΈΡΠ΅ 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
ΠΠ°ΠΊΠΎ ΡΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅ Π²ΠΎ ΠΈΠ·Π»Π΅Π·ΠΎΡ Π·Π° ΠΈΠ½ΡΡΠ°Π»Π°ΡΠΈΡΠ° Π½Π° ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠ° (Π΄Π΅Π»ΠΎΡ Π·Π°Π±Π΅Π»Π΅ΡΠΊΠΈ), ΡΡΠ΅Π±Π° Π΄Π° Π³ΠΈ Π΄ΠΎΠ΄Π°Π΄Π΅ΡΠ΅ ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΡΠ΅Π΄ΠΎΠ²ΠΈ Π²ΠΎ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°ΡΠ° ~/.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 Π½Π° Github. ΠΡ
ΠΌΠ΅Ρ ΠΠ»ΠΏ ΠΠ°Π»ΠΊΠ°Π½ (
Π‘Π°ΠΌΠΎ Π½Π΅ ΠΏΠΎΡΡΠ°Π²ΡΠ²Π°ΡΡΠ΅ Π³ΠΎ Π°Π»ΠΈΡΠ°ΡΠΎΡ kubectl Π·Π° ΠΏΠΎΡΠ΅ΡΠ½ΠΈΠΊ, ΠΈΠ½Π°ΠΊΡ ΡΠΎΡ Π½ΠΈΠΊΠΎΠ³Π°Ρ Π½Π΅ΠΌΠ° Π΄Π° Π³ΠΈ ΡΠ°Π·Π±Π΅ΡΠ΅ ΡΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ. ΠΡΠ²ΠΎ Π½Π΅ΠΊΠ° Π²Π΅ΠΆΠ±Π° Π½Π΅Π΄Π΅Π»Π° ΠΈΠ»ΠΈ Π΄Π²Π΅.
Π’Π°Π±Π΅Π»ΠΈ Π½Π° Kubernetes + Helm
Β«
ΠΠΎΠ³Π° ΠΈΠΌΠ°ΡΠ΅ Π³ΠΎΠ»Π΅ΠΌ Π±ΡΠΎΡ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ Π½Π° ΠΡΠ±Π΅ΡΠ½Π΅ΡΠ΅Ρ ΠΊΠΎΠΈ ΡΠ°Π±ΠΎΡΠ°Ρ, Π½ΠΈΠ²Π½ΠΎΡΠΎ ΡΠ°ΡΠΏΠΎΡΠ΅Π΄ΡΠ²Π°ΡΠ΅ ΠΈ Π°ΠΆΡΡΠΈΡΠ°ΡΠ΅ ΡΡΠ°Π½ΡΠ²Π° Π±ΠΎΠ»ΠΊΠ°, ΠΎΡΠΎΠ±Π΅Π½ΠΎ Π°ΠΊΠΎ ΡΡΠ΅Π±Π° Π΄Π° ΡΠ° Π°ΠΆΡΡΠΈΡΠ°ΡΠ΅ ΠΎΠ·Π½Π°ΠΊΠ°ΡΠ° Π·Π° ΡΠ»ΠΈΠΊΠ° Π½Π° Π΄ΠΎΠΊΠ΅Ρ ΠΏΡΠ΅Π΄ ΡΠ°ΡΠΏΠΎΡΠ΅Π΄ΡΠ²Π°ΡΠ΅ΡΠΎ. Π’Π°Π±Π΅Π»ΠΈΡΠ΅ Π½Π° ΠΊΠΎΡΠΌΠΈΠ»ΠΎΡΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Π°Ρ ΠΏΠ°ΠΊΠ΅ΡΠΈ ΡΠΎ ΠΊΠΎΠΈ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈΡΠ΅ ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠ°ΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π°Ρ, ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π°Ρ ΠΈ Π°ΠΆΡΡΠΈΡΠ°Π°Ρ ΠΊΠΎΠ³Π° ΡΠ΅ Π±ΠΈΠ΄Π°Ρ Π»Π°Π½ΡΠΈΡΠ°Π½ΠΈ Π½Π° ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΡ ΠΎΠ΄ ΡΠΈΡΡΠ΅ΠΌΠΎΡ Π·Π° ΠΎΡΠ»ΠΎΠ±ΠΎΠ΄ΡΠ²Π°ΡΠ΅.
ΠΠ°ΠΊΠ΅ΡΠΎΡ Kubernetes Π²ΠΎ Helm ΡΠ΅ Π½Π°ΡΠ΅ΠΊΡΠ²Π° Π³ΡΠ°ΡΠΈΠΊΠΎΠ½ ΠΈ ΡΠΎΠ΄ΡΠΆΠΈ ΠΌΠ½ΠΎΠ³Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΡΡΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Π°Ρ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠΊ ΠΎΠ΄ Kubernetes.
ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠ°ΡΠ° Π΅ ΠΌΠ½ΠΎΠ³Ρ ΠΊΠΎΡΠΈΡΠ½Π°: ΡΠΎΠ΄ΡΠΆΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π·Π° ΡΠΎΠ° ΠΊΠ°ΠΊΠΎ Π΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½ Π³ΡΠ°ΡΠΈΠΊΠΎΠ½ΠΎΡ. ΠΠ·Π΄Π°Π½ΠΈΠ΅ΡΠΎ Π΅ ΠΏΠΎΡΡΠΎΠ΅ΡΠΊΠΈ ΠΏΡΠΈΠΌΠ΅Ρ Π²ΠΎ ΠΊΠ»Π°ΡΡΠ΅Ρ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠ°Π½ ΡΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠ°.
ΠΠ° ΡΠ°Π·Π»ΠΈΠΊΠ° ΠΎΠ΄ apt ΠΈΠ»ΠΈ yum, ΡΠ°Π±Π΅Π»ΠΈΡΠ΅ Π½Π° Helm (Ρ.Π΅. ΠΏΠ°ΠΊΠ΅ΡΠΈΡΠ΅) ΡΠ΅ ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½ΠΈ Π½Π° Π²ΡΠ²ΠΎΡ Π½Π° Kubernetes ΠΈ ΡΠ΅Π»ΠΎΡΠ½ΠΎ ΡΠ° ΠΈΡΠΊΠΎΡΠΈΡΡΡΠ²Π°Π°Ρ Π½Π΅Π³ΠΎΠ²Π°ΡΠ° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Π½Π° ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΡ, Π° Π½Π°ΡΠΊΡΠ» ΡΠ°Π±ΠΎΡΠ° Π΅ ΠΌΠΎΠΆΠ½ΠΎΡΡΠ° Π΄Π° ΡΠ΅ Π·Π΅ΠΌΠ΅ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ ΠΏΡΠΈΡΠΏΠΎΡΠΎΠ±Π»ΠΈΠ²ΠΎΡΡΠ° ΠΎΠ΄ ΡΠ°ΠΌΠΈΠΎΡ ΠΏΠΎΡΠ΅ΡΠΎΠΊ. Π’Π°Π±Π΅Π»ΠΈΡΠ΅ Π½Π° ΡΠΈΡΠ΅ ΡΠ»ΠΈΠΊΠΈ ΡΡΠΎ Π³ΠΈ ΠΊΠΎΡΠΈΡΡΠΈ 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
- ΠΠ°ΡΠΎΡΠ΅ΠΊΠ°:
- ΠΠ½ΠΈΡΠΈΡΠ°Π»ΠΈΠ·ΠΈΡΠ°ΡΡΠ΅ Π³ΠΎ 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