Знайомство з Tanzu Mission Control

Сьогодні ми хочемо поговорити про VMware Tanzu, нову лінійку продуктів та послуг, яка була анонсована під час минулорічної конференції VMWorld. На порядку денному один з найцікавіших інструментів: Tanzu Mission Control.

Обережно: під катом дуже багато зображень.

Знайомство з Tanzu Mission Control

Що таке Mission Control

Як заявляє у своєму блозі сама компанія, основне завдання VMware Tanzu Mission Control - "привнести лад у кластерний хаос". Mission Control являє собою керовану через API платформу, яка дозволить адміністраторам застосовувати політики до кластерів або груп кластерів та встановлювати правила безпеки. Засновані на моделі SaaS інструменти безпечно інтегруються в кластери Kubernetes через агента та підтримують масу стандартних операцій із кластером, включаючи операції керування життєвим циклом (розгортання, масштабування, видалення тощо).

В основі ідеології лінійки Tanzu лежить максимальне використання open-source технологій. Для управління життєвим циклом кластерів Tanzu Kubernetes Grid використовується Cluster API, Velero - для бекапів та відновлення, Sonobuoy - для контролю відповідності конфігурації кластерів Kubernetes і Contour як інгрес-контролер.

Загальний перелік функцій Tanzu Mission Control має такий вигляд:

  • централізоване керування всіма вашими кластерами Kubernetes;
  • управління ідентифікацією та доступом (IAM);
  • діагностика та моніторинг стану кластерів;
  • управління конфігурацією та налаштуваннями безпеки;
  • планування регулярних перевірок стану кластера;
  • створення резервних копій та відновлення;
  • керування квотами;
  • візуалізоване подання утилізації ресурсів.

Знайомство з Tanzu Mission Control

Чому це важливо

Tanzu Mission Control допоможе бізнесу вирішити завдання управління великим парком кластерів Kubernetes, розташованих локально, у хмарі та у кількох сторонніх провайдерів. Рано чи пізно будь-яка компанія, діяльність якої зав'язана на IT, виявляється змушена підтримувати безліч різнорідних кластерів, розташованих у різних провайдерів. Кожен кластер перетворюється на снігову кулю, якій потрібна грамотна організація, відповідна інфраструктура, політики, захист, системи моніторингу та багато іншого.

У наші дні будь-який бізнес прагне скоротити витрати та автоматизувати рутинні процеси. А складний IT-ландшафт явно не сприяє економії та концентрації на пріоритетних завданнях. Tanzu Mission Control дає організаціям можливість працювати з безліччю кластерів Kubernetes, розгорнутих у багатьох провайдерів, гармонізувавши при цьому операційну модель.

Архітектура рішення

Знайомство з Tanzu Mission Control

Tanzu Mission Control — це мультитенантна платформа, що надає користувачам доступ до набору політик, які гнучко настроюються, які можна застосовувати до кластерів і груп кластерів Kubernetes. Кожен користувач прив'язаний до Організації, саме вона є «коренем» ресурсів – груп кластерів та робочих просторів (Workspaces).

Знайомство з Tanzu Mission Control

Що вміє Tanzu Mission Control

Вище ми коротко перерахували список функцій рішення. Погляньмо, як це реалізовано в інтерфейсі.

Єдине уявлення всіх кластерів Kubernetes підприємства:

Знайомство з Tanzu Mission Control

Створення нового кластера:

Знайомство з Tanzu Mission Control

Знайомство з Tanzu Mission Control

Кластер відразу можна призначити групу, і він успадкує задані їй політики.

Підключення кластера:

Знайомство з Tanzu Mission Control

Вже існуючі кластери можна підключити за допомогою спеціального агента.

Угруповання кластерів:

Знайомство з Tanzu Mission Control

У Cluster groups можна групувати кластери для успадкування призначуваних політик одразу лише на рівні груп, без ручного втручання.

Робочі простори:

Знайомство з Tanzu Mission Control

Дає можливість гнучко налаштовувати доступи до програми, яка знаходиться в межах кількох просторів імен, кластерів та хмарних інфраструктур.

Розглянемо докладніше принципи роботи Tanzu Mission Control у лабораторних роботах.

Лабораторна робота #1

Зрозуміло, детально уявити роботу Mission Control і нових рішень Tanzu без практики досить складно. Для того, щоб ви могли вивчити основні можливості лінійки, VMware надає доступ до кількох лабораторних стендів. На цих стендах можна виконати лабораторні роботи, використовуючи покрокові вказівки. Крім власне Tanzu Mission Control для тестування та вивчення доступні інші рішення. З повним списком лабораторних робіт можна ознайомитись на цій сторінці.

Для практичного ознайомлення з різними рішеннями (включно з невеликою «грою» по vSAN) відводиться різний час. Не турбуйтеся, це дуже умовні цифри. Наприклад, лабу по Tanzu Mission Control при проходженні з дому можна вирішувати до 9 з половиною годин. Крім того, навіть якщо вийде таймер, можна буде повернутися і пройти все заново.

Проходження лабораторної роботи #1
Для доступу до лабораторних робіт знадобиться обліковий запис VMware. Після авторизації відкриється спливаюче вікно з основною канвою роботи. У правій частині екрана буде розміщено докладну інструкцію.

Після прочитання невеликої вступної частини про Tanzu вам буде запропоновано пройти практику в інтерактивній симуляції Mission Control.

Відкриється нове спливаюче вікно windows-машини, і вам буде запропоновано виконати кілька базових операцій:

  • створити кластер
  • налаштувати його базові параметри
  • оновити сторінку і переконатися, що все налаштовано коректно
  • задати політики та провести перевірку кластера
  • створити робочий простір
  • створити простір імен
  • знову попрацювати з політиками, кожен крок докладно пояснюється у посібнику
  • демо-апгрейд кластера


Зрозуміло, інтерактивна симуляція не дає достатньої свободи для самостійного вивчення: ви рухаєтеся заздалегідь прокладеними розробниками рейками.

Лабораторна робота #2

Тут ми вже маємо справу з чимось серйознішим. Ця лабораторна робота не настільки прив'язана до «рейок», як попередня і потребує уважнішого вивчення. Наводити її тут повністю ми не станемо: задля економії вашого часу розберемо лише другий модуль, перший присвячений теоретичному аспекту роботи Tanzu Mission Control. За бажання ви можете пройти її самостійно повністю. Цей модуль пропонує нам поринути у керування життєвим циклом кластерів через Tanzu Mission Control.

Примітка: лабораторні роботи Tanzu Mission Control регулярно актуалізуються та уточнюються. Якщо при проходженні лабораторної роботи якісь екрани або кроки будуть відрізнятися від наведених нижче, дотримуйтесь вказівок у правій частині екрана. Ми ж пройдемося за актуальною на момент написання статті версією ЛР та розглянемо її ключові елементи.

Проходження лабораторної роботи #2
Після процесу авторизації в VMware Cloud Services запускаємо Tanzu Mission Control.

Знайомство з Tanzu Mission Control

Перший крок, який пропонує лабораторія, — розгортання кластера Kubernetes. Спочатку нам необхідно отримати доступ до ВМ із Ubuntu за допомогою PuTTY. Запускаємо утиліту та вибираємо сеанс з Ubuntu.

Знайомство з Tanzu Mission Control

По черзі виконуємо три команди:

  • створення кластера: kind create cluster --config 3node.yaml --name=hol
  • завантаження KUBECONFIG-файлу: export KUBECONFIG="$(kind get kubeconfig-path --name="hol")"
  • висновок нід: kubectl get nodes

Знайомство з Tanzu Mission Control

Тепер створений кластер потрібно додати в Tanzu Mission Control. З PuTTY повертаємось у Chrome, переходимо в Clusters і натискаємо ATTACH CLUSTER.
З меню вибираємо групу — дефолт, вписуємо пропоноване ім'я лабою і натискаємо REGISTER.

Знайомство з Tanzu Mission Control

Копіюємо отриману команду та йдемо в PuTTY.

Знайомство з Tanzu Mission Control

Виконуємо отриману команду.

Знайомство з Tanzu Mission Control

Для відстеження прогресу виконуємо ще одну команду: watch kubectl get pods -n vmware-system-tmc. Чекаємо, доки у всіх контейнерів буде статус Робота або Зроблено.

Знайомство з Tanzu Mission Control

Повертаємось у Tanzu Mission Control та натискаємо VERIFY CONNECTION. Якщо все пройшло успішно, індикатори всіх перевірок мають бути зеленими.

Знайомство з Tanzu Mission Control

Тепер створимо нову групу кластерів та розгорнемо там новий кластер. Йдемо до Cluster groups і натискаємо NEW CLUSTER GROUP. Вписуємо ім'я та натискаємо CREATE.

Знайомство з Tanzu Mission Control

Нова група одразу має з'явитися у списку.

