Станете сертифициран разработчик на приложения за Kubernetes (CKAD)

Преди няколко дни постигнах един от своите основни етапи за 2020 г.: Исках да разбера прилично Kubernetes и да демонстрирам тези знания, като стана сертифициран разработчик на приложения на Kubernetes!

Следващият списък описва подробно какво можете да очаквате от тази статия. Чувствайте се свободни да продължите да четете или да пропуснете един от следните раздели:

  • Каква беше мотивацията ми?
  • Защо да вземете това сертифициране на първо място?
  • Какво и как трябва да учите?
  • Какви са практическите умения, необходими за изпита?
  • Как трябва да се подготвите за изпита?
  • Има ли някакви съвети и трикове, за да подобрите шансовете си за успех?
  • Какво трябва да знаете за планирането и полагането на изпита?
  • Можете ли да обобщите стъпките, необходими за преминаване на този сертификат?
  • Къде можете да намерите помощ? Какво друго трябва да знаете? Вижте бонус ресурси.
  • За автора

Kubernetes (или Kube, или k8s за кратко) придоби огромна популярност през последните години и изглежда, че е приет от малки и големи организации като defacto инструмент за стартиране на приложения в „производство“.

В MongoDB групата, в която съм част, разработва два оператора на Kubernetes: общност и предприятие. Според официалната документация „операторите са софтуерни разширения на Kubernetes, които използват персонализирани ресурси за управление на приложения и техните компоненти.“ Операторите не са част от сертифицирания учебен план за сертифицирани приложения на Kubernetes (CKAD), но ако се интересувате, можете да прочетете повече за тях тук.

В настоящата ми роля бях изложен на Кубернети и бях привлечен от него по различни причини:

  • Kubernetes има последователни дефиниции (вижте справочното ръководство); след като разберете основите, можете да разберете как да направите нещо.
  • API и неговите възможности са разширими при операторите.
  • Kubernetes е самолекуващ се и е много достъпен, както и услугите, които разгръщате в неговите клъстери. Прочетете за някои от неговите характеристики.

Има още много предимства. Разбира се, нищо не е перфектно и Kubernetes има много компромиси, както всяка друга система; Ще запазя това за още един ден. В крайна сметка реших, че Kubernetes е инструмент, който е тук, за да остане и ще се възползвам от разбирането му!

Подхождам към сертификатите като възможност да задълбоча знанията си по конкретна тема. Повечето сертификационни изпити изискват изучаване на няколко теми до ниво, което ви позволява да отговорите на редица въпроси с много избор, достатъчно добри, за да получите оценка. Много разработчици и мениджъри днес имат неутрален или дори негативен поглед върху „сертифицирането“. Някои стигат дотам, че да се каже, че сертификатите са нетен отрицателен резултат от автобиографията ви.

Открих, че изразходването на усилията обикновено ме оставя в края на учебното пътуване с повече знания, отколкото когато съм влязъл. За мен следният процес работи добре:

  • проучване
  • Вземете макетни изпити
  • Определете липсващи области
  • Проучете още
  • Вземете изпита и преминете
  • Размислете върху това, което съм научил

Когато реших да опитам CKAD, знаейки много малко за това сертифициране, очаквах подобен процес: учене, последвано от изпит с много избор ... колко грешен бях !?

Целевата страница на сертификата гласи: „Онлайн тестовете, базирани на ефективност, се състоят от набор от елементи (проблеми), базирани на производителността, които трябва да бъдат решени в команден ред и се очаква да отнеме приблизително два (2) часа.“

Добре, сега какво? Изведнъж разбрах, че CKAD е практически изпит! Ще трябва да решавам действителните проблеми в терминала, да не запаметявам понятия и да се опитам да отгатна правилните отговори. Бях заинтригуван!

Въоръжени с любопитство, започнах да копая за учебни материали, курсове, практически упражнения, макетни изпити, съвети и т.н.

В следващите раздели съм съставил изчерпателен списък с ресурси, които ще ви помогнат да научите всички концепции, тествани в учебната програма на CKAD и да постигнете успешен резултат!

