Цього року Plesk вирішив відправити кількох людей на KubeCon – головну подію щодо Kubernetes у світі. Профільних конференцій у Росії на цю тему немає. Звичайно, про K8s у нас говорять, і всі його хочуть, але стільки компаній, що його практикують, в одному місці більше не збирається ніде. Я виявився одним із учасників, тому що працюю над платформою, заснованою на Kubernetes.
Про організацію
Масштаби конференції приголомшують: 7000 учасників, величезний виставковий центр. Перехід із одного залу в інший займав 5-7 хвилин. Одночасно йшло по 30 доповідей на різні теми. Було безліч компаній зі своїми стендами, на деяких розігрували багато непоганих і трохи відмінних призів, а також роздавали всяке у вигляді футболок, ручок та інших милих речей. Все спілкування було англійською мовою, але жодних труднощів я не зазнав. Якщо це єдиний чинник, через який ви не їдете на закордонні конференції, сміливо їдьте. Англійська в ІТ простіше звичайної англійської завдяки безлічі звичних слів, які щодня пишеш і читаєш у коді та документації. У сприйнятті доповідей також проблем не було. Інформації на думку було прошито дуже багато. До вечора я нагадував сервер, на якому скористалися переповненням буфера, і лили просто у підсвідомість.
Про доповіді
Я хочу коротко розповісти про доповіді, які найбільше сподобалися мені, і я рекомендував би їх подивитися.
Ця доповідь справила на мене належне враження тому, що натиснула на сильний біль. У нас багато розрізнених сервісів, їх підтримують та розробляють різні люди в команді. Ми слідуємо підходам інфраструктура як код, але є деякі невирішені проблеми. Є репозиторій з кодом на Ansible, але поточний стейт і інвентори зберігаються у розробника, що запускає скрипт, на машині, там же креди. Частину інформації можна знайти у confluence, але не завжди очевидно де. Нема місця, де можна просто натиснути кнопку, і стане добре. Пропонується зробити опис і покласти в репозиторій як код, а й інструменти деплою. Описати, де брати стейт та креди, робити make Install і насолоджуватися результатом. Я хотів би більше порядку в сервісах, стежитиму за релізами CNAB, використовувати у себе, впроваджувати, переконувати. Хороше лекало для оформлення Readme у ріпі.
Дуже багато інформації про граблі при написанні операторів. Вважаю доповідь обов'язковою для перегляду тим, хто зібрався написати свій оператор для Kubernetes. Там враховані всі речі на кшталт статусів, збору сміття, конкурентності та всього. Дуже змістовно. Сильно сподобалася цитата із коду persistent volumes Kubernetes'a:
K8s сповідує складність інтеграції для простоти реалізації.
Ця доповідь розкриває у деталях один із основних архітектурних елементів кластера — control plane, а саме набір контролерів. Описується їх роль та архітектура, базові засади створення власного контролера на прикладі вже існуючих.
Із найоригінальніших моментів — рекомендація не маскувати позаштатні ситуації за коректною поведінкою контролера, а змінювати поведінку певним чином, щоб дати сигнал системі виникнення проблем.
Дуже цікавий досвід, дуже багато інформації з рецептами про те, що потрібно врахувати, коли у тебе справді високе навантаження. У Kubernetes вони залізли добре, підтримують 50 кластерів. Розповіли про всі аспекти вичавлювання максимальної продуктивності. Рекомендую подивитися доповідь, перед прийняттям якихось технічних рішень щодо кластерів.
Доповідь, після якої я зрозумів, що Loki потрібно обов'язково спробувати для ліг в кластері і, швидше за все, з ним залишитися. Суть: еластик важкий. Графана хотіла розробити легке масштабоване рішення, придатне для проблем. Рішення вийшло елегантним: Loki вибирає з Kubernetes мета інформацію (лейбли, як Prometheus), і на них розкладає логи. Таким чином, можна вибрати шматки лога за сервісом, знайти конкретний під, вибрати конкретний час, відфільтрувати за кодом помилки. Ці фільтри працюють без повнотекстового пошуку. Так, поступово звужуючи коло пошуку, можна дістатися конкретної потрібної помилки. Наприкінці пошук таки задіюється, але оскільки коло звужений, вистачає швидкості без індексування. Після натискання на неї підвантажується контекст - пара рядків до та пара рядків лога після. Таким чином, це виглядає як пошук файлу з логами і грипом по ньому, але трохи зручніше і в тому ж інтерфейсі, де метрики. Вміє рахувати кількість входжень пошукового запиту. Самі пошукові запити нагадують мову Прометея і виглядають просто. Доповідач звернув увагу на те, що рішення не дуже підходить для аналітики. Вкрай раджу подивитися всім, кому потрібні логи, дуже легка подача.
Дуже наочно показані процеси канаркового та синьо-зеленого деплою. Раджу подивитися доповідь тим, хто ще не перейнявся цим. Доповідачі презентують рішення як розширення для перспективної CI-CD системи ARGO. Англійську мову доповідача з Росії легше слухати, ніж мова інших доповідачів.
Одним із найскладніших аспектів управління кластером залишається налаштування безпеки, зокрема прав доступу до ресурсів. Вбудовані примітиви K8s дозволяють налаштувати авторизацію як завгодно. Як безболісно підтримувати їх у актуальному стані? Як розібратися з тим, що відбувається з правами доступу, та налагодити створені ролі? На цій доповіді представлено не лише огляд кількох інструментів налагодження авторизації в k8s, а й озвучено загальні рекомендації щодо побудови простих та ефективних політик.
Інші доповіді
Я рекомендувати не буду. Якісь були капітанськими, якісь, навпаки, дуже складними. Я раджу залізти ось у цей плейлист і подивитися все, що позначено як keynote. Це дозволить широким поглядом охопити індустрію навколо Cloud Native Apps, а далі варто натискати ctrl+f і шукати за ключовими словами, компаніями, продуктами і підходами.
Тут посилання на плейлист з доповідями, зверніть на неї увагу
На стенді Haproxy мені подарували футболку для сина. Сумніваюся, що я через це заміню в продакшені Nginx на haproxy, але запам'ятав їх найсильніше. Хтозна, що з Nginx зроблять нові власники.
На стенді IBM усі три дні йшли короткі доповіді, і вони заманювали людей, розігруючи Oculus Go, навушники Beats та квадрокоптер. Потрібно було півгодини перебувати на стенді. Двічі за три дні випробовував долю — не випало. Також короткі доповіді були у VMWare та Microsoft.
На стенді Ubuntu зробив те, що, здається, робили все – сфотографувався із Шаттлвортом. Комунікабельний мужик, порадувався, дізнавшись, що я користуюсь її починаючи з 8.04 і що сервер з нею пропрацював 10 років без dist upgrade без єдиного розриву (правда без доступу до Інтернету).
Не зміг пройти повз втомлений Дмитро Столяров, поговорив з ним про нелегкі будні інженерів, які підтримують Kubernetes. Читання доповідей він делегуватиме своїм колегам, але готує якийсь новий формат подачі матеріалу. Закликав підписуватись на канал Фланта на youtube.
Дуже багато грошей в стенди вклали IBM, Cisco, Microsoft, VM Ware. Скромніші стенди були в опенсорсних товаришів. Поспілкувався на стенді із представниками Grafana, переконали мене – треба пробувати Loki. Взагалі, здається, що повнотекстовий пошук у системі логування потрібен лише для аналітики, а для трабблшутинга вистачить систем рівня Loki. Поспілкувався із розробниками Prometheus. Вони не планують робити довге сховище метрик та даунсемплінг даних. Радять дивитися cortex та thanos як засіб для вирішення. Дуже багато стендів, потрібен був цілий день, щоб оминути всіх. Десяток рішень для моніторингу як обслуговування. П'яток сек'юріті сервісів. П'яток перформанс сервісів. Десяток UI для Kubernetes. Багато тих, хто надає k8s як сервіс. Усі хочуть свій шматочок ринку.
Amazon та Google орендували дворики зі штучною травою на даху, поставили там шезлонги. Amazon роздавав гуртки та розливав лимонад, а на стенді розповідав про нововведення в роботі зі spot інстансами. Google видавав печиво з лого Kubernetes і зробив класну фотозону, а на стенді рибалив на велику enterprise рибу.
Про Барселону
Закоханий у Барселону. Я був там вдруге, вперше у 2012 році на оглядовій екскурсії. Це дивно, але багато фактів спливли в пам'яті, я багато зумів розповісти своїм колегам, був міні-гідом. Чисте морське повітря миттєво позбавило мене алергії. Смачні морепродукти, паелья, сангрія. Дуже тепла сонячна архітектура. Невелика поверховість, багато зелені. Ми пройшли пішки за ці три дні близько 50 кілометрів, цим містом хочеться гуляти ще й ще. Все це після доповідей, вечорами.
Що головне зрозумів
Я дуже радий, що я отримав можливість відвідати цю конференцію. Вона розклала по поличках те, що раніше було розкладено. Надихнула, зробила очевидними деякі речі.
Червоною ниткою пройшла думка: Kubernetes не кінцева точка, а інструмент. Платформа для створення платформ.
А головне завдання усієї движухи: збирати і запускати масштабовані програми
Основні напрямки, над якими працює співтовариство, викристалізувалися. Приблизно, як у свій час з'явилися 12 факторів для додатків, з'явився перелік того, що і як робити для інфраструктури загалом. Якщо хочете, можна назвати це трендами:
Dynamic environments
Public, hybrid і private clouds
Контейнери
Сервісна сітка
Мікросервіс
Immutable infrastructure
Декларативний API
Ці техніки дозволяють будувати системи з такими характеристиками:
Ті, що мають можливість викочувати серйозні зміни, часто і передбачувано безпечно.
CNCF відбирає найкращі проекти (невеликий список) та топить за такі речі:
Здорова автоматизація
Відкритий код
Свобода у виборі постачальника послуг
Kubernetes складний. Він простий ідеологічно і частинами, але складний загалом. Ніхто не показав рішення all-in-one. На ринку k8s як сервісу, та й на решті ринку дикий захід: підтримку продають і за 50$, і за 1000$ на місяць. Кожен заглиблюється в якусь частину і копає її. Хтось у моніторинг та дашборди, хтось у продуктивність, хтось у безпеку.