Встановлення за допомогою Helm

Дотримуйтесь цього посібника, щоб встановити та налаштувати сервісну мережу Istio за допомогою Helm.

Helm-чарти для base та istiod, які використовуються в цьому посібнику, такі ж самі, як і ті, що використовуються при встановленні Istio через Istioctl. Однак під час встановлення через Istioctl використовується інший чарт шлюзу, ніж чарт, описаний у цьому посібнику

Попередні вимоги

  1. Виконайте будь-яке необхідне налаштування для вашої платформи.

  2. Перевірте Вимоги до Podʼів та Сервісів.

  3. Встановіть клієнт Helm, версії 3.6 або вище.

  4. Налаштуйте репозиторій Helm:

$ helm repo add istio https://istio-release.storage.googleapis.com/charts
$ helm repo update

Кроки встановлення

Цей розділ описує процедуру встановлення Istio за допомогою Helm. Загальний синтаксис для встановлення за допомогою Helm:

$ helm install <release> <chart> --namespace <namespace> --create-namespace [--set <other_parameters>]

Змінні, що вказані в команді, мають наступні значення:

  • <chart> — Шлях до упакованого чарту, шлях до теки розпакованого чарту або URL.
  • <release> — Імʼя для ідентифікації та управління Helm-чартом після встановлення.
  • <namespace> — Простір імен, в якому буде встановлено чарт.

Стандартне значення конфігурації можна змінити, використовуючи один або кілька параметрів --set <parameter>=<value>. Альтернативно, ви можете вказати кілька параметрів у власному файлі значень, використовуючи аргумент --values <file>.

  1. Створіть простір імен istio-system для компонентів Istio:

    $ kubectl create namespace istio-system
  2. Встановіть базовий чарт Istio, який містить кластерні Custom Resource Definitions (CRDs), які повинні бути встановлені перед розгортанням панелі управління Istio:

    $ helm install istio-base istio/base -n istio-system --set defaultRevision=default
  3. Перевірте установку CRD за допомогою команди helm ls:

    $ helm ls -n istio-system
    NAME       NAMESPACE    REVISION UPDATED                                 STATUS   CHART        APP VERSION
    istio-base istio-system 1        2024-04-17 22:14:45.964722028 +0000 UTC deployed base-1.24.3  1.24.3

    У виводі знайдіть запис для istio-base і переконайтесь, що статус встановлений на deployed.

  4. Якщо ви плануєте використовувати чарт Istio CNI, зробіть це зараз. Див. Встановлення Istio за допомогою втулка CNI для отримання додаткової інформації.

  5. Встановіть чарт виявлення Istio, який розгортає сервіс istiod:

    $ helm install istiod istio/istiod -n istio-system --wait
  6. Перевірте установку чарту виявлення Istio:

    $ helm ls -n istio-system
    NAME       NAMESPACE    REVISION UPDATED                                 STATUS   CHART         APP VERSION
    istio-base istio-system 1        2024-04-17 22:14:45.964722028 +0000 UTC deployed base-1.24.3   1.24.3
    istiod     istio-system 1        2024-04-17 22:14:45.964722028 +0000 UTC deployed istiod-1.24.3 1.24.3
  7. Отримайте статус встановленого Helm-чарту, щоб переконатися, що він розгорнутий:

    $ helm status istiod -n istio-system
    NAME: istiod
    LAST DEPLOYED: Fri Jan 20 22:00:44 2023
    NAMESPACE: istio-system
    STATUS: deployed
    REVISION: 1
    TEST SUITE: None
    NOTES:
    "istiod" successfully installed!
    
    To learn more about the release, try:
      $ helm status istiod
      $ helm get all istiod
    
    Next steps:
      * Deploy a Gateway: https://istio.io/latest/docs/setup/additional-setup/gateway/
      * Try out our tasks to get started on common configurations:
        * https://istio.io/latest/docs/tasks/traffic-management
        * https://istio.io/latest/docs/tasks/security/
        * https://istio.io/latest/docs/tasks/policy-enforcement/
        * https://istio.io/latest/docs/tasks/policy-enforcement/
      * Review the list of actively supported releases, CVE publications and our hardening guide:
        * https://istio.io/latest/docs/releases/supported-releases/
        * https://istio.io/latest/news/security/
        * https://istio.io/latest/docs/ops/best-practices/security/
    
    For further documentation see https://istio.io website
    
    Tell us how your install/upgrade experience went at https://forms.gle/99uiMML96AmsXY5d6
  8. Перевірте, чи успішно встановлено сервіс istiod та чи працюють його podʼи:

    $ kubectl get deployments -n istio-system --output wide
    NAME     READY   UP-TO-DATE   AVAILABLE   AGE   CONTAINERS   IMAGES                         SELECTOR
    istiod   1/1     1            1           10m   discovery    docker.io/istio/pilot:1.24.3   istio=pilot
  9. (Додатково) Встановіть ingress gateway:

    $ kubectl create namespace istio-ingress
    $ helm install istio-ingress istio/gateway -n istio-ingress --wait

    Див. Встановлення Gateway для отримання детальної документації з встановлення Gateway.

