Встановлення за допомогою Istioctl
Слідуйте цьому посібнику для встановлення та налаштування мережі Istio для глибокої оцінки або використання в операційному середовищі. Якщо ви новачок в Istio і просто хочете спробувати його, слідуйте інструкціям для швидкого старту.
У цьому посібнику з встановлення використовується інструмент командного рядка istioctl для надання широких можливостей налаштування панелі управління Istio та sidecars для панелі даних Istio. У ньому є перевірка введених користувачем даних, щоб запобігти помилкам під час встановлення, а також опції налаштування, які дозволяють замінити будь-який аспект конфігурації.
Завдяки цим інструкціям ви можете вибрати будь-який з вбудованих профілів конфігурації Istio та подальше налаштування конфігурації відповідно до ваших конкретних потреб.
Команда istioctl
підтримує повний IstioOperator
API через параметри командного рядка для окремих налаштувань або для передачі yaml-файлу, що містить IstioOperator
власний ресурс (CR).
Передумови
Перед початком перевірте наступні вимоги:
- Завантажте реліз Istio.
- Виконайте будь-яке необхідне налаштування для вашої платформи.
- Перевірте Вимоги до 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