Π‘ΡŠΠ²Π΅Ρ‚ΠΈ ΠΈ Ρ‚Ρ€ΠΈΠΊΠΎΠ²Π΅ Π½Π° Kubernetes: ΠΊΠ°ΠΊ Π΄Π° ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚Π΅ производитСлността

Π‘ΡŠΠ²Π΅Ρ‚ΠΈ ΠΈ Ρ‚Ρ€ΠΈΠΊΠΎΠ²Π΅ Π½Π° Kubernetes: ΠΊΠ°ΠΊ Π΄Π° ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚Π΅ производитСлността

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. АхмСт Алп Π‘Π°Π»ΠΊΠ°Π½ (https://twitter.com/ahmetb) Π·Π½Π°Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Π·Π° тях, Π½Π°ΡƒΡ‡Π΅Ρ‚Π΅ ΠΏΠΎΠ²Π΅Ρ‡Π΅ Π·Π° Π½Π΅Π³ΠΎΠ²ΠΈΡ‚Π΅ псСвдоними Π² github

Π‘ΡŠΠ²Π΅Ρ‚ΠΈ ΠΈ Ρ‚Ρ€ΠΈΠΊΠΎΠ²Π΅ Π½Π° Kubernetes: ΠΊΠ°ΠΊ Π΄Π° ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚Π΅ производитСлността

ΠŸΡ€ΠΎΡΡ‚ΠΎ Π½Π΅ Π·Π°Π΄Π°Π²Π°ΠΉΡ‚Π΅ псСвдонима kubectl Π·Π° Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‰, Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π΅Π½ случай Ρ‚ΠΎΠΉ Π½ΠΈΠΊΠΎΠ³Π° няма Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅ всички ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ. ΠžΡΡ‚Π°Π²Π΅Ρ‚Π΅ Π³ΠΎ ΠΏΡŠΡ€Π²ΠΎ Π΄Π° Ρ‚Ρ€Π΅Π½ΠΈΡ€Π° сСдмица ΠΈΠ»ΠΈ Π΄Π²Π΅.

Π“Ρ€Π°Ρ„ΠΈΠΊΠΈ Π½Π° Kubernetes + Helm

Β«Π¨Π»Π΅ΠΌ Π΅ Π½Π°ΠΉ-добрият Π½Π°Ρ‡ΠΈΠ½ Π·Π° ΠΎΡ‚ΠΊΡ€ΠΈΠ²Π°Π½Π΅, разпространСниС ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° софтуСр, създадСн Π·Π° Kubernetes.”

ΠšΠΎΠ³Π°Ρ‚ΠΎ ΠΈΠΌΠ°Ρ‚Π΅ ΠΊΡƒΠΏ Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰ΠΈ прилоТСния Π½Π° Kubernetes, внСдряванСто ΠΈ Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ ΠΈΠΌ сС ΠΏΡ€Π΅Π²Ρ€ΡŠΡ‰Π° Π² мъка, особСно Π°ΠΊΠΎ трябва Π΄Π° Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π°Ρ‚Π΅ ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Π° Π½Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π΄ΠΎΠΊΠ΅Ρ€ ΠΏΡ€Π΅Π΄ΠΈ внСдряванСто. Helm Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΈΡ‚Π΅ ΡΡŠΠ·Π΄Π°Π²Π°Ρ‚ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ, с ΠΊΠΎΠΈΡ‚ΠΎ прилоТСнията ΠΈ конфигурацията ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½ΠΈ, инсталирани ΠΈ Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ, ΠΊΠΎΠ³Π°Ρ‚ΠΎ сС стартират Π² ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π° ΠΎΡ‚ систСмата Π·Π° ΠΈΠ·Π΄Π°Π²Π°Π½Π΅.

Π‘ΡŠΠ²Π΅Ρ‚ΠΈ ΠΈ Ρ‚Ρ€ΠΈΠΊΠΎΠ²Π΅ Π½Π° Kubernetes: ΠΊΠ°ΠΊ Π΄Π° ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚Π΅ производитСлността

ΠŸΠ°ΠΊΠ΅Ρ‚ 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

  • Ρ„Π°ΠΉΠ»:

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

  • Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€Π°ΠΉΡ‚Π΅ 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

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€