Знайомство з Tanzu Mission Control

Розгорнемо новий кластер: йдемо в Кластери, натискаємо NEW CLUSTER та вибираємо асоційовану з лабораторною роботою опцію.

Знайомство з Tanzu Mission Control

Додамо ім'я кластера, виберемо групу, що призначається йому — у нашому випадку hands-on-labs — і регіон деплою.

Знайомство з Tanzu Mission Control

При створенні кластера доступні й інші опції, але при проходженні лабораторного значення їх міняти немає. Вибираємо потрібну вам конфігурацію, натискаємо МАЙБУТНІ.

Знайомство з Tanzu Mission Control

Деякі параметри потрібно відредагувати, для цього натискаємо Редагувати.

Знайомство з Tanzu Mission Control

Збільшимо кількість робочих нід до двох, збережемо параметри та натиснемо CREATE.
У процесі ви побачите такий прогрес.

Знайомство з Tanzu Mission Control

Після успішного деплою перед вами буде така картина. Усі чеки мають бути зеленими.

Знайомство з Tanzu Mission Control

Тепер нам потрібно завантажити файл KUBECONFIG, щоб керувати кластером за допомогою стандартних команд kubectl. Це можна зробити прямо через інтерфейс користувача Tanzu Mission Control. Завантажуємо файл та переходимо до скачування Tanzu Mission Control CLI натисканням натисніть тут.

Знайомство з Tanzu Mission Control

Вибираємо потрібну версію та завантажуємо CLI.

Знайомство з Tanzu Mission Control

Тепер нам потрібно отримати API Token. Для цього переходимо в Мій аккаунт та генеруємо новий токен.

Знайомство з Tanzu Mission Control

Заповнюємо поля та натискаємо СТВОРИТИ.

Знайомство з Tanzu Mission Control

Отриманий токен копіюємо та натискаємо ПРОДОВЖИТИ. Відкриваємо Power Shell і вводимо команду tmc-login, потім токен, який ми отримали і скопіювали на попередньому кроці, а потім Login Context Name. Вибираємо інформація логи із запропонованих, регіон та olympus-default як ssh-ключ.

Знайомство з Tanzu Mission Control

Отримуємо namespaces:kubectl --kubeconfig=C:UsersAdministratorDownloadskubeconfig-aws-cluster.yml get namespaces.

вводимо kubectl --kubeconfig=C:UsersAdministratorDownloadskubeconfig-aws-cluster.yml get nodes, щоб переконатися, що всі ноди у статусі Готовий.

Знайомство з Tanzu Mission Control

Тепер у цьому кластері нам належить розгорнути невелику програму. Зробимо два розгортання - coffee and tea - у вигляді сервісів coffee-svc і tea-svc, кожен з яких запускає різні образи - nginxdemos/hello and nginxdemos/hello: plain-text. Робиться це так.

Через PowerShell зайдемо у завантаження та знайдемо файл cafe-services.yaml.

Знайомство з Tanzu Mission Control

Через деякі зміни в API нам доведеться його оновити.

Pod Security Policies включені за замовчуванням. Для запуску програм із привілеями необхідно прив'язати обліковий запис.

Створюємо прив'язку: kubectl --kubeconfig=kubeconfig-aws-cluster.yml create clusterrolebinding privileged-cluster-role-binding --clusterrole=vmware-system-tmc-psp-privileged --group=system:authenticated
Деплоім додаток: kubectl --kubeconfig=kubeconfig-aws-cluster.yml apply -f cafe-services.yaml
перевіряємо: kubectl --kubeconfig=kubeconfig-aws-cluster.yml get pods

Знайомство з Tanzu Mission Control

Модуль 2 закінчено, ви прекрасні та чудові! Пройти решту модулів, що включають управління політиками та перевірки на відповідність радимо самостійно.

Якщо ви хочете пройти цю лабораторну роботу повністю, знайти її можна у каталозі. А ми перейдемо до останньої частини статті. Поговоримо про те, на що вдалося подивитися, зробимо перші акуратні висновки і розгорнуто скажемо, що таке Tanzu Mission Control стосовно реальних бізнес-процесів.

Думки та висновки

Безумовно, говорити про практичні питання роботи з Tanzu поки що зарано. Матеріалів для самостійного вивчення не так вже й багато, а розгорнути тестовий стенд, щоб «потикати» новий продукт з усіх боків на сьогоднішній день неможливо. Проте, навіть за наявними даними, можна зробити певні висновки.

Користь Tanzu Mission Control

