Руководство по установке и использованию средства развертывания helm v3

Kubernetes

Шаньюэ недавно вспомнила, что у нее все еще есть кластер k8s, и решила выложить несколько облачных статей в мой репозиторий на github.GitHub.com/Шаншанюэ/…можно увидеть. Эта статья в основном знакомит с helm.Кроме того, он слишком прост и удобен в использовании.Развертывание приложений на k8s - это как дурак... дурацкая установка в один клик, вы это заслужили

helmоснован наkubernetesменеджер пакетов. этоkubernetesкакyumкcentos,pipкpython,npmкjavascript.

ТотhelmКак внедрение помогает управлять кластером? Это может быть отражено как в базовой эксплуатации, так и в построении технического обслуживания, а также в бизнес-приложениях.

  1. инфраструктуры, упрощая развертывание и обновление инфраструктуры, такой какgitlab,prometheus,grafana,ESЖдать
  2. Бизнес-приложения, более удобные для развертывания, управления и обновления внутренних приложений компании, настройка Chart для внутренних проектов компании, использованиеhelmВ сочетании с CI развертывание приложений в k8s выполняется так же просто, как одна строка команд.

КонечноhelmЕще более велика его мысль:Separation of concerns. Дальнейшее разделение обязанностей между эксплуатационным и обслуживающим персоналом и разработчиками.

Пусть разработчики пишутk8sПрофили ресурсов нереальны

  1. Не все разработчики понимают k8s или очень мало, трудно писать файлы развертывания конфигурации ресурсов без понимания k8s
  2. Основная функция разработки по-прежнему в бизнесе

тогдаhelmСо временем эксплуатация и техническое обслуживание проходятhelmНастройте шаблон файла ресурсов, а затем отдайте его разработчику для заполнения параметров.

В этой статье в основном рассказывается, как установить helm и как использовать helm для развертывания основных служб и предприятий.

установить штурвал

Обратитесь к официальной документации здесьустановить штурвал

helmНа данный момент выпущена v3, эта статья оhelmРуководство по установке и использованию дляhelm v3в качестве основы.

helmВ helm v2 он разделен на две части: клиентскую (helm client, то есть средство командной строки) и серверную (helm server), которые также вызываются на стороне сервера.Tiller,УстановитьTillerразвернетPod, чтобы заменить развертывание ресурсов.

Установить клиент (клиент helm)

Клиент helm должен быть установлен на любом сервере, где вы можете получить доступ к кластеру k8s, напримерkubectl, вы можете либо установить его самостоятельноPC/Mac, также может быть установлен вkubectlГлавный узел кластерной среды

Установить на Mac

$ brew install kubernetes-helm

установить на линукс

$ curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3
$ chmod 700 get_helm.sh
$ ./get_helm.sh

Устанавливать рекомендуется по бинарному пакету, ведь при использовании двух вышеуказанных решений могут возникнуть проблемы с сетью на целевой машине

  1. Необходимо загрузить бинарный скрипт на узел агента
  2. использоватьrsyncилиscpПереместите сценарий в целевое расположение целевой машины.

Выбор примера3.2.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-v3.2.3-darwin-amd64.tar.gz 

# 下载 CentOS 上适用的软件包
$ curl -SLO https://get.helm.sh/helm-v3.2.3-linux-amd64.tar.gz

# 如果有网络问题,请在代理节点下载并 rsync 到目标节点,如果没有,跳过此步
$ rsync -avhzP proxy:/root/helm-v3.2.3-linux-amd64.tar.gz .

# 如果在 mac 上
$ tar -zxvf helm-v3.2.3-darwin-amd64.tar.gz 

# 如果在 centos 上
$ tar -zxvf helm-v3.2.3-linux-amd64.tar.gz

# 进入相应目录,移至 /bin 目录
$ mv linux-amd64/helm /usr/local/bin/helm

В настоящее времяhelm v3Установка прошла успешно, пользуйтесьhelm versionПосмотреть номер версии

$ helm version
version.BuildInfo{Version:"v3.2.3", GitCommit:"8f832046e258e2cb800894579b1b3b50c2d83492", GitTreeState:"clean", GoVersion:"go1.13.12"}

вводить

