Встановлення за допомогою Helm
Дотримуйтесь цього посібника, щоб встановити та налаштувати сервісну мережу Istio за допомогою Helm.
Helm-чарти дляbase
та istiod
, які використовуються в цьому посібнику, такі ж самі, як і ті, що використовуються при встановленні Istio через Istioctl. Однак під час встановлення через Istioctl використовується інший чарт шлюзу, ніж чарт, описаний у цьому посібникуПопередні вимоги
Виконайте будь-яке необхідне налаштування для вашої платформи.
Перевірте Вимоги до Podʼів та Сервісів.
Встановіть клієнт Helm, версії 3.6 або вище.
Налаштуйте репозиторій 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>
.
Створіть простір імен
istio-system
для компонентів Istio:$ kubectl create namespace istio-system
Встановіть базовий чарт Istio, який містить кластерні Custom Resource Definitions (CRDs), які повинні бути встановлені перед розгортанням панелі управління Istio:
$ helm install istio-base istio/base -n istio-system --set defaultRevision=default
Перевірте установку 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
.Якщо ви плануєте використовувати чарт Istio CNI, зробіть це зараз. Див. Встановлення Istio за допомогою втулка CNI для отримання додаткової інформації.
Встановіть чарт виявлення Istio, який розгортає сервіс
istiod
:$ helm install istiod istio/istiod -n istio-system --wait
Перевірте установку чарту виявлення 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
Отримайте статус встановленого 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
Перевірте, чи успішно встановлено сервіс
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
(Додатково) Встановіть 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 та її компоненти, видаливши встановлені раніше чарти.
Перевірте всі встановлені чарти 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
(Необовʼязково) Видаліть будь-які встановлені чарти шлюзів Istio:
$ helm delete istio-ingress -n istio-ingress $ kubectl delete namespace istio-ingress
Видаліть чарт виявлення Istio:
$ helm delete istiod -n istio-system
Видаліть базовий чарт Istio:
$ helm delete istio-base -n istio-system
Видаліть простір імен
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