Certified Kubernetes Administrator: як і чому варто здавати оновлену сертифікацію

💡 Усі статті, обговорення, новини про DevOps — в одному місці. Приєднуйтесь до DevOps спільноти!

Всім привіт, я Верхутін Даніїл, DevOps-інженер компанії Teamvoy з 3.5 роками досвіду. Радий вітати DOU-спільноту у своїй першій статті.

18 лютого 2025 року Linux Foundation кардинально оновили сертифікацію Certified Kubernetes Administrator (CKA). Як людина, яка почала серйозно готуватись якраз перед оновленням, можу сказати, що завдання стали набагато складнішими. А ресурсів, по яких можна готуватись, значно менше, як і інформації про підготовку.

Збільшилась тільки кількість постів на Reddit про те, як все більше людей завалюють свої спроби та не знають як взагалі можливо скласти. Але тим не менш мені вдалось скласти з першої спроби на 75% з прохідних 66. Тому хочу, щоб ця стаття була саме такою, на яку мріяв потрапити я у часи підготовки. І загалом, сподіваюсь, повсякденним користувачам Kubernetes буде також цікаво.

Тож перед тим, як говорити про оновлені теми й тому подібне, розкажу про свій бекграунд з сертифікаціями та загалом про CKA.

Мій бекграунд у сертифікаціях

На початку кар’єри я працював на великому ентерпрайз-проєкті у SoftServe, де стек був дуже лімітованим, незвичним та не «модним», скажемо так. Тому з моїм колегою та зараз вже товаришем Дмитром Слотвінським, який, до речі, нещодавно отримав почесне звання Kubestronaut (Діма, я тебе ще наздоганю :)), ми почали вивчати актуальні технології та здавати одну за одною сертифікації. Так я отримав AZ-900, DP-900, AZ-104 та Terraform Associate.

Для всіх цих сертифікацій алгоритм дуже простий: офіційні learning-сторінки платформ, YouTube-курс, проходження дампів питань зі справжніх екзаменів на Exam Topics та повторення тем, де виявлені слабкості. Цим шляхом на екзамені ви ще до того, як дочитаєте питання до кінця, будете вже знати відповідь. Саме через це дані сертифікації ніби втрачають свою цінність. Бо, якщо чесно, можна зайти на Exam Topics, завчити відповіді та «для галочки» здати.

Але якщо по-справжньому вчити, то це ідеальний шлях для того, щоб з будь-яким інструментом дійти «from zero to hero», бо є чітка, зрозуміла структура та мотивація у вигляді бейджика.

На відміну від всіх прикладів сертифікацій, зазначених вище (про всяк випадок зазначу, що аналоги від GCP та AWS також сюди входять), CKA та інші приклади з Kubernetes від Linux Foundation (CKAD, CKS та інші) є набагато складнішими. Бо замість тестів за 2 години треба виконати від 15 до 20 практичних завдань на Remote Desktop з використанням тільки ресурсів у браузері, що дозволені, а це певні сторінки офіційної документації (до яких я ще повернусь). Але саме завдяки цьому CKA став набагато цікавішим та дійсно корисним у справжній роботі.

Кому і чому варто здавати CKA

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

Говорячи конкретно про мій досвід, з часів SoftServe я дуже хотів працювати з Kubernetes, бо мені здавалось (і здається), що це має бути обов’язковим інструментом у руках DevOps-інженера. Я робив мінімальні пет-проєкти, читав дві книжки, які, до речі, дуже раджу: «Cloud Native DevOps with Kuberenetes», «Production Kubernetes». Але сказати, що в результаті я по-справжньому зрозумів, чим відрізняється Ingress Controller від Ingress, що таке CSI й так далі та загалом як працює Kubernetes під капотом (хоча мені постійно хотілось у цьому хоч мінімально розібратись), я не міг.

Тому, вже перейшовши у Teamvoy, на проєкті мені вдалось продати консервативним замовникам ідею Kubernetes, де він дійсно був потрібен. Почався мій тернистий шлях до Kubernetes у Production — особливо як одного DevOps-інженера у компанії. Якщо чесно, навіть зараз не можу сказати, чи було б мені легше, якби я здав сертифікацію перед цим, чи вже як сталось — після, з тяжко набутим досвідом. Але це, напевно, і є відповіддю на питання чому.

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

Ви вже працюєте з Kubernetes: ну тут можна перерахувати багато чого. По-перше, я нарешті не просто зрозумів, а на практиці побачив архітектуру Kubernetes: інтерфейси, плагіни, API, компоненти, etcd — це все вам треба буде не просто вивчити, а дійсно зрозуміти, щоб успішно скласти екзамен, і CKA надає всі ресурси та можливості для цього. По-друге, після оновлення сертифікації вона почала покривати актуальні та «модні» теми про Kubernetes, у яких можна ознайомитись з різними CNI, CRI, Kustomize, Helm та Gateway API.

Мене це все завжди у прямому сенсі лякало своєю складністю, але на практиці виявилось дуже цікавим та захоплюючим. Я навіть і здогадатись не міг, що Ingress — це вже «минуле століття» і всі мігрують на Gateway API. І я точно буду використовувати його у майбутніх проєктах, бо це дійсно полегшує реалізацію вебраутінгу.

