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 только на явно указанную версию.
Вопросы
Recommended