article-spots
article-carousel-spots
programs
Технології

Перші кроки в Kubernetes: що DevOps-початківцям треба знати про контейнеризацію

19 серп

Геннадій Молчанов, системний інженер в ЕРАМ, почав свою кар’єру в ІТ з освітніх програм EPAM Campus. Після багаторічної роботи в галузі комерційного права і управління, він зважився на кар’єрний «рестарт» та у 2022 році почав вивчати напрям DevOps, а вже за рік пройшов співбесіду на перший проєкт та успішно склав два сертифікаційні іспити Google Cloud Platform. У 2024 Геннадій додав до своєї колекції престижний сертифікат Certified Kubernetes Administrator (CKA). Сьогодні він ділиться з початківцями покроковим планом вивчення технології Kubernetes та персональними лайфхаками, які допомогли йому в опануванні нових навичок. 

Kubernetes — це високоефективна технологія для управління контейнерами, які використовуються для розгортання та експлуатації програм, додатків або мікросервісів. Одним із його головних плюсів є можливість масштабування. Наприклад, коли раптово зростає навантаження на додаток, Kubernetes автоматично дозволяє додавати більше ресурсів для обробки запитів, що запобігає перевантаженню системи.  

Для ефективного використання Kubernetes потрібно мати досить потужну базу знань, тому доцільно починати знайомство з цією технологією, маючи базове розуміння: 

  • операційної системи на основі Linux,  
  • нетворкінгу,  
  • віртуалізації і контейнеризації,  
  • структури YAML файлів.  

З чого почати вивчення Kubernetes? 

Хоча вивчення Kubernetes вимагає певних знань та навичок, головне — це мотивація. Заглиблюватися в технологію можна покроково, починаючи з базового рівня і поступово розширювати знання.  

Готові? Почніть із простих відео на YouTube, наприклад, із курсу Kubernetes Crash Course for Absolute Beginners.  

Спробуйте власноруч зробити щось на практиці. Скористайтесь таким інструментами, як Minikube, KinD або K3S для розгортання Kubernetes плейґраунда на домашньому ПК. Якщо перші експерименти проходять вдало, можна рухатись далі, більш системно і глибоко. Орієнтуйтесь на програму підготовки до іспитів СКА або CKAD — це практичні тести, спрямовані на перевірку ваших знань технології Kubernetes.  

Існує чимало корисних онлайн-курсів підготовки до цих іспитів, які додадуть вам впевненості і мотивації. Серед них окремо виділю курси від Mumshad Mannambeth (Mumshad Mannambeth | Best Selling Instructor | Teaches Kubernetes | Udemy) на порталах Udemy та KodeKloud. 

Що вивчати в першу чергу? 

Основні теми, на яких початківці мають зосередити увагу при вивченні Kubernetes, зокрема при підготовці до СКА/CKAD, наступні: 

  1. Архітектура кластера: основні сервіси Kubernetes, їх призначення та взаємодія. 
  2. Основні компоненти/ресурси: поди, ноди, деплойменти, неймспейси, сервіси, секрети тощо. 
  3. Створення кластера: конфігурація ноди та створення кластеру за допомогою утиліти kubeadmin. 
  4. Управління ресурсами: створення та управління ресурсами Kubernetes за допомогою команд і маніфест-файлів (yaml-файли, які використовуються для опису конфігурації ресурсів). Створення бекапів для ресурсів Kubernetes. 
  5. Зберігання даних: створення та використання ресурсів для постійного збереження даних. 
  6. Мережеві налаштування: сервер доменних імен, види сервісів, інгрес-контролери та інгрес-ресурси, мережеві поліси, сертифікати tls. 
  7. Управління правами доступу до ресурсів: користувачі, сервісні олікові записи, рольова модель управління доступами RBAC (role based access control). 
  8. Логування та моніторинг: розуміння логів для пошуку та виправлення помилок, моніторинг використання ресурсів кластера. 

Kubernetes має чудову документацію (Kubernetes Documentation) з багатьма прикладами маніфест-файлів для кожного ресурсу та дуже корисну сторінку з прикладами команд (Quick Reference). Проте будьте готові до того, що доведеться переглядати деякі матеріали по кілька разів. 

