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

Post on 05-Apr-2017

72 Views

Category:

Internet

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

для Kubernetes

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

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

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

• Chart - пакет.

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

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

Архитектура

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

Cluster sideClient side

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

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

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

Шаблонизация 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

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

• 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

ПлагиныHelm template

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

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

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

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

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

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

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

Вопросы

top related