Система вийшла справді цікава. Відразу ж хочеться виділити кілька зручних та корисних плюшок:

  • Можна створювати кластери через веб-панель та через консоль, що дуже сподобається розробникам.
  • Управління RBAC через воркспейси реалізовано в інтерфейсі користувача. У лабі поки не працює, але теоретично — відмінна річ.
  • Централізоване управління привілеями на основі шаблонів
  • Повний доступ до namespace'ів.
  • Редактор YAML
  • Створення мережевих політик.
  • Моніторинг здоров'я кластеру.
  • Можливість робити резервне копіювання та відновлення через консоль.
  • Управління квотами та ресурсами з візуалізацією фактичної утилізації.
  • Автоматичний запуск кластерів інспекції.

Знову ж таки, багато компонентів на даний момент перебувають у стадії доопрацювання, тому повноцінно говорити про плюси та мінуси деяких інструментів поки що зарано. До речі, Tanzu MC, виходячи з демонстрації, може на льоту робити апгрейд кластера і загалом забезпечувати весь життєвий цикл кластера відразу у багатьох провайдерів.

Наведемо кілька «високрівневих» прикладів.

У чужий кластер зі своїм статутом

Допустимо, у вас є команда розробників, у якій чітко розподілені ролі та обов'язки. Кожен зайнятий своєю справою і не повинен випадково перешкодити роботі колег. Або в команді є один або кілька менш досвідчених фахівців, яким ви не хочете давати зайві права та свободи. Припустимо, що у вас є Kubernetes відразу від трьох провайдерів. Відповідно, щоб обмежити права і привести їх до спільного знаменника, доведеться по черзі заходити в кожну панель керування і прописувати все вручну. Погодьтеся, не найпродуктивніше проведення часу. І чим більше у вас ресурсів, тим моторніший процес. Tanzu Mission Control дозволить керувати розмежуванням ролей із «одного вікна». На наш погляд дуже зручна функція: ніхто нічого не зламає, якщо ви випадково забудете десь вказати потрібні права.

До речі, наші колеги з МТС у своєму блозі порівнювали Kubernetes від вендора та open source. Якщо ви давно хотіли дізнатися, у чому відмінності і на що дивитися при виборі welcome.

Компактна робота з логами

Ще один приклад із реального життя – робота з логами. Припустимо, у команді також є тестувальник. Одного дня він приходить до розробників і сповіщає: «у додатку виявлено баг, терміново фіксуємо». Закономірно, що перше, із чим захоче ознайомитися розробник, — це логи. Надсилати їх файлами через електронну пошту або Telegram - моветон і минуле століття. Mission Control пропонує альтернативу: можна встановити розробнику спеціальні права, щоб вони могли читати логи тільки в конкретному просторі імен. У такому випадку тестувальнику досить сказати: «у такому додатку, в такому полі, в такому namespace є баги», і розробник легко відкриє логи і зможе локалізувати проблему. А за рахунок обмежених прав не полізе одразу її лагодити, якщо компетенція не дозволяє.

У здоровому кластері здоровий додаток

Ще одна чудова можливість Tanzu MC – відстеження здоров'я кластера. Судячи з попередніх матеріалів, система дозволяє переглядати деяку статистику. На даний момент складно сказати, наскільки саме деталізованою буде ця інформація: поки все виглядає досить скромно і просто. Є моніторинг завантаженості CPU та RAM, показані статуси всіх компонентів. Але навіть у такому спартанському вигляді це дуже корисна та ефективна деталь.

Підсумки

Зрозуміло, в лабораторному поданні Mission Control, у, здавалося б, стерильних умовах, спостерігаються деякі шорсткості. Ви й самі їх напевно помітите, якщо наважитеся пройти роботу. Якісь моменти зроблено недостатньо інтуїтивно — навіть адміністраторові зі стажем доведеться вчитатися у мануал, щоб розібратися в інтерфейсі та його можливостях.

Тим не менш, з урахуванням складності продукту, його важливості та ролі, яку йому доведеться зіграти на ринку, вийшло круто. Відчувається, що творці намагалися налагодити робочий процес користувача. Зробити кожен елемент управління максимально функціональним та зрозумілим.

Залишається лише випробувати Tanzu на тестовому стенді, щоб реально зрозуміти усі його плюси, мінуси та нововведення. Як тільки така можливість нам надасться, ми поділимося з читачами Хабра докладним звітом про роботу з продуктом.

Джерело: habr.com

Додати коментар або відгук