7.8 KiB
| title | description | weight | keywords | owner | test | |||
|---|---|---|---|---|---|---|---|---|
| Розширене налаштування Helm Chart | Описує, як налаштувати параметри конфігурації установки при встановленні з helm. | 55 |
|
istio/wg-environments-maintainers | n/a |
Передумови
Перед початком перевірте наступні передумови:
- Завантажте реліз Istio.
- Виконайте будь-які необхідні специфічні налаштування платформи.
- Перевірте Вимоги до Podʼів та Сервісів.
- Використання helm для установки Istio.
- Версія Helm, яка підтримує пост-рендеринг (>= 3.1).
- kubectl або kustomize.
Розширені налаштування Helm Chart
Helm chart для Istio намагається включити більшість атрибутів, необхідних користувачам для їх специфічних вимог. Однак він не містить кожного можливого значення Kubernetes, яке ви можете захотіти налаштувати. Хоча практично неможливо реалізувати такий механізм, в цьому документі ми покажемо метод, який дозволить вам здійснювати розширене налаштування Helm чарту без необхідності безпосередньо модифікувати Helm чарт Istio.
Використання Helm з kustomize для пост-рендерингу Istio charts
Використовуючи можливість post-renderer Helm, ви можете легко налаштувати маніфести установки відповідно до ваших вимог. Пост-рендеринг надає гнучкість для маніпулювання, налаштування і/або перевірки створених маніфестів перед їх установкою за допомогою Helm. Це дозволяє користувачам з розширеними потребами в конфігурації використовувати такі інструменти, як Kustomize, для застосування змін конфігурації без потреби у додатковій підтримці від оригінальних розробників чартів.
Додавання значення до наявного чарту
У цьому прикладі ми додамо значення sysctl до розгортання ingress-gateway Istio. Ми збираємось:
- Створити шаблон патча налаштування
sysctlдля розгортання. - Застосувати патч за допомогою пост-рендерингу Helm.
- Перевірити, що патч
sysctlбув правильно застосований до podʼів.
Створення Kustomization
Спочатку створимо файл патча sysctl, додавши securityContext до podʼа ingress-gateway з додатковим атрибутом:
{{< text bash >}} $ cat > sysctl-ingress-gw-customization.yaml <<EOF apiVersion: apps/v1 kind: Deployment metadata: name: istio-ingress namespace: istio-ingress spec: template: spec: securityContext: sysctls: - name: net.netfilter.nf_conntrack_tcp_timeout_close_wait value: "10" EOF {{< /text >}}
Нижче наведений сценарій оболонки допомагає зʼєднати Helm post-renderer та Kustomize, оскільки перший працює з stdin/stdout, а другий працює з файлами.
{{< text bash >}} $ cat > kustomize.sh <<EOF #!/bin/sh cat > base.yaml exec kubectl kustomize # також можна використовувати "kustomize build .", якщо у вас його встановлено. EOF $ chmod +x ./kustomize.sh {{< /text >}}
Нарешті, створимо файл kustomization.yaml, який є вхідним для kustomize
зі списком ресурсів та супутніми деталями налаштування.
{{< text bash >}} $ cat > kustomization.yaml <<EOF resources:
- base.yaml patchesStrategicMerge:
- sysctl-ingress-gw-customization.yaml EOF {{< /text >}}
Застосування Kustomization
Тепер, коли файл Kustomization готовий, використаємо Helm, щоб переконатися, що він буде застосований належним чином.
Додати репозиторій Helm для Istio
{{< text bash >}} $ helm repo add istio https://istio-release.storage.googleapis.com/charts $ helm repo update {{< /text >}}
Рендеринг та перевірка за допомогою Helm Template
Ми можемо використовувати Helm post-renderer, щоб перевірити створені маніфести перед їх установкою за допомогою Helm.
{{< text bash >}} $ helm template istio-ingress istio/gateway --namespace istio-ingress --post-renderer ./kustomize.sh | grep -B 2 -A 1 netfilter.nf_conntrack_tcp_timeout_close_wait {{< /text >}}
У виводі перевірте новий атрибут sysctl для podʼа ingress-gateway:
{{< text yaml >}} securityContext: sysctls: - name: net.netfilter.nf_conntrack_tcp_timeout_close_wait value: "10" {{< /text >}}
Застосування патча за допомогою Helm Post-Renderer
Використовуйте наступну команду для установки ingress-gateway Istio, застосовуючи наше налаштування за допомогою Helm post-renderer:
{{< text bash >}} $ kubectl create ns istio-ingress $ helm upgrade -i istio-ingress istio/gateway --namespace istio-ingress --wait --post-renderer ./kustomize.sh {{< /text >}}
Перевірка Kustomization
Перевірте розгортання ingress-gateway, ви побачите нове змінене значення sysctl:
{{< text bash >}} $ kubectl -n istio-ingress get deployment istio-ingress -o yaml {{< /text >}}
{{< text yaml >}} apiVersion: apps/v1 kind: Deployment metadata: … name: istio-ingress namespace: istio-ingress spec: template: metadata: … spec: securityContext: sysctls: - name: net.netfilter.nf_conntrack_tcp_timeout_close_wait value: "10" {{< /text >}}
Додаткова інформація
Для отримання детальнішої інформації про концепції та техніки, описані в цьому документі, будь ласка, зверніться до: