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) (https://twitter.com/ahmetb) понимает в них толк, узнайте больше о его алиасах на github
Только не устанавливайте алиас kubectl для новичка, иначе он в жизни не разберется со всеми командами. Пусть сначала попрактикуется недельку-другую.
Kubernetes + Helm-чарты
«Helm — это лучший способ находить, распространять и использовать ПО, созданное для Kubernetes».
Когда у вас заводится куча приложений 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
- Файл:
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 с помощью helm list.
- Наконец, релиз можно удалить:
helm delete --purge releasemysql
Следуйте этим советам, и работа с Kubernetes пойдет живее. Освободившееся время посвятите главной цели своих приложений Kubernetes в кластере. Если есть вопросы о Kubernetes или Helm, напишите нам.
Комментарии (2)
shurup
12.08.2019 17:58Очень слабые советы. Если конкретнее, то:
- completion для kubectl — азбука;
- про kubectl-aliases писали, например, здесь (2 года назад), где были другие интересные проекты по теме;
- Helm — даже прокомментировать сложно. Это не tip, не trick, а очевидный инструмент. И такой «мануал» по нему — кхе-кхе…
korjavin
Странноватые t&t