Headlamp є відкритим, розширюваним проєктом інтерфейсу користувача від Kubernetes SIG, призначеним для спостереження, управління та налагодження ресурсів кластера.
Knative приносить безсерверні робочі навантаження до Kubernetes, обробляючи маршрутизацію трафіку, автомасштабування та управління ревізіями, щоб команди могли розгортати та ітеративно працювати без боротьби з інфраструктурою. Але щоденна експлуатація робочих навантажень Knative може бути складною, все ще потрібно часто перемикатися між kn CLI, kubectl та інтерфейсом Kubernetes, щоб отримати повну картину того, що працює.
Ми створили втулок Headlamp для Knative, щоб заповнити цю прогалину, дозволяючи операторам переглядати, розуміти та взаємодіяти зі своїми робочими навантаженнями з одного місця. Цей втулок був створений в рамках програми наставництва LFX. Ось огляд того, що ми зробили.
Ось короткий огляд втулка Knative для Headlamp:
Зіставлення ресурсів в Headlamp працює і для CRD Knative. Ви можете побачити, як KServices, Revisions та DomainMappings взаємоповʼязані в одному графічному інтерфейсі.

KService є ресурсом верхнього рівня в Knative: він управляє життєвим циклом маршрутів, конфігурацій, ревізій та всім необхідним для запуску та експонування вашого застосунку.
Втулок надає KServices повний перегляд деталей з перемиканням в Режим редагування для внесення змін у розподіл трафіку, анотації автомасштабування та інше. Загальні дії, такі як перегляд YAML, відкриття журналів, запуск повторного розгортання або перезапуск підлеглих подів, показуються в заголовку, обмежені вашими поточними правами RBAC.

Knative дозволяє маршрутизувати трафік між кількома ревізіями одного й того ж сервісу. Це корисно для канаркових релізів, поступових розгортань, протегованих попередніх URL та A/B тестування.
Втулок показує трафік, призначений кожній ревізії, останню готову ревізію, стан готовності, вік та налаштовані теги. У режимі редагування ви можете змінювати відсотки та теги безпосередньо. Втулок перевіряє, що трафік сумується до 100% і що теги унікальні перед збереженням. Маршрути з тегами та звітом URL відображаються як клікабельні посилання.

Функція автоматичного масштабування Knative підтримує цілий ряд параметрів: цільові значення паралельності, цільовий рівень завантаження, цільові значення RPS, мінімальний/максимальний масштаб, початковий масштаб, вікно стабільності, затримка зменшення масштабу та інші. Фактичне значення для будь-якого робочого навантаження визначається поєднанням анотацій на рівні KService та ConfigMaps для всього кластера.
Втулок читає config-autoscaler та config-defaults і показує поточну конфігурацію для кожного KService у контексті, щоб ви могли одразу побачити, чи налаштування явно задано, чи використовується стандартне значення кластера.

Разом з втулком Prometheus для Headlamp, втулок показує графіки швидкості запитів, затримки та використання ресурсів на сторінках деталей KService та Revision. Розподіл швидкості запитів по ревізіях особливо корисний при перевірці розподілу трафіку в процесі.

Втулок також містить списки та детальні огляди для Revisions, DomainMappings, ClusterDomainClaims, а також огляд мережевих параметрів на рівні кластера (зчитування файлів config-network та config-gateway для отримання інформації про фактичний клас вхідного трафіку, налаштування шлюзу та допоміжні сервіси) . Це дає операторам повне уявлення про стан Knative, не виходячи з Headlamp.

Для розробки або налаштування на рівні вихідного коду дивіться README до втулка Knative. Поточний випуск — 0.3.0-beta.
Ми будемо раді отримати відгуки від користувачів Knative. Якщо ви натрапили на помилку або хочете підтримку для робочого процесу, який ми ще не охопили, будь ласка, відкрийте тікет. Ви також можете знайти нас у каналі Kubernetes Slack #headlamp.