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

Слідуйте цьому посібнику для встановлення та налаштування мережі Istio для глибокої оцінки або використання в операційному середовищі. Якщо ви новачок в Istio і просто хочете спробувати його, слідуйте інструкціям для швидкого старту.

У цьому посібнику з встановлення використовується інструмент командного рядка istioctl для надання широких можливостей налаштування панелі управління Istio та sidecars для панелі даних Istio. У ньому є перевірка введених користувачем даних, щоб запобігти помилкам під час встановлення, а також опції налаштування, які дозволяють замінити будь-який аспект конфігурації.

Завдяки цим інструкціям ви можете вибрати будь-який з вбудованих профілів конфігурації Istio та подальше налаштування конфігурації відповідно до ваших конкретних потреб.

Команда istioctl підтримує повний IstioOperator API через параметри командного рядка для окремих налаштувань або для передачі yaml-файлу, що містить IstioOperator власний ресурс (CR).

Передумови

Перед початком перевірте наступні вимоги:

  1. Завантажте реліз Istio.
  2. Виконайте будь-яке необхідне налаштування для вашої платформи.
  3. Перевірте Вимоги до Podʼів та Сервісів.

Встановлення Istio за допомогою стандартного профілю

Найпростіший варіант — це встановити default профіль конфігурації Istio за допомогою наступної команди:

$ istioctl install

Ця команда встановлює профіль default в кластер, визначений вашою конфігурацією Kubernetes. Профіль default є хорошою відправною точкою для створення операційного середовища, на відміну від більшого профілю demo, який призначений для оцінки широкого набору можливостей Istio.

Для зміни інсталяцій можна налаштувати різні параметри. Наприклад, увімкнути журнали доступу:

$ istioctl install --set meshConfig.accessLogFile=/dev/stdout

Встановлення з зовнішніх чартів

Стандартно, istioctl використовує вбудовані чарти для генерації маніфесту встановлення. Ці чарти випускаються разом з istioctl для аудиту та налаштувань, їх можна знайти в архіві релізу в теці manifests. istioctl також може використовувати зовнішні чарти замість вбудованих. Щоб вибрати зовнішні чарти, встановіть в прапорець manifests шлях до локальної файлової системи:

$ istioctl install --manifests=manifests/

Якщо використовувати бінарний файл istioctl 1.24.3, ця команда призведе до тієї ж установки, що й istioctl install самостійно, оскільки вона вказує на ті ж чарти, що й вбудовані. Окрім експериментування або тестування нових функцій, рекомендується використовувати вбудовані чарти, а не зовнішні, для забезпечення сумісності бінарного файлу istioctl з чартами.

Встановлення іншого профілю

Інші профілі конфігурації Istio можна встановити в кластер, передавши назву профілю в командному рядку. Наприклад, для встановлення профілю demo можна використовувати наступну команду:

$ istioctl install --set profile=demo

Показ переліку доступних профілів

Ви можете показати імена профілів конфігурації Istio, які доступні для istioctl, використовуючи цю команду:

$ istioctl profile list
Istio configuration profiles:
    default
    demo
    empty
    minimal
    openshift
    preview
    remote

Показ конфігурації профілю

Ви можете переглянути налаштування конфігурації профілю. Наприклад, щоб переглянути налаштування для профілю demo, виконайте наступну команду:

$ istioctl profile dump demo
components:
  egressGateways:
  - enabled: true
    k8s:
      resources:
        requests:
          cpu: 10m
          memory: 40Mi
    name: istio-egressgateway

...

Щоб переглянути підмножину всієї конфігурації, можна використовувати прапорець --config-path, який вибирає тільки ту частину конфігурації, що знаходиться в заданім шляху:

$ istioctl profile dump --config-path components.pilot demo
enabled: true
k8s:
  env:
  - name: PILOT_TRACE_SAMPLING
    value: "100"
  resources:
    requests:
      cpu: 10m
      memory: 100Mi

Показати відмінності між профілями

Підкоманда profile diff може бути використана для показу відмінностей між профілями, що корисно для перевірки ефектів налаштування перед застосуванням змін до кластера.

Ви можете показати відмінності між профілями default та demo, використовуючи ці команди:

$ istioctl profile diff default demo
 gateways:
   egressGateways:
-  - enabled: false
+  - enabled: true
...
     k8s:
        requests:
-          cpu: 100m
-          memory: 128Mi
+          cpu: 10m
+          memory: 40Mi
       strategy:
...

Створення маніфесту перед встановленням

Ви можете згенерувати маніфест перед встановленням Istio, використовуючи підкоманду manifest generate. Наприклад, використовуйте наступну команду для генерації маніфесту для профілю default:

$ istioctl manifest generate > $HOME/generated-manifest.yaml

Згенерований маніфест можна використовувати для перевірки того, що саме буде встановлено, а також для відстеження змін у маніфесті з часом. Хоча IstioOperator CR представляє повну конфігурацію користувача і достатній для її відстеження, вихідні дані з manifest generate також відображають можливі зміни в основних чартах і тому можуть бути використані для відстеження фактично встановлених ресурсів.

Вихідні дані з manifest generate також можуть бути використані для встановлення Istio за допомогою kubectl apply або еквіваленту. Однак ці альтернативні методи встановлення можуть не застосовувати ресурси в тому ж порядку залежностей, як istioctl install, і не тестуються в релізі Istio.

Показати відмінності в маніфестах

Ви можете показати відмінності в згенерованих маніфестах у форматі YAML, порівнюючи стандартний профіль і власне встановлення, використовуючи ці команди:

$ istioctl manifest generate > 1.yaml
$ istioctl manifest generate -f samples/operator/pilot-k8s.yaml > 2.yaml
$ istioctl manifest diff 1.yaml 2.yaml
Відмінності в маніфестах:

Обʼєкт Deployment:istio-system:istiod має відмінності:

spec:
  template:
    spec:
      containers:
        '[#0]':
          resources:
            requests:
              cpu: 500m -> 1000m
              memory: 2048Mi -> 4096Mi

Обʼєкт HorizontalPodAutoscaler:istio-system:istiod має відмінності:

spec:
  maxReplicas: 5 -> 10
  minReplicas: 1 -> 2

Перевірка успішності встановлення

Ви можете перевірити, чи вдалася установка Istio, використовуючи команду verify-install, яка порівнює встановлення у вашому кластері з маніфестом, який ви вказали.

Якщо ви не згенерували свій маніфест перед розгортанням, виконайте наступну команду, щоб згенерувати його зараз:

$ istioctl manifest generate <ваші початкові параметри встановлення> > $HOME/generated-manifest.yaml

Потім виконайте наступну команду verify-install, щоб перевірити, чи було встановлення успішним:

$ istioctl verify-install -f $HOME/generated-manifest.yaml

Дивіться Налаштування конфігурації встановлення для отримання додаткової інформації про налаштування встановлення.

Видалення Istio

Щоб повністю видалити Istio з кластера, виконайте наступну команду:

$ istioctl uninstall --purge

Альтернативно, щоб видалити тільки певну панель управління Istio, виконайте наступну команду:

$ istioctl uninstall <ваші початкові параметри встановлення>

або

$ istioctl manifest generate <ваші початкові параметри встановлення> | kubectl delete --ignore-not-found=true -f -

Простір імен панелі управління (наприклад, istio-system) стандартно не видаляється. Якщо більше не потрібен, використовуйте наступну команду для його видалення:

$ kubectl delete namespace istio-system
Чи була ця інформація корисною?
Чи є у вас пропозиції щодо покращення?

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