существуетhelmЕсть три ключевых понятия:Chart,RepoиRelease

  • Chart: Именование серии коллекций ресурсов k8s, которая содержит серию шаблонов и параметров файлов конфигурации ресурсов k8s для гибкой настройки.
  • Repo: То есть репозиторий чартов, там много чартов на выбор, например официальнаяhelm/charts
  • Release: создание релиза при развертывании диаграммы.

Введение в диаграммы

использовать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

00 Добавить связанное репо

пройти черезhelm repo addРепо можно добавить, вот несколько репо, которые используются чаще

Если у вас проблемы с сетью в Китае, вы можете использовать Alibaba Cloud Mirror.

$ helm repo add stable https://apphub.aliyuncs.com/stable

Кроме того, некоторые крупные компании-разработчики программного обеспечения также поддерживают свои собственные диаграммы, такие какgitlab,elasti

01 Найдите связанные графики

использоватьhelm search hub

$ helm search repo redis
NAME                                    CHART VERSION   APP VERSION     DESCRIPTION
apphub/prometheus-redis-exporter        3.1.0           1.0.4           Prometheus exporter for Redis metrics
apphub/redis                            9.3.1           5.0.5           Open source, advanced key-value store. It is of...
apphub/redis-cache                      0.4.1           4.0.12-alpine   A pure in-memory redis cache, using statefulset...
apphub/redis-ha                         3.8.0           5.0.5           Highly available Kubernetes implementation of R...
apphub/redis-operator                   1.0.0                           Redis Operator provides high availability redis...
apphub/redispapa                        0.0.1           0.0.1           利用redis的info信息对redis的使用情况进行监控的一...
bitnami/redis                           10.7.1          6.0.5           Open source, advanced key-value store. It is of...
bitnami/redis-cluster                   2.3.1           6.0.5           Open source, advanced key-value store. It is of...
stable/prometheus-redis-exporter        3.4.1           1.3.4           Prometheus exporter for Redis metrics
stable/redis                            10.5.7          5.0.7           DEPRECATED Open source, advanced key-value stor...
stable/redis-ha                         4.4.4           5.0.6           Highly available Kubernetes implementation of R...
apphub/codis                            3.2             3.2             A Helm chart for Codis

02 Выберите Chart и следуйте официальной документации Chart

мы выбираемstable/redisэтот график.

Отслеживайте официальные документы, устанавливайте соответствующие параметры и сохраняйте какvalues-production.yaml

# Production configuration
$ helm install redis bitami/redis --values values-production.yaml

Как развертывание завершено, вы можете просмотреть установку определенногоReleaseвремяvalues

$ helm get values redis

Если вам нужно обновить, используйтеhelm upgrade

$ helm upgrade redis bitnami/redis --values values-production.yaml

03 Проверить статус развертывания

Это связано с ресурсами, которые необходимо развернуть, но обычно делится наService,PodиPVC

helm status redis
NAME: redis
LAST DEPLOYED: Fri Nov  8 21:07:24 2019
NAMESPACE: default
STATUS: deployed
REVISION: 2
TEST SUITE: None
NOTES:
** Please be patient while the chart is being deployed **
Redis can be accessed via port 6379 on the following DNS name from within your cluster:

redis-master.default.svc.cluster.local

Суммировать

В этой статье описано, как установитьhelm v3, и как использоватьhelmБыстрое развертывание приложений, просто сведенное к двум командам

# 在有 k8s 管理权限的 mac 上安装 helm
$ brew install helm

# 使用 helm 安装 redis
$ helm install redis bitnami/redis

Добро пожаловать в официальный аккаунт [Интернет-набор большой фабрики].Автор будет продолжать продвигать вакансии и требования каждой крупной фабрики в официальной учетной записи, а также напрямую общаться с интервьюером и лицом, ответственным за набор крупных Завод Если вы заинтересованы, вы можете связаться напрямую с ответственным лицом.

Кроме того, автор также будет продолжать продвигать высококачественный опыт интервью с крупными заводами, эксклюзивные вопросы интервью с различными крупными заводами и делиться отличными статьями, не ограничиваясь интерфейсом, сервером, эксплуатацией и обслуживанием и дизайном системы.

Я создал новый репозиторий на githubВопрос дня, интервью вопрос каждый день, добро пожаловать на общение.

Отсканируйте код, чтобы добавить мой WeChat, обязательноПримечания к интервью, вступайте в группу интервью, или общайтесь со мной.

加我微信拉你进入面试交流群

更多大厂招聘,面试面经,技能要求,请关注公众号【互联网大厂招聘】