Π‘ΠΎΠ²Π΅Ρ‚ΠΈ ΠΈ Ρ‚Ρ€ΠΈΠΊΠΎΠ²ΠΈ Π½Π° Kubernetes: ΠΊΠ°ΠΊΠΎ Π΄Π° ја Π·Π³ΠΎΠ»Π΅ΠΌΠΈΡ‚Π΅ продуктивноста

Π‘ΠΎΠ²Π΅Ρ‚ΠΈ ΠΈ Ρ‚Ρ€ΠΈΠΊΠΎΠ²ΠΈ Π½Π° Kubernetes: ΠΊΠ°ΠΊΠΎ Π΄Π° ја Π·Π³ΠΎΠ»Π΅ΠΌΠΈΡ‚Π΅ продуктивноста

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

Π‘ΠΎΠ²Π΅Ρ‚ΠΈ ΠΈ Ρ‚Ρ€ΠΈΠΊΠΎΠ²ΠΈ Π½Π° Kubernetes: ΠΊΠ°ΠΊΠΎ Π΄Π° ја Π·Π³ΠΎΠ»Π΅ΠΌΠΈΡ‚Π΅ продуктивноста

Π‘Π°ΠΌΠΎ Π½Π΅ ΠΏΠΎΡΡ‚Π°Π²ΡƒΠ²Π°Ρ˜Ρ‚Π΅ Π³ΠΎ Π°Π»ΠΈΡ˜Π°ΡΠΎΡ‚ kubectl Π·Π° ΠΏΠΎΡ‡Π΅Ρ‚Π½ΠΈΠΊ, ΠΈΠ½Π°ΠΊΡƒ Ρ‚ΠΎΡ˜ никогаш Π½Π΅ΠΌΠ° Π΄Π° Π³ΠΈ Ρ€Π°Π·Π±Π΅Ρ€Π΅ ситС ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ. ΠŸΡ€Π²ΠΎ Π½Π΅ΠΊΠ° Π²Π΅ΠΆΠ±Π° Π½Π΅Π΄Π΅Π»Π° ΠΈΠ»ΠΈ Π΄Π²Π΅.

Π’Π°Π±Π΅Π»ΠΈ Π½Π° Kubernetes + Helm

Β«ΠΊΠΎΡ€ΠΌΠΈΠ»ΠΎΡ‚ΠΎ Π΅ Π½Π°Ρ˜Π΄ΠΎΠ±Ρ€ΠΈΠΎΡ‚ Π½Π°Ρ‡ΠΈΠ½ Π΄Π° сС ΠΎΡ‚ΠΊΡ€ΠΈΠ΅, дистрибуира ΠΈ користи софтвСрот создадСн Π·Π° Kubernetesβ€œ.

Кога ΠΈΠΌΠ°Ρ‚Π΅ Π³ΠΎΠ»Π΅ΠΌ Π±Ρ€ΠΎΡ˜ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π½Π° ΠšΡƒΠ±Π΅Ρ€Π½Π΅Ρ‚Π΅Ρ ΠΊΠΎΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚, Π½ΠΈΠ²Π½ΠΎΡ‚ΠΎ Ρ€Π°ΡΠΏΠΎΡ€Π΅Π΄ΡƒΠ²Π°ΡšΠ΅ ΠΈ Π°ΠΆΡƒΡ€ΠΈΡ€Π°ΡšΠ΅ станува Π±ΠΎΠ»ΠΊΠ°, особСно Π°ΠΊΠΎ Ρ‚Ρ€Π΅Π±Π° Π΄Π° ја Π°ΠΆΡƒΡ€ΠΈΡ€Π°Ρ‚Π΅ ΠΎΠ·Π½Π°ΠΊΠ°Ρ‚Π° Π·Π° слика Π½Π° Π΄ΠΎΠΊΠ΅Ρ€ ΠΏΡ€Π΅Π΄ Ρ€Π°ΡΠΏΠΎΡ€Π΅Π΄ΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ. Π’Π°Π±Π΅Π»ΠΈΡ‚Π΅ Π½Π° ΠΊΠΎΡ€ΠΌΠΈΠ»ΠΎΡ‚ΠΎ создаваат ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ со ΠΊΠΎΠΈ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈΡ‚Π΅ ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ˜Π°Ρ‚Π° ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π°Ρ‚, инсталираат ΠΈ Π°ΠΆΡƒΡ€ΠΈΡ€Π°Π°Ρ‚ ΠΊΠΎΠ³Π° ќС Π±ΠΈΠ΄Π°Ρ‚ лансирани Π½Π° кластСрот ΠΎΠ΄ систСмот Π·Π° ΠΎΡΠ»ΠΎΠ±ΠΎΠ΄ΡƒΠ²Π°ΡšΠ΅.

Π‘ΠΎΠ²Π΅Ρ‚ΠΈ ΠΈ Ρ‚Ρ€ΠΈΠΊΠΎΠ²ΠΈ Π½Π° Kubernetes: ΠΊΠ°ΠΊΠΎ Π΄Π° ја Π·Π³ΠΎΠ»Π΅ΠΌΠΈΡ‚Π΅ продуктивноста

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

  • Π”Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ°:

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

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

Π”ΠΎΠ΄Π°Π΄Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€