І наостанок — всі ми, напевно, знаємо, що документація — це повний об’єм інформації з конкретного інструменту, але читати повністю її ніхто не буде. CKA допомагає виокремити те, що дійсно потрібно, та ознайомитись повністю з цими компонентами, а не на базовому рівні, як у всіх YouTube-курсах.

Окрім вище зазначеного, я думаю, що CKA через свою складність та практичну реалізацію завдань набагато більше цінується роботодавцями та ком’юніті.

Теми оновленого CKA

Перейдемо до конкретики. Офіційний перелік тем можна знайти тут: https://training.linuxfoundation.org/certified-kubernetes-administrator-cka-program-changes/. Це дуже загальний опис, який мені зовсім не допоміг зрозуміти, що саме треба вивчати.

Тому я б пропонував за основу взяти цей Github, який доповнити наступним:

  • Компоненти Kubernetes: зрозуміти їх роль, вивчити, як саме вони можуть хоститись, де можна знайти їх конфігурацію, поширені проблеми у ній, та що вказує на те, що саме цей компонент не працює.
  • Affinity.
  • Taints and tolerations.
  • VPA: за допомогою kubectl explain вміти написати його конфігурацію з нуля, бо прикладів у документації я не знайшов.
  • HPAv2: зверніть увагу, що на звичайній сторінці HPA приклад api-версії один, так само як і при виконанні команди kubectl scale. А всі завдання, які траплялись мені, були HPA v2, приклад якого можна знайти на сторінці HPA Walkthrough.
  • Gateway API: цим ресурсом можна користуватись у браузері безпосердньо під час складання екзамену. Часто трапляються завдання мігрувати ingress на gateway api. Це не так складно, як звучить, та робиться доволі швидко.
  • Network Policy.
  • Service Accounts.
  • Kustomize: про всяк випадок, але все інтуїтивно зрозуміло зазвичай.
  • Helm: робота з репозиторіями, пошук чартів, їх версіонування, отримання їх маніфестів.

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

Підготовка

  1. Теорія. Тут буду радити тільки офіційну документацію Kubernetes, Helm та Gateway API. Причому читати по кожній темі сторінки повністю до кінця. Багато питань повʼязані саме з якоюсь специфічною конфігурацією, яка лежить десь у глибині сторінки. Головна мета — орієнтуватись у документації та розуміти всі можливості кожного з інструментів у ваших руках.
  2. Практика.
  • KillerCoda: безкоштовний ресурс, де ви зможете попрактикуватися з усіма базовими завданнями. Але, на жаль, Killer Coda ще не оновили завдання відповідно до актуальної сертифікації.
  • KodeKloud: платна підписка. Я не прихильник платних ресурсів загалом, але в даному випадку без цього ніяк через те, що оновлених питань на безкоштовних ресурсах ще немає. Тут можна пройти сумарно 8 симуляторів екзаменів CKA, які є актуальними та відповідають завданням зі справжнього екзамену.
  • Killer Shell — можна придбати 2 сесії симуляції справжнього екзамену. Хочу зазначити, що після реєстрації на екзамен ви отримуєте 2 безкоштовні спроби у Killer Shell. Цей ресурс має майже повністю аналогічну платформу до екзаменаційної та завдання навіть трохи складніші за реальний екзамен. Свою другу спробу там, яку складав за години до екзамену, я завалив з результатом 25% більше через розгубленість, але тим не менш.

Практичні поради та нотатки

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

  • kubectl <максимальна кількість флагів, що виконують ваше завдання> —dry-run=client -o yaml > file.yaml — ця команда дозволить зекономити час та максимально наблизити шаблон ресурсу до бажаного, щоб не писати все з нуля та не шукати у документації.
  • kubectl api-resources — перелік всіх ресурсів, які ви можете використовувати у кластері.
  • kubectl explain <ресурс> —recursive — ця команда дозволить отримати всі поля, потрібні для маніфестів певного ресурсу або описати, що входить у конкретне поле (наприклад, kubectl explain vpa.spec —recursive).
  • У завданнях, де треба ввімкнути ip forwarding або щось подібне, це робиться зазвичай так: заходите у /proc/sys/net, а далі шукаєте по папках та файлах те, що вам потрібно, та у той файл замість 0 записуєте 1.
  • Встановлюються пакети dpkg через dpkg install. Там треба ще зробити start та enable systemd сервісів після (при встановленні CRI точно).
  • Знаходити helm chart’и в artifacthub можна командою helm search hub.
  • Не намагатись багато чого автоматизувати, а краще робити руками (навіть killer.sh так рекомендують у більшості випадків).
  • Бути готовим до того, що є завдання, де треба просто уважно обрати та застосувати найкращий варіант конфігурації з вже готових.
  • CNI встановлюється не з kubectl apply -f, а kubectl create -f.
  • nodeName у конфігурації подів обходить scheduler та вручну призначає поду на ноду.

Висновки

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

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