Куди рухатись далі? 

Після опанування базових знань та навичок (або навіть і паралельно з цим) важливо також поступово знайомитися з хмарними технологіями, наприклад, GCP, Azure та/або AWS, оскільки імплементація Kubernetes у хмарному середовищі має свої особливості і нюанси. 

Для створення Kubernetes-кластера у хмарному середовищі зазвичай використовується сервіс Terraform, який також може використовуватися для деплоймента ресурсів Kubernetes. Тому знання Terraform є важливим для автоматизації процесу створення і управління кластером. 

Інші технології, які варто вивчати, оскільки вони часто використовуються разом із Kubernetes: 

  • Helm, що допомагає керувати додатками Kubernetes. В Helm Charts використовуються шаблони і змінні, які разом інтегруються у маніфест-файли; 
  • інструменти на кшталт FluxCD або ArgoCD використовують GitOps практики, коли вся конфігурація (стан) системи зберігається в репозиторіях Git, які служать єдиним джерелом істини. Ресурси в кластерах автоматично синхронізуються з їх декларативним описанням в репозиторіях Git. 

Поради та лайфхаки початківцям від Геннадія Молчанова: 

  1. Практикуйтесь якомога більше. Зробіть кілька власних проєктів на Kubernetes: на домашньому ПК, в одному з хмарних середовищ, в сторонньому плейґраунді. Щоб спростити собі завдання, на початках можна повторювати послідовність дій за блогерами на YouTube. У більшості випадків вам не вдасться все повторити точнісінько так само: будуть відрізнятися ваші налаштування чи версії програмного забезпечення. Тож адаптувати, вирішувати проблеми і покращувати вам треба буде самостійно. Спочатку це може спричинити демотивацію, але пам’ятайте, що траблшутінг (тобто вирішення проблем), адаптація та поліпшення — це і є, значною мірою, складові роботи DevOps-інженера.  
  2. Сконцентруйтеся на вивченні технології, інвестуйте у це достатньо часу. Інтенсивно попрацюйте протягом кількох місяців, поєднуючи теорію та практику. Шукайте проєкти та завдання, які так чи інакше пов’язані з Kubernetes. EPAM, зокрема, пропонує декілька цікавих задач в рамках навчання в ЕРАМ Campus, а також корисний практичний курс Kubernetes для тих, хто вже в Cloud&DevOps Laboratory. 
  3. Мотивуйте себе складанням іспиту СКА / CKAD — це зрозуміла і реалістична ціль з послідовною покроковою реалізацією, навіть якщо ви з певних причин вирішите його не складати. 
  4. Долучайтеся до спільнот, дивіться тематичні канали на YouTube, читайте тематичні блоги. Шукайте та користайтеся можливістю спілкуватися з більш досвідченими колегами, які вже працюють з Kubernetes та суміжними технологіями.  
  5. При вирішенні комплексних задач малюйте діаграму, складайте план роботи і ведіть чек-листи. Також робіть технічні примітки, як саме ви виконали певне завдання. Це допоможе швидко згадати, що і як ви робили через деякий час і, за необхідності, створити документацію. 
  6. Користуйтесь ChatGPT — для пояснення помилок в логах, для створення або пояснення kubectl команд, маніфест-файлів, пояснення концепцій Kubernetes. Це може зекономити багато часу і фактично замінити вам ментора. ChatGPT також згенерує на ваш запит приклади тестових запитань для підготовки до іспиту (СКА / CKAD). Але відповіді все ж варто перевіряти на практиці або в документації Kubernetes. 
  7. Спробуйте LENS або OpenLENS (IDE для Kubernetes) — зручний інструмент для візуалізації та управління ресурсами.  

Корисні ресурси: 

 

Для тих, хто надихнувся порадами Геннадія та остаточно ухвалив рішення з головою поринути у світ DevOps, хмарних технологій та системної інженерії, маємо кілька навчальних програм для початківців. Шукайте доступні освітні можливості за посиланням


А реєстрація та відбір на Cloud&DevОps Laboratory тривають до 2 вересня. Учасники цієї навчальної програми детально вивчають Kubernetes і не тільки. Долучайтеся і стартуйте в кар’єрі DevOps разом з експертами EPAM Campus!