helm
основан наkubernetes
менеджер пакетов. этоkubernetes
какyum
Этоcentos
,pip
кpython
,npm
кjavascript
Тотhelm
Как внедрение помогает управлять кластером?
- Более простое развертывание инфраструктуры, такой как
gitlab
,postgres
,prometheus
,grafana
Ждать - Удобнее развертывать собственные приложения, настраивать Chart для внутренних проектов компании, использовать
helm
В сочетании с CI развертывание приложений в k8s выполняется так же просто, как одна строка команд.
Конечноhelm
Больший эффект заключается в разделении обязанностей операторов и разработчиков..
Нереально позволить разработчикам писать файлы конфигурации ресурсов k8s.
- Не все разработчики понимают k8s или очень мало, трудно писать файлы развертывания конфигурации ресурсов без понимания k8s
- Основная функция разработки по-прежнему в бизнесе
тогдаhelm
Время от времени выходите, напишите файлы конфигурации для эксплуатации и обслуживания и заполните несколько параметров для файлов конфигурации для разработки.
В этой статье в основном рассказывается, как установить helm и как использовать helm для развертывания основных служб и предприятий.
- Оригинальный адрес:Установка и использование Helm
- Серия статей:Руководство по эксплуатации и обслуживанию персонального сервера
Если вы новичок, в Alibaba Cloud действуют скидки на покупку машин, вы можете нажатьСсылка на сайтКупить. вы можете следить за моими заметкамиРуководство по эксплуатации и обслуживанию серверачтобы начать обслуживание сервера и создание приложения.
вводить
-
Chart
: Именование серии коллекций ресурсов k8s, которая содержит серию шаблонов и параметров файлов конфигурации ресурсов k8s для гибкой настройки. -
release
: когда диаграмма развертывается и создается выпуск, диаграмма/выпуск аналогичны изображению/контейнеру в докере. -
repo
: То есть репозиторий чартов, там много чартов на выбор, например официальнаяhelm/charts
использоватьhelm create
Создайте диаграмму, чтобы понять структуру каталогов простого диаграммы
Обратитесь к следующему разделу о том, как установить helm
# 创建一个 chart
$ helm create todo
Creating todo
$ cd todo
# 打印 chart 目录,主要文件有 Chart.yaml 与 values.yaml
# --dirsfirst 先打印文件夹名称
$ tree --dirsfirst
.
├── charts
├── templates
│ ├── tests
│ │ └── test-connection.yaml
│ ├── NOTES.txt
│ ├── _helpers.tpl
│ ├── deployment.yaml
│ ├── ingress.yaml
│ └── service.yaml
├── Chart.yaml
└── values.yaml
3 directories, 8 files
Просмотр двух основных файловых каталогов
-
templates/
: это шаблон файла конфигурации, написанный братом по эксплуатации и обслуживанию.Примером является конфигурация ресурсов самого простого приложения, но сложное приложение также будет иметь pvc, роль, учетную запись службы и т. д. -
values.yaml
: Это необязательный параметр, написанный для брата-разработчика, но большинство параметров встроены братом по эксплуатации и обслуживанию.
Развертывание базовых сервисов с помощью helm
Реальные кейсы можно найти в других главах моего цикла статей
Вот несколько общих шагов по развертыванию базовых служб. Предположим, нам нужно развернуть Redis
здесь используется helm v3, синтаксис может немного отличаться от v2
01 Найдите связанные графики
использоватьhelm search hub
$ helm search hub redis
URL CHART VERSION APP VERSION DESCRIPTION
https://hub.helm.sh/charts/bitnami/redis 9.5.0 5.0.5 Open source, advanced key-value store. It is of...
https://hub.helm.sh/charts/hephy/redis v2.4.0 A Redis database for use inside a Kubernetes cl...
https://hub.helm.sh/charts/incubator/redis-cache 0.5.0 4.0.12-alpine A pure in-memory redis cache, using statefulset...
02 Выберите Chart и следуйте официальной документации Chart
мы выбираемstable/redisэтот график.
Отслеживайте официальные документы, устанавливайте соответствующие параметры и сохраняйте какvalues-production.yaml
# Production configuration
$ helm install stable/redis --values values-production.yaml
Репо будет добавлено при необходимости:helm repo add
# helm repo add stable https://kubernetes-charts.storage.googleapis.com/
# 列出所有 repo
$ helm repo list
NAME URL
stable https://kubernetes-charts.storage.googleapis.com/
apphub https://apphub.aliyuncs.com
jetstack https://charts.jetstack.io
03 Проверить статус развертывания
Это связано с ресурсами, которые необходимо развернуть, но обычно делится наService
,Pod
иPVC
установить руль
Обратитесь к официальной документации здесьустановить штурвал
helm
В helm v2 он разделен на две части: клиентскую (helm client, то есть средство командной строки) и серверную (helm server), которые также вызываются на стороне сервера.Tiller
,УстановитьTiller
При развертывании в кластереPod
.
helm
На данный момент выпущена v3, которая удаляетTiller
, для более конкретной ссылки на изменениеhelm v3 FAQ
Установить клиент (клиент helm)
Клиент helm должен быть установлен на любом сервере, где вы можете получить доступ к кластеру k8s, напримерkubectl
, а вообще, нужно устанавливать в двух местах
- Мастер-узел кластера K8S
- Ваш собственный ПК / Mac
В helm v3 просто установите клиент helm
Установить на Mac
$ brew install kubernetes-helm
установить на линукс
$ curl -LO https://git.io/get_helm.sh
$ chmod 700 get_helm.sh
$ ./get_helm.sh
Рекомендуется устанавливать по пакету исходных кодов (ведь могут быть сетевые проблемы с двумя вышеуказанными решениями), что касается того, как использоватьrsync
См. шаги установки ниже
Использует скрипты для установки в стране будут проблемы с сетью, нужно установить и использовать прокси узел
rsync
илиscp
перейти к целевому местоположению
Выбор примера2.14.3
установить,helm
Последняя версия может ссылаться наhelm/helm Releases.
Вы можете установить версию 3.0+, в настоящее время последняя версия
Helm v3.0.0-rc.1
(2019/11/01)
# 下载 MAC 上适用的软件包
# -L: 追踪重定向链接
# -O: 保存到本地
# -S: 打印错误
$ curl -SLO https://get.helm.sh/helm-v2.14.3-darwin-amd64.tar.gz
# 下载 CentOS 上适用的软件包
$ curl -SLO https://get.helm.sh/helm-v2.14.3-linux-amd64.tar.gz
# 如果有网络问题,请在代理节点下载并 rsync 到目标节点,如果没有,跳过此步
$ rsync -avhzP proxy:/root/helm-v2.14.3-linux-amd64.tar.gz .
# 如果在 mac 上
$ tar -zxvf helm-v2.14.3-darwin-amd64.tar.gz
# 如果在 centos 上
$ tar -zxvf helm-v2.14.3-linux-amd64.tar.gz
# 进入相应目录,移至 /bin 目录
$ mv linux-amd64/helm /usr/local/bin/helm
Установите румпель (сервер HELM)
Если вы используете Helm v3, вам не нужно устанавливать румпель.
01 Скачать зеркало
зеркальное отображение румпеляgcr.io/kubernetes-helm/tiller:v2.14.3
На gcr.io это означает, что домашнюю сеть необходимо сначала загрузить на прокси-узел, а затем переместить в целевое местоположение. Конкретные шаги см. в предыдущих главах.
02 Установка румпеля
при установкеhelm
После инструмента командной строки используйтеhelm init
Установить румпель. Установитьtiller
развернет pod на k8s.
$ 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
Судя по подсказке, на данный момент установка прошла успешно, и проверьте статус Pod.
# 查看 tiller 是否出在运行状态
$ kubectl get pods --all-namespaces
# 查看 helm 与 tiller 版本
$ helm version
Client: &version.Version{SemVer:"v2.14.3", GitCommit:"0e7f3b6637f7af8fcfddb3d2941fcc7cbebb0085", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.14.3", GitCommit:"0e7f3b6637f7af8fcfddb3d2941fcc7cbebb0085", GitTreeState:"clean"}
больше статей
- Руководство по эксплуатации и обслуживанию персонального сервера
- Разверните свое первое приложение с помощью k8s: Pod, развертывание и обслуживание
- Используйте k8s для настройки доменного имени для вашего приложения: Ingress
Я Shanyue, программист, мечтающий бегать и лазать, буду регулярно выкладывать full-stack статьи в личном паблике, добро пожаловать в общение