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 (ΡΠ°Π·Π΄Π΅Π» ΠΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΡ), ΡΡΡΠ±Π²Π° Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡΠ΅ ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΡΠ΅Π΄ΠΎΠ²Π΅ ΠΊΡΠΌ ΡΠ°ΠΉΠ»Π° ~/.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 Π² 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 delete --purge releasemysql
Π‘Π»Π΅Π΄Π²Π°ΠΉΡΠ΅ ΡΠ΅Π·ΠΈ ΡΡΠ²Π΅ΡΠΈ ΠΈ ΠΈΠ·ΠΆΠΈΠ²ΡΠ²Π°Π½Π΅ΡΠΎ Π²ΠΈ Ρ Kubernetes ΡΠ΅ ΠΏΡΠ΅ΠΌΠΈΠ½Π΅ ΠΏΠΎ-Π³Π»Π°Π΄ΠΊΠΎ. ΠΠΎΡΠ²Π΅ΡΠ΅ΡΠ΅ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΡΠΎ ΡΠΈ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΡΠ΅Π» Π½Π° Π²Π°ΡΠΈΡΠ΅ Kubernetes ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² ΠΊΠ»ΡΡΡΠ΅ΡΠ°. ΠΠΊΠΎ ΠΈΠΌΠ°ΡΠ΅ Π²ΡΠΏΡΠΎΡΠΈ ΠΎΡΠ½ΠΎΡΠ½ΠΎ Kubernetes ΠΈΠ»ΠΈ Helm,
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com