Рубрики
Uncategorized

Правильный способ установить хлебные диаграммы

Хелм стал фактическим инструментом управления пакетами для ресурсов Kubernetes. Например, возьмите … Помечено Kubernetes, Helm, DevOps, Gitops.

Хелм стал фактическим инструментом управления пакетами для ресурсов Kubernetes. В качестве примера взгляните на эти инструкции по установке для Istio (Сервисная сетка Kubernetes и инструмент наблюдения).

В то время как многие инструкции по установке диаграммы Helm Helm побуждают вас запустить очень простую команду ( helm install ) и — Hey Presto — в вашем кластере Kubernetes работает какое -то новое программное обеспечение, я думаю, что этот рабочий процесс должен Если не всегда), нельзя избегать.

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

Рассмотрим сценарий, когда вам нужно переустановить графики Helm.

Скажем, например, вам нужно по какой -то причине мигрировать в новый кластер Kubernetes. Ты может запустить Хелм LS Чтобы определить все установленные в настоящее время диаграммы и их версии, а затем установить все те, кто на новом кластере, но это значительная ручная работа, и она применяется только в том случае, если у вас есть функционирующий кластер, из которого можно «скопировать» свои диаграммы руля.

Если по какой -то причине ваш кластер достаточно разбит — или, возможно, случайно удален — вы теперь потеряли точную запись, из которых вы установили Helm, и в каких версиях.

Модель Gitops для управления ресурсами Kubernetes — где GIT Repo рассматривается как источник правдоподобия для того, что должно работать в кластере, — это именно решение проблемы повторяемости. Кто -то сделал ручное изменение в кластер, который что -то сломал? Нет проблем, мы просто отказываемся от того, что в GIT. (Действительно, предпочтительно некоторая автоматизация обнаружит изменение и сделает это за вас!)

С другой стороны, вручную бег Установка шляпа Команды полностью нарушают эту модель, потому что ваш git Repo больше не полностью инкапсулирует описание того, что должно работать в вашем кластере Kubernetes.

Чтобы быть справедливым, руководить, можно обойти эту проблему. Пока вы готовы упаковать все свои ресурсы Kubernetes в диаграмму (ы) Helm, со всеми перечисленными зависимостями (управляемыми с помощью SEMVER), вы можете продолжать использовать модель развертывания Gitops. Но это заставляет вас использовать руль для всего.

Если вы хотите установить Helm Hards в свой кластер Kubernetes, я настоятельно рекомендую:

  1. Поставьте диаграмму в вашем GIT Repo (или иным образом полностью указать точную версию диаграммы в управлении источником)
  2. используя Шаблон шлема на графике, чтобы сделать его как Kubernetes Yaml
  3. Запуск простого старого kubectl применить в результате

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

На самом деле — если вы посмотрите на инструкции по установке ISTIO — вы увидите, что это именно рекомендуемый рабочий процесс для установки ISTIO с помощью Helm!

Мы делаем все это, используя нашу систему сборки — Базель Анкет Мы написали несколько пользовательских правил Bazel, которые помогают нам достичь этого рабочего процесса — Не стесняйтесь их использовать , если хочешь.

Принести новую диаграмму в систему сборки простой. В вашем базеле Рабочая пространство Файл, вам нужно включить следующий код:

# Add the 'dataform' repository as a dependency.
git_repository(
    name = "df",
    commit = "de1eb66e558fbd349092d9519a8d5a1edefba94f",
    remote = "https://github.com/dataform-co/dataform.git",
)

# Load the Helm repository rules.
load("@dataform//tools/helm:repository_rules.bzl", "helm_chart", "helm_tool")

# Download the 'helm' tool.
helm_tool(
    name = "helm_tool",
)

Чтобы добавить один новый график:

# Download the 'istio' Helm chart.
helm_chart(
    name = "istio",
    chartname = "istio",
    repo_url = "https://storage.googleapis.com/istio-release/releases/1.4.0/charts/",
    version = "v1.4.0",
)

Затем, когда вы хотите сделать шаблон, добавьте Сборка где -то править, искать что -то вроде:

helm_template(
    name = "istio",
    chart_tar = "@istio//:chart.tgz",
    namespace = "istio-system",
    values = { ... },
)

Вывод этого правила — простые Kubernetes Yaml, готовый к тому, чтобы вы могли развернуть в своем кластере, как вы пожелаете. (Мы используем стандартные Bazel Kubernetes Правила .)

Оригинал: «https://dev.to/benbirt/the-right-way-to-install-helm-charts-4mjp»