helm: пакетный менеджер для kubernetes - Сергей Орлов (avito)

13
Helm Пакетный менеджер для Kubernetes

Upload: avitotech

Post on 05-Apr-2017

75 views

Category:

Internet


2 download

TRANSCRIPT

Page 1: Helm: пакетный менеджер для Kubernetes - Сергей Орлов (Avito)

HelmПакетный менеджер

для Kubernetes

Page 2: Helm: пакетный менеджер для Kubernetes - Сергей Орлов (Avito)
Page 3: Helm: пакетный менеджер для Kubernetes - Сергей Орлов (Avito)

Решаемые задачи• Развертывание.

• Переиспользование конфигурации.

• Кастомизация конфигурации.

Page 4: Helm: пакетный менеджер для Kubernetes - Сергей Орлов (Avito)

• Chart - пакет.

• Release - инсталяция пакета.

Терминология

Page 5: Helm: пакетный менеджер для Kubernetes - Сергей Орлов (Avito)

Архитектура

helm (client) tiller (сервер) api server (k8s)gRPC REST

Cluster sideClient side

Page 6: Helm: пакетный менеджер для Kubernetes - Сергей Орлов (Avito)

Структура проекта...helmChart.yamltemplatesconfigmap.yamldeployment.yamlservice.yaml..

values.yamlvalues.dev.yamlvalues.prod.yamlvalues.test.yaml

Page 7: Helm: пакетный менеджер для Kubernetes - Сергей Орлов (Avito)

Описание чартаapiVersion: v1description: Rec Gateway Servicename: rec-gatewayversion: 1.0.0

Page 8: Helm: пакетный менеджер для Kubernetes - Сергей Орлов (Avito)

Шаблонизация template:

metadata:

labels:

app: deis-database

spec:

serviceAccount: deis-database

containers:

- name: deis-database

image: {{ .Values.imageRegistry }}/postgres:{{ .Values.dockerTag }}

imagePullPolicy: {{ .Values.pullPolicy }}

ports:

- containerPort: 5432

env:

- name: DATABASE_STORAGE

Page 9: Helm: пакетный менеджер для Kubernetes - Сергей Орлов (Avito)

Управление чартами

• helm install -f values.yaml -f values.dev.yaml --set imageTag=dev-123 my-chart

• helm upgrade --install my-chart

• helm --tiller-namespace tiller list

• helm rollback

Page 10: Helm: пакетный менеджер для Kubernetes - Сергей Орлов (Avito)

ПлагиныHelm template

• helm template -f values.yaml -f values.dev.yaml .

Page 11: Helm: пакетный менеджер для Kubernetes - Сергей Орлов (Avito)

Helm в Avito• Каталог helm в корне каждого репозитория сервиса.

• Запуск helm upgrade --install --wait на CI.

Page 12: Helm: пакетный менеджер для Kubernetes - Сергей Орлов (Avito)

Минусы (в деталях)• Относительная сырость решения.

• Поддержка окружений только при помощи шаблонизации.

• Отсутсвие логов в случае падения при --wait.

• rollback только на явно указанную версию.

Page 13: Helm: пакетный менеджер для Kubernetes - Сергей Орлов (Avito)

Вопросы