Оновлення конфігурації Istio

Ви можете вказати параметри перевизначення для будь-кого з чартів Istio Helm, використаних вище, і слідувати робочому процесу оновлення Helm, щоб налаштувати встановлення вашої меш-мережі Istio. Доступні параметри конфігурації можна знайти за допомогою команди helm show values istio/<chart>; наприклад, helm show values istio/gateway.

Міграція з установок без Helm

Якщо ви переходите з версії Istio, встановленої за допомогою istioctl, на Helm (Istio 1.5 або раніше), вам потрібно видалити ваші поточні ресурси панелі управління Istio та перевстановити Istio за допомогою Helm, як описано вище. При видаленні поточної установки Istio не слід видаляти Custom Resource Definitions (CRDs) Istio, оскільки це може призвести до втрати ваших власних ресурсів Istio.

Ви можете слідувати крокам, наведеним у посібнику з видалення Istioctl.

Видалення

Ви можете видалити Istio та її компоненти, видаливши встановлені раніше чарти.

  1. Перевірте всі встановлені чарти Istio в просторі імен istio-system:

    $ helm ls -n istio-system
    NAME       NAMESPACE    REVISION UPDATED                                 STATUS   CHART         APP VERSION
    istio-base istio-system 1        2024-04-17 22:14:45.964722028 +0000 UTC deployed base-1.24.3   1.24.3
    istiod     istio-system 1        2024-04-17 22:14:45.964722028 +0000 UTC deployed istiod-1.24.3 1.24.3
  2. (Необовʼязково) Видаліть будь-які встановлені чарти шлюзів Istio:

    $ helm delete istio-ingress -n istio-ingress
    $ kubectl delete namespace istio-ingress
  3. Видаліть чарт виявлення Istio:

    $ helm delete istiod -n istio-system
  4. Видаліть базовий чарт Istio:

    $ helm delete istio-base -n istio-system
  5. Видаліть простір імен istio-system:

    $ kubectl delete namespace istio-system

Видалення ресурсів з мітками стабільної версії

Якщо ви вирішите продовжити використовувати стару панель управління замість завершення оновлення, ви можете видалити новішу версію та її мітку, спочатку виконавши команду:

$ helm template istiod istio/istiod -s templates/revision-tags.yaml --set revisionTags={prod-canary} --set revision=canary -n istio-system | kubectl delete -f -

Після цього ви повинні видалити версію Istio, на яку вона посилалася, слідуючи процедурі видалення, описаній вище.

Якщо ви встановили шлюз(и) для цієї версії за допомогою оновлень на місці, вам також потрібно вручну перевстановити шлюз(и) для попередньої версії. Видалення попередньої версії та її міток не поверне автоматично раніше оновлені шлюзи.

(Опціонально) Видалення CRD, встановлених Istio

Видалення CRD назавжди видаляє всі ресурси Istio, які ви створили у вашому кластері. Щоб видалити CRD Istio, встановлені у вашому кластері:

$ kubectl get crd -oname | grep --color=never 'istio.io' | xargs kubectl delete
Чи була ця інформація корисною?
Чи є у вас пропозиції щодо покращення?

Дякуємо за ваш відгук!