Что такое Kubernetes Helm? Зачем использовать шлем?
предисловие
Kubernetes написать кучу конфигурационных файлов очень хлопотное дело. Для некоторых судов, мы , возможно , потребуется более 10 YAML файлов. Поддержание их проблема, и запустите файл , используя тот же или в другой среде , это кошмар.
Мы можем использовать некоторый Баш уловку , чтобы заменить какую - то ценность, но это плохая практика.
Именно поэтому мы хотим использовать штурвал.
Следует отметить , что есть еще один хороший инструмент ksonnet
, по- своему, «то же самое» операция.
В этой статье я опишу , почему Хелм Kubernetes существенный элемент приложения, приложение будет Kubernetes Helm и процесс упаковки, а также как использовать некоторые сложные приложения развертывания Helm может иметь.
Зачем использовать пульт управления
Я недавно microService очень сложные развертывания, мой издатель файлы в каталоге имеет более чем 65 Kubernetes O файл конфигурация ... ( ^ ▽ ^ ) ┛).
Главный вопрос в том, как я кладу эту услугу для развертывания нескольких сред?
Или как использовать Kubernetes CI / CD?
Конечно, чтобы сделать некоторый сценарий оболочки является выбором, но я не люблю делать это.
Затем я начал использовать Kubernetes исследования CI / CD pipline, Helm найти некоторые команды интегрированы в процесс.
Мы можем понимать как пакет для применения в качестве приложения, как, что, где мы можем рассчитывать на управлении, различные виды крюка (предварительно установленные, предварительно обновить, установку и т.д.), и могут быть легко модернизированы или откат.
устанавливать
- Выберите версию вы хотите установить https://github.com/helm/helm/releases
- декомпрессия
tar -zxvf helm-v3.0.0-linux-amd64.tar.gz
- Распакуйте каталог, чтобы найти двоичный файл, переместить его в системных переменных, таких как каталог
mv linux-amd64/helm /usr/local/bin/helm
[root@localhost helm-test]# helm init
Creating /root/.helm
Creating /root/.helm/repository
Creating /root/.helm/repository/cache
Creating /root/.helm/repository/local
Creating /root/.helm/plugins
Creating /root/.helm/starters
Creating /root/.helm/cache/archive
Creating /root/.helm/repository/repositories.yaml
Adding stable repo with URL: https://kubernetes-charts.storage.googleapis.com
Adding local repo with URL: http://127.0.0.1:8879/charts
$HELM_HOME has been configured at /root/.helm.
Tiller (the Helm server-side component) has been installed into your Kubernetes Cluster.
Please note: by default, Tiller is deployed with an insecure 'allow unauthenticated users' policy.
To prevent this, run `helm init` with the --tiller-tls-verify flag.
For more information on securing your installation see: https://docs.helm.sh/using_helm/#securing-your-helm-installation
[root@localhost helm-test]#
стручки зрения kubernetes Кубэ-системы в пространстве имен
[root@localhost test-app]# kubectl get pods --namespace=kube-system
NAME READY STATUS RESTARTS AGE
coredns-58cc8c89f4-q7lgg 1/1 Running 4 40d
coredns-58cc8c89f4-wdqqx 1/1 Running 4 40d
etcd-localhost.localdomain 1/1 Running 4 40d
kube-apiserver-localhost.localdomain 1/1 Running 4 40d
kube-controller-manager-localhost.localdomain 1/1 Running 4 40d
kube-proxy-gt72b 1/1 Running 4 40d
kube-scheduler-localhost.localdomain 1/1 Running 4 40d
tiller-deploy-58f57c5787-t2b7w 0/1 ImagePullBackOff 0 22m
weave-net-qdr2l 2/2 Running 8 40d
[root@localhost test-app]#
Найдет tiller-deploy-*
начинается.
Создать образец
[root@localhost helm-test]# helm create test-app
Creating test-app
- После создания структуры каталогов выглядит следующим образом
[root@localhost helm-test]# tree test-app/
test-app/
├── charts
├── Chart.yaml
├── templates
│ ├── deployment.yaml
│ ├── _helpers.tpl
│ ├── ingress.yaml
│ ├── NOTES.txt
│ ├── serviceaccount.yaml
│ ├── service.yaml
│ └── tests
│ └── test-connection.yaml
└── values.yaml
3 directories, 9 files
[root@localhost helm-test]#
Chart.yaml
: Это основной файл описания диаграммыvalues.yaml
: Это файл, который содержит значение по умолчанию Диаграммыtemplates
: Это определяется как шаблон каталог ресурсов Kubernetescharts
: Это необязательный каталог, он может содержать суб-граф
Key %%
Подобно тому , как мы уже видели, все шаблоны папок профилей Kubernetes являются шаблонами.
Вы можете использовать Chart.yaml
файл для описания текущего проекта, и он может быть версированным.
Нам просто нужен файл, который используется для настройки приложения, и values.yaml
все значения сохраняются.
Run:
⚡ helm install --name test test-app/
Так наш первый демо-штурвал успеха реализации.
Кроме того , следующее сообщение об ошибке от имени стручка tiller-deploy-*
не началась успешно:
Error: could not find a ready tiller pod
Для получения дополнительной информации обратитесь к официальной документации https://helm.sh/docs/