Отказ от отговорност: Понастоящем изпитът работи на Kubernetes 1.17. Някои от следващите съвети и курсове може да остарят навреме с актуализацията на учебната програма.

Стъпка 1: Проучване

Ако сте нов в света на Kubernetes, започнете с безплатния курс LFS158X - Въведение в Kubernetes, предлаган на edX. След това разгледайте този списък от учебни ресурси. По желание можете да вземете този платен курс за мащабируеми микросервизи в Kubernetes на Udacity.

С някои предварителни знания можете да прескочите направо в курс, който се фокусира основно върху учебната програма на CKAD:

  • Сертифициран подготвителен курс за програмисти на Kubernetes (CKAD) - Benjamin Muschko (O'Reilly Learning)
  • Сертифициран разработчик на приложения на Kubernetes (CKAD) - KodeKloud
  • Сертифициран разработчик на приложения на Kubernetes (CKAD) - Will Boyd (LinuxAcademy)
  • Kubernetes Certified Application Developer (CKAD) с тестове - Mumshad Mannambeth (Udemy)
  • Сертифициран разработчик на приложения на Kubernetes (CKAD) - Sander van Vugt (O'Reilly Learning)

Поех курса на Бенджамин Мушко и бях много доволен от качеството на съдържанието - отличен микс от теория и практически упражнения. Опитах втори курс, но бързо отстъпих, тъй като намерих материалите сходни, за да не оправдая инвестицията във времето.

Планирайте да отделите 2-3 часа на ден за около седмица, за да изпълните тази стъпка. Искам да поясня, че всички курсове, изброени по-горе, са платени. Ако нямате бюджет за видео курс, преминете към следващия раздел.

Стъпка 2: Практика

Според мен трябва да отделите по-голямата част от усилията си за решаване на проблеми в командния ред. Тъй като изпитът е практичен, трябва да можете да използвате инструмента CLI (kubectl) за изпълнение на всички видове задачи. Дори и без да вземете въвеждащ курс, вие ще можете да издържите изпита, като практикувате всички упражнения от следните ресурси.

Много сайтове предлагат платени въпроси, подобни на изпити. Изброените по-долу ресурси са безплатни; Предлагам да практикувате колкото се може повече упражнения, повече от веднъж, преди да разгледате платени.

В бъдеще учебната програма на CKAD може да се промени и тези сайтове може да не бъдат актуални. В такъв случай помислете за заплащане на упражнения.

  • Практическите упражнения на Димитрис-Илиас Гканациос (считани от повечето източници, които намерих за "златен стандарт" на практиката на CKAD)
  • Практически проблеми на кубернетите на Kubernauts (тези упражнения са насочени към изпита за сертифициран Kubernetes Administrator (CKA), но все пак ще ви научат на няколко полезни концепции)
  • CKAD седмични предизвикателства - страхотна поредица от блог публикации, обхващащи повечето теми за изпитите
  • 150 въпроса и отговори за изпита за CKAD - още един отличен списък с концепции, които да практикувате
  • Безплатни упражнения на Матю Палмър
  • KodeKloud Hands-on Lab / практика изпит: Под
  • KodeKloudHands-on Lab / практически изпит: ReplicaSet
  • упражненията на Лукаса

Някои от горните връзки към платени курсове или ресурси - по-долу ще обсъдя за какво реших да платя.

Прекарването на възможно най-много време на тази стъпка е далеч най-добрата възвръщаемост на вашата инвестиция!

Ще ви трябва напълно функциониращ клъстер Kubernetes, докато тренирате. Вижте секцията Бонус по-долу за няколко възможности.

Планирайте някъде между 1–4 седмици по 2-3 часа на ден, в зависимост от вашия опит. Когато стигнете до точка, в която можете спокойно да разрешите някое от свързаните по-горе упражнения - вие сте готови да положите изпита!

Един важен съвет, който мога да ви дам, е винаги да ги практикувате, сякаш сте на изпита:

  • Деактивирайте персонализирането на черупките (напр. OhMyZsh, псевдоними и т.н.)
  • Премахнете конфигурационните файлове на Vim (и tmux, ако го използвате); Започни от нулата
  • Дръжте един отворен раздел на браузъра, насочен към документацията на Kubernetes

Стъпка 3: Подготовка за изпит

Самият изпит се провежда в интерактивен терминал вътре в прозорец на браузъра. Разрешено е да отворите само още един раздел на браузъра; можете да го използвате само за консултация с документацията на Kubernetes или проекта Kubernetes GitHub. Не мога да измисля причина, поради която последният би бил полезен по време на изпита, но той ви е на разположение, ако имате нужда.

Няма да навлизам във всички подробности за средата на изпита, тъй като те вероятно ще се променят - по това време намерете актуализирано копие на страницата Важни съвети за CKA и CKAD - тя също ще бъде споделена с вас, след като сте регистриран за изпита.

На този етап можете да опитате макет изпит (платен). Ще се изненадате колко е трудно да преминете с изпит в среда, базирана на браузър, с неконфигуриран редактор на черупки и текстове!

Ето няколко варианта:

  • https://killer.sh/ckad
  • https://matthewpalmer.net/kubernetes-app-developer/articles/ckad-practice-exam.htm
  • https://kodekloud.com/courses/kubernetes-certification-course/lectures/6743640
  • https://cloudyuga.guru/courses/ckad-cka-mock
  • Kubernetes Certified Application Developer (CKAD) с тестове
Използвах killer.sh, който според мен си заслужаваше цената. Преминах първия опит с 97%, което приписвам на това, че съм подготвен.

Долната линия е, че не е нужно да плащате за такава, ако се чувствате достатъчно уверени в своите умения. Изпитът за CKAD (в момента) позволява едно безплатно презаписване и винаги можете да използвате първия си опит и само да инвестирате повече време и пари, ако не сте го провалили.

Съвети и трикове

  1. Настройте kubectl автоматично попълване в черупката
  • отворете Kubectl Cheatsheet във втория раздел на браузъра
  • започнете изпита
  • следвайте инструкциите на мамят лист, за да настроите автоматично попълване

Конфигурирането на тази функция ще избегне необходимостта от копиране и поставяне на имена на ресурси в kubectl. Ще ви ускори!

2. Определете псевдонимите (и преди да свикнете с тях)

псевдоним k = kubectl псевдоним kx = kubectl обяснете псевдоним kcf = "kubectl създаване -f" псевдоним kdf = "kubectl изтриване -force --grace-period = 0" псевдоним kdff = "kdf -f" псевдоним kns = "kubectl config set- контекст - текущо - пространство на имена “

3. Редактирайте ~ / .vimrc и задайте следните опции, които ще ви позволят да поставите YAML, без да се налага да преформатирате раздели.

set tabstop = 2 set shiftwidth = 2 set extensiontab number set numbernumber

Опцията „зададен номер относително число“ ви позволява бързо да определите желания брой редове, които да копирате или изтриете, без да се налага сами да ги изчислявате.

В следващия пример, ако искате да изтриете всички редове, започващи от курсора нагоре, до „изтрий до тук“, ще напишете: 2dd (където „2“ е числото, показано пред реда.)

Екранна снимка, показваща относителните номера на реда в редактора на Vim.

4. Научете Vim! Сериозно! Вашата способност да управлявате времето по време на изпита драматично зависи от това! Най-малкото трябва да ви е приятно:

# въведете режим на вмъкване i
# запазване и излизане от ZZ (или: wq!)
# не запаметявайте и затваряйте ZQ (или: q!)
# изтрийте ред dd
# копира линия yy
# паста линия pp
# изтрийте, копирайте или поставете 5 реда 5dd, 5yy, 5pp (5 е само пример)
# отидете в началото на файла gg
# отидете до края на смяната на файла + g
# изберете няколко реда: shift + v, натиснете нагоре / надолу, за да изберете линии
# отстъп на ляво изместване +,
# отстъп надясно +
# отстъп отново (ляво или дясно, последна операция).
# заменете всички случаи на „foo“ с „bar“:% s / foo / bar /
# изтрийте цялото съдържание от курсора до края на файла dG
# отмяна / повтор последна промяна: отмяна,: повторение
# изтрийте всички от курсора до края на реда и поставете shift + c
# прескачане до първата буква от текущата смяна на редове + i
# скок в началото на следващата дума w
# скок в началото на предишната дума b
# превключване на номер на линията / относителни номера на линии: задайте nu! rnu!
# конвертирате всички раздели в интервали: retab
Можете, разбира се, да използвате други редактори като Emacs или nano. Не казвам, че се нуждаете от Vim per se. Съветвам ви да познавате много добре текстовия редактор!

5. Научете kubectl

Този инструмент е хлябът и маслото на изпита. Овладейте го! Бъдете супер удобни с поне следното:

# генерирайте yaml, без да го прилагате kubectl създаване ... --dry-run -o yaml> a_file.yaml
# обяснете опции kubectl и спецификация на ресурса на API kubectl обяснете [--рекурсивен] ... # напр. "pod.spec"
# създаване на pod kubectl run --restart = Никога --image = ...
# създаване на различни ресурси (по-бързо от търсене на документи) # (но не всички ресурси се поддържат) kubectl create -h
# виж използването на ресурси kubectl горната шушулка
# вижте наличните контексти и конфигурираното пространство на имена за всеки get-контексти на kubectl config
# задайте пространството на имената да се използва за текущия контекст kubectl config set-context --current - namespace NS
# вижте дневниците на шушулки kubectl дневници POD-NAME
# намери ресурси във всички пространства с имена kubectl get --all-namespaces ...

Стъпка 4: Полагане на изпита

Преди да насрочите изпита си, трябва да знаете, че ставайки привърженик на The Linux Foundation (в момента 50 $) ще ви даде 100 $ отстъпка от някой от изпитите им; CKAD е един от тях, но има още. Подкрепата на Linux Foundation плаща за себе си още от първия изпит, който полагате! Впоследствие отстъпката се прилага за всяко друго сертифициране като CKA, LFCS и др .; печеливши мерки!

Уверете се, че позволете поне 30 минути допълнително за изпита - изпитната платформа и комуникацията с вашия проктор могат да бъдат по-добри. Ще прекарате известно време преди началото на изпита, проверявайки самоличността си и показвайки вашето непосредствено обкръжение.

След като започнете изпита, времето ще лети! Имате 120 минути за решаване на 19 упражнения, оставяйки ви малко над 6 минути на упражнение. Някои бързо се решават, но други изискват поне няколко минути. Да направите грешка и да се наложи да разгледате проблеми или да се консултирате с документацията, се появява в общото ви време.

Също така проверете колко струва всеки въпрос (всеки елемент показва тази информация). Някои от въпросите на стойност 2–3% са доста дълги; знамете онези, за да се върнете към тях по-късно и да се насочите направо към онези с най-високо „изплащане“.

Всеки изпитен въпрос показва команда за избор на контекст. CKAD средата се състои от четири такива контекста. Ако не се свържете с правилния клъстер (контекст), вашето представяне няма да се брои! Всеки контекст е без предварително зададено пространство на имена - което е същото като използването на пространство по име по подразбиране.

Една често срещана грешка е работата в грешното пространство на имената. Свикнете да указвате пространства с имена за всяка команда kubectl (бавно) или актуализирайте стандартното пространство на имена за текущия си контекст (бързо, но вижте моите бележки по-долу).

# Вариант 1: винаги посочвайте пространство на имена kubectl -n pluto ... # ще изпълни командата в пространството от имена 'pluto'
# Вариант 2: актуализирайте пространството на имена на текущия контекст kubectl config set-context --current - namespace neptune # по подразбиране ще използва пространството от имена 'neptune' за изпълнение на kubectl
Забележка: Харесвам Вариант 2. По време на изпита си попаднах на няколко въпроса, които не уточняваха кое пространство от имена да използвам. Предполагах, че „по подразбиране“ е правилният и бях прав.
Забележка 2: След час на изпита, започнах трудно да се съсредоточа върху въпросите (твърде много kubectl това, kubectl, че.) Ако извадите едно нещо от този раздел, нека да бъде това: намерете начини да опростите действията трябва да вземе! За мен вариант 2 по-горе беше една такава стратегия. Друг беше да разчитам на създаването на kubectl - dry-run -o yaml, за да ми излезе 90% от пътя и след това да редактира получената yaml, за да постигне желания резултат.

Нямате време да четете документи! Най-добре е, ако знаете какво търсите предварително и трябва само да търсите подходящите спецификации на YAML. Ограничаването на времето също е защо познаването на вашия редактор е много важно; в крайна сметка ще имате повече време за решаване на проблеми!

Обаче свикнете да използвате функцията за търсене от документацията на Kubernetes. Познайте тези страници достатъчно добре, за да намерите бързо това, което търсите по време на изпита!

Правенето на макетни изпити ми помогна! По време на тренировъчна сесия ми изтече време преди да завърша всички упражнения. Това ми помогна да осъзная какви понятия не разбрах напълно и ми позволи да коригирам това. Преходното изискване за изпита е 66%, което е доста лесно да се постигне с достатъчно практика (виж стъпка 2).

Ако не бях инвестирал в макет, очаквам да продължа да издържа сертификационния изпит, но с по-нисък резултат.

Обобщавайки, ето какво трябва да направите, за да издържите CKAD изпита:

Имайте основателна причина!

Без един може да се борите да вземете всички необходими знания. Моите причини бяха:

  • CKAD не е стандартен теоретичен изпит с много възможности за избор.
  • Не е достатъчно да запомняте понятия.
  • След като изучавате и практикувате упражнения, ще можете да разгърнете и стартирате услуги в Kubernetes.
  • Дава ви истински умения, които можете да прилагате в ежедневната си работа!

проучване

Научете за Kubernetes като цяло и концепции, тествани в изпита CKAD.

практика

Изживяването на командния ред с kubectl е най-критичната стъпка и тази, която ви дава уменията, които в крайна сметка искате!

Разработете стратегия за изпит

  • Свикнете с псевдоними и преки пътища
  • Знайте какво ви е достъпно в kubectl
  • Познайте редактора си
  • Направете макет изпит, може би
  • Прочетете и разберете изпитната работа; информация ще ви бъде изпратена след като се регистрирате.

Вземи изпита

  • Дайте си повече време от самия изпит.
  • Например, не резервирайте заседателна зала само за 2 часа, тъй като прокторът веднага ще спре изпита, ако бъдете прекъснат от човек.
  • Ще получите един безплатен опит, така че не се стресирайте!
"Ако в началото не успеете, опитайте, опитайте, опитайте отново!"
- Томас Х. Палмър

Късмет! И моля, свържете се с нас и ме уведомете за опита си!

- Михай

премия

Вижте по-долу няколко други ресурси, които могат да ви бъдат полезни по време на практическите ви сесии.

  1. Присъединете се към Kubernauts Slack; това е приятелска общност, насочена към изучаване и преминаване на сертификати CKA / CKAD - те имат множество ресурси и съвети за полагане на който и да е от изпитите / ите в Kubernetes.
  2. Използвайте minikube, за да тренирате на местно ниво (без заплащане).
  3. Регистрация за Google Cloud; получавате 300 $ безплатен кредит, което ви дава възможността да въртите мулти-възлови, готови за производство клъстери Kubernetes. За CKAD няма да е необходимо да знаете как да настроите клъстери Kubernetes от нулата.
  4. Опитайте Kubernetes Labs, което ви позволява да играете с Kubernetes безплатно. Те предоставят практически клъстери, които можете да използвате за ограничено време, след което те се възстановяват.
  5. Също така, опитайте Kubernetes Playground (Katacoda) - това обаче е платена услуга.

За автора

Аз съм софтуерен инженер, превърнат мениджър с 15-годишен опит, работещ по задния и фронтен проекти, в различни езици и технологии за програмиране, в компании, вариращи от стартиращи фирми до предприятия. В момента аз съм ръководител на софтуерното инженерство в MongoDB, ръководя екипа на Ops Manager в Дъблин, Ирландия. Приветствам всички възможности да се свържете с други софтуерни инженери! Можете да ме намерите в LinkedIn, Twitter или GitHub.