Розгортання
Прочитайте про найкращі практики, які забезпечують швидку та ефективну реалізацію для першого дня, другого дня та тисячного дня.
Ви вирішили використовувати Istio. Ласкаво просимо у світ сервісних мереж. Вітаємо, ви в чудовій компанії!
Якщо ви ще не зробили цього, вам може бути цікаво спробувати Istio в тестовому середовищі та ознайомитися з нашим посібником щодо початку роботи. Це дасть вам уявлення про функції керування трафіком, безпеки та спостережуваності.
Робити самостійно чи звертатися до гіда?
Istio — це програмне забезпечення з відкритим кодом, яке ви можете завантажити та встановити самостійно. Встановити мережу в кластері Kubernetes так само просто, як виконати одну команду:
$ istioctl install
Коли випускаються нові версії, ви можете тестувати їх і поступово розгортати на своїх кластерах.
Багато постачальників послуг Kubernetes пропонують опцію автоматичної установки та керування Istio для вас. Ознайомтеся з нашою сторінкою дистрибʼюторів, щоб дізнатися, чи підтримує ваш постачальник Istio.
Istio також є рушієм багатьох комерційних продуктів для керування сервісами, з командами експертів, готовими допомогти вам на початку роботи.
Зростає спільнота консультантів з хмарних технологій, які можуть допомогти вам на шляху до Istio. Якщо ви плануєте співпрацювати з учасником екосистеми Istio, ми рекомендуємо залучити їх на ранніх етапах. Багато наших партнерів і дистрибʼюторів працюють з проєктом вже дуже довгий час і будуть цінними помічниками для вас у цій подорожі.
Що варто увімкнути в першу чергу?
Є багато вагомих причин для впровадження Istio: від додавання безпеки до ваших мікросервісів до підвищення надійності ваших застосунків. Незалежно від ваших цілей, найуспішніші впровадження Istio починаються з визначення одного випадку використання та його вирішення. Після налаштування мережі для вирішення однієї проблеми ви можете легко увімкнути інші функції, підвищуючи корисність вашого розгортання.
Як звʼязати мережу з вашою архітектурою?
Поступово підключайте свої сервіси до мережі, додаючи один простір імен за раз. Стандартно сервіси з кількох просторів імен можуть спілкуватися між собою, але ви можете легко збільшити ізоляцію, вибірково визначаючи, які сервіси відкривати для інших просторів імен. Використання просторів імен також покращує продуктивність, оскільки конфігурація зменшується.
Istio є гнучким для налаштування відповідно до конфігурації вашого кластера Kubernetes та архітектури мережі. Ви можете захотіти запустити окремі мережі та панелі управління в окремих кластерах або мати одну.
Поки Podʼи можуть спілкуватись один з одним в мережі, Istio працюватиме; ви навіть можете налаштувати Istio Gateways для виконання ролі бастіонних хостів між мережами.
Дізнайтеся більше про повний спектр моделей розгортання у нашій документації.
Зараз також чудовий час подумати про те, які інтеграції ви хочете використовувати: ми рекомендуємо налаштувати Prometheus для моніторингу сервісів з ієрархічною федерацією на зовнішній сервер. Якщо стек спостережуваності вашої компанії управляється іншою командою, зараз саме час їх долучити.
Додавання сервісів до мережі, День 1
Ваша мережа тепер налаштована і готова приймати сервіси. Для цього вам потрібно позначити простори імен у Kubernetes, і коли ці сервіси будуть перевстановлені, вони тепер матимуть проксі Envoy, налаштований для звʼязку з панеллю управління Istio.
Налаштування сервісів
Багато сервісів будуть працювати з коробки, але додавши трохи інформації до ваших маніфестів Kubernetes, ви можете зробити Istio набагато розумнішим. Наприклад, встановлення міток для app
і version
допоможе з подальшими запитами метрик.
Для звичайних портів і протоколів Istio визначить тип трафіку. Якщо тип трафіку не можна визначити, він вважатиметься як трафік TCP, але ви можете легко додати анотацію до сервісу з типом трафіку.
Дізнайтеся більше про увімкнення застосунків для використання з Istio.
Увімкнення безпеки
Istio налаштує сервіси в мережі для використання mTLS при взаємодії між собою, коли це можливо. Стандартно Istio працює в режимі “дозвільного mTLS”, що означає, що сервіси прийматимуть як зашифрований, так і незашифрований трафік, щоб дозволити трафіку від сервісів, не налаштованих у мережі, залишатися функціональним. Після підключення всіх ваших сервісів до мережі, ви можете змінити політику автентифікації, щоб дозволити лише зашифрований трафік. Це дозволить вам бути впевненими, що весь ваш трафік зашифрований.
Два типи API в Istio
Istio має API для власників платформи та власників сервісів. Залежно від вашої ролі, вам потрібно розглянути лише певний набір. Наприклад, власники платформи будуть відповідати за ресурси встановлення, автентифікації та авторизації. Ресурси керування трафіком будуть оброблятися власниками сервісів. Дізнайтеся, які API будуть корисні вам.
Підключення сервісів на віртуальних машинах
Istio не тільки для Kubernetes; можливо додати сервіси на віртуальних машинах (або на фізичних серверах) до мережі, щоб отримати всі переваги, які надає Istio, такі як взаємне TLS, повноцінна телеметрія та розширені можливості керування трафіком.
Моніторинг ваших сервісів
Переглядайте трафік, що проходить через вашу мережу, за допомогою Kiali, або відстежуйте запити за допомогою Zipkin або Jaeger.
Використовуйте стандартні інфопанелі Grafana для Istio, щоб автоматично отримувати звіти про золоті сигнали для сервісів, що працюють у мережі.
Операційні міркування та День 2
Як власник платформи, ви відповідаєте за встановлення та підтримку мережі в актуальному стані з мінімальним впливом на команди, що займаються сервісами.
Встановлення
З istioctl ви можете легко встановити Istio, використовуючи один із вбудованих профілів. У міру налаштування вашої установки для задоволення ваших вимог рекомендується визначити конфігурацію за допомогою спеціального ресурсу IstioOperator (CR). Це дає вам можливість повністю делегувати завдання управління встановленням оператору Istio, замість того, щоб робити це вручну за допомогою istioctl. Використовуйте CR IstioOperator лише для панелі управління та додаткові CR IstioOperator для шлюзів для підвищення гнучкості під час оновлення.
Оновлення без ризику
Коли виходить нова версія, Istio дозволяє виконувати як оновлення на місці, так і канаркові оновлення. Вибір між ними — це компроміс між простотою та потенційним простоєм. Для промислових середовищ рекомендується використовувати канарковий метод оновлення. Після того, як нові версії панелі управління та панелі даних будуть перевірені на працездатність, ви можете оновити свої шлюзи.
Моніторинг мережі
Istio генерує детальну телеметрію для всіх комунікацій сервісів в мережі. Ці метрики, трасування та журнали доступу є важливими для розуміння того, як ваші застосунки взаємодіють між собою та для виявлення будь-яких вузьких місць продуктивності. Використовуйте цю інформацію, щоб допомогти вам налаштувати запобіжники, тайм-аути та повторні спроби, і зробити ваші застосунки більш стійкими.
Так само як і ваші застосунки, що працюють у мережі, компоненти панелі управління Istio також експортують метрики. Використовуйте ці метрики та попередньо налаштовані інфопанелі Grafana для налаштування запитів ресурсів, лімітів та масштабування.
Приєднуйтесь до спільноти Istio
Як тільки ви почнете використовувати Istio, ви станете членом великої глобальної спільноти. Ви можете ставити питання на нашому форумі, або приєднатися до Slack. І якщо ви хочете щось покращити, або маєте запит на нову функцію, ви можете звернутися прямо в GitHub.
Бажаємо успішного використання мережі!