Пишіть у коментарях свій досвід з проходження CKA та ваші враження від оновленої версії.

👍ПодобаєтьсяСподобалось17
До обраногоВ обраному11
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

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

Прекрасна стаття, дуже дякую за хорошу роботу!

Кому і чому варто здавати CKA
Кому? Я не впевнений, що це саме те, що треба початківцям. Навпаки я думаю, що цю сертифікацію варто здавати вже доволі впевненим користувачам Kubernetes, які хочуть дізнатись найкращі практики та знайти відповіді, які виникали впродовж всього досвіду роботи з ним.

Саме новачкам та мідлам це і потрібно, щоб мати якесь документальне підтвердження в очах роботодавця.
Ще це потрібно самим роботодавцям аутсорсерам, щоб продати тушку новому клієнту.

А людям, у яких 10-20 років досвіду в IT, з яких вони 5 років крутять куб — навіщо це? )

Ну і скоро все це — унікальні навички, знання, експертиза — вже нікому не потрібно буде.
Із вдосконаленням AI багатьох виженуть на мороз.
Світ змінився.

Дослідження Unskilled and Unaware of It: How Difficulties in Recognizing One’s Own Incompetence Lead to Inflated Self-Assessments by Justin KRUGER, David DUNNING
показує, шо тільки сторонній ассессмент може дати об’єктивну картину знання. Там взагалі добре про завищену самооцінку написано.
>

Із вдосконаленням AI багатьох виженуть на мороз.

а хто буде писати промпти, розуміючи про шо вони ?

Я проходив CKA єкзамен але нажаль він відірваний від реальної практики. По перше Сам кубер він теж різний є з своїми особливостями а на екзамені лише внутрянка звичайного і то поверхнево. Також є купа різних тулзів щоб менеджити самі кластера а на екзамені немає про них нічого. Також менеджити обʼєкти в кубері є купа тулзів , де хелм це лише один з найпростіших але ж на практиці ніколи просто не буває. Щоб знайти реальну практику треба попасти на проект де це є. Нажаль людина яка проходить СКА не отримує практику. Така сама херня і с AWS сертифікацією тільки ще впарюють свої сервіси всюди які краще не застосовувати бо буде комплексіті :( я б радив пройти СКА чисто щоб людина розуміла основи і то лише звичайного кубера, хоча все це можна і самому нагуглити.

Раніше це було тільки про основи, з оновленням сертифікації обсяг тем став набагато ширшим і виходить за рамки базових API-ресурсів. З’явився і той самий Helm, де по ньому далеко не базові речі, як на мене. На мою особисту думку, проходження сертифікації — це не для отримання практичного досвіду безпосередньо. Це більше про те, щоб отримати міцний фундамент та багато інструментів у свій арсенал для того, щоб у майбутньому знати та вміти працювати за найкращими практиками та стандартами.

Я пройшовши СКА і отримавши ці фундаментальні знання , не зміг дати відповідь на такі прості практичні завдання: буде 5 куб кластерів , в кожному 50+ аплікух , якими тулзами це краще зробити? Не сміши про kubeadm :) або який кубер краще обрати під нашу аплікуху і чому? Також для керування обʼєктів в самому кластері хелм не підходить в деяких випадках , бо отримаєш комплексіті і незручності в керуванні. Як на мене СКА це просто вникнути в базові речі і то лише звичайного кубера який ще треба пошукати де використовують якісь старпери :)

Кубер змінюється і тулзи змінюються і практика застосування. Цей екзамен відстає від реальної практики і не дає сучасних поглядів і підходів до адміністрування кубером. Він дає лише базові речі по звичайному куберу , які небажано застосовувати на практиці, бо отримаєш складні і не гнучкі рішення. Це лише моя власна думка :)

Я розумію вашу думку. Є різні варіанти навчання. І як зазначав у статті, що я не фанат багатьох курсів та відео на YouTube, наприклад, бо там надають ну дуже базову інформацію. Я зазвичай хочу заглибитись та зрозуміти логіку роботи того ж Kubernetes під капотом. І сертифікація допомогла мені в цьому. Бо з моїх спостережень вона дає базу і демонстрацію цього, як воно елементарно працює. Окрім того багато шляхів з інструментами, у які можна заглибитись для безпосереднього використання у проєктах, що я і робив на власному досвіді. Kubernetes же сам по собі побудований на інтерфейсах, які імплементуються кожним плагіном по-своєму, всього не покриєш. А от базові приклади, як це відбувається на практиці точно є. Тому для мене в будь-якому випадку це був корисний досвід та багато чого цікавого я дійсно дізнався.

Я кілька разів планував складання (іспиту), але це завжди не збігалося з робочим графіком :) Проте у 2018 році я отримав сертифікацію AWS DevOps Pro. Можу сказати, що сертифікації, а ще більше підготовка до них, дають дуже багато — у розумінні, що можна робити, а що ні, як краще це робити тощо.

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

Це лише моя власна думка :)

Маючи досвід роботи з кубером з 2014 року, я б ніколи не сказав що питання за 5 кластерів просте)

Підписатись на коментарі