就在最近,我成功通過了 Kubernetes 應用程序開發人員認證 (CKAD) 考試並獲得了認證。 今天我想談談認證程序本身以及我是如何準備的。 在考官的密切監督下在線參加考試對我來說是一次有趣的經歷。 這裡不會有任何有價值的技術信息;本文純粹是敘述性的。 另外,我沒有太多 Kubernetes 工作背景,也沒有和同事聯合培訓,都是在業餘時間自學和訓練。
我在 Web 開發領域還很年輕,但我立即意識到,如果沒有 Docker 和 K8s 的基本知識,你就走不遠。 參加該課程並準備此類考試似乎是進入容器及其編排世界的一個很好的切入點。
如果你仍然認為 Kubernetes 太複雜,不適合你,請關注貓。
Чтоэтотакое?
雲原生計算基金會 (CNCF) 提供兩種類型的 Kubernetes 認證:
- 認證 Kubernetes 應用程序開發人員 (CKAD) - 測試為 Kubernetes 設計、創建、配置和發布雲原生應用程序的能力。 考試持續2小時,19個任務,通過分數66%。 需要對基本原語有非常膚淺的了解。 花費 300 美元。
- 認證 Kubernetes 管理員 (CKA) 測試履行 Kubernetes 管理員職責的技能、知識和能力。 考試持續3小時,24個任務,通過分數74%。 需要更深入的構建和配置系統知識。 費用也是300美元。
CKAD 和 CKA 認證項目由雲原生計算基金會開發,旨在通過標準化培訓和認證來擴展 Kubernetes 生態系統。 該基金由 Google 與 Linux 基金會合作創建,Kubernetes 曾作為最初的技術貢獻轉移到該基金會,並得到了 Microsoft、Apple、Facebook、Cisco、Intel、Red Hat 等許多公司的支持 (c)維基百科
簡而言之,這些都是 Kubernetes 上“主組織”的考試。 當然,還有其他公司的認證。
為什麼呢?
這可能是整個想法中最具爭議的一點。 我不想開始談論是否需要證書,我只是想相信這種證書的存在會對我在勞動力市場上的價值產生積極的影響。 一切都是主觀的——你永遠不知道僱用你的決定的轉折點到底是什麼。
PS:我不是在找工作,現在我對一切都很滿意......好吧,除了可能搬到美國某個地方
訓練
CKAD測試共有19道題,分為以下主題:
- 13% – 核心概念
- 18% – 配置
- 10% – 多容器 Pod
- 18% – 可觀察性
- 20% – 吊艙設計
- 13% – 服務和網絡
- 8% – 狀態持久性
在 Udemy 平台上,有一個來自印度人 Mumshad Mannambeth 的精彩課程(鏈接位於文章末尾)。 確實非常高品質的材料,價格低廉。 特別酷的是,隨著課程的進展,您將被要求在測試環境中進行實際練習,因此您將培養在控制台中工作的技能。
我學完了整個課程,完成了所有的實踐練習(當然,也不是沒有看答案),在考試前,我以更快的速度重新觀看了所有講座,並重新參加了最後兩次模擬考試。 我平靜地花了大約一個月的時間。 這些材料足以讓我自信地以 91% 的成績通過考試。 我在一項任務中的某個地方犯了一個錯誤(NodePort 不起作用),儘管我知道解決方案,但幾分鐘時間不足以完成另一項從文件連接 ConfigMap 的任務。
考試怎麼樣
考試在瀏覽器中進行,網絡攝像頭打開並共享屏幕。 考試規則要求考場內不得有陌生人。 我參加考試的時候,國家已經實行了自我隔離制度,所以對我來說,找一段安靜的時間很重要,這樣我的妻子就不會進入房間,否則孩子就會尖叫。 我選擇在深夜,因為時間可以滿足各種口味。
一開始,審查員要求您出示包含照片和全名(拉丁文)的主要身份證件 - 對我來說這是一本外國護照,並在桌面和房間上部署網絡攝像頭以確保沒有異物。
在考試期間,允許使用以下資源之一打開另一個瀏覽器選項卡:
在主窗口中,除了任務文本、終端和與考官的聊天之外,還有一個註釋窗口,您可以在其中復制一些重要的名稱或命令 - 這曾多次派上用場。
Советы
- 使用別名可以節省時間。 這是我使用的:
export ns=default # переменная для нэймспейса alias ku='kubectl' # укорачиваем основную команду alias kun='ku -n=$ns' # kubectl + namespace alias kudr='kun --dry-run -o=yaml' # очень нужные флаги, чтобы генерить yaml описание для объекта
- 記住命令的標誌組合 運行快速生成不同對象的yaml - pod/deploy/job/cronjob(雖然完全沒有必要記住它們,你可以只看帶有標誌的幫助 -h):
kudr run pod1 --image=nginx --restart=Never > pod1.yaml kudr run deploy1 --image=nginx > deploy1.yaml kudr run job1 --image=nginx --restart=OnFailure > job1.yaml kudr run cronjob1 --image=nginx --restart=OnFailure --schedule="*/1 * * * * " > cronjob1.yaml
- 使用縮短的資源名稱:
ku get ns # вместо namespaces ku get deploy # вместо deployments ku get pv # вместо persistentvolumes ku get pvc # вместо persistentvolumeclaims ku get svc # вместо services # и т.д., полный список можно подсмотреть по команде: kubectl api-resources
- 合理分配時間完成所有任務,不要卡在一件事情上,跳過問題繼續前進。 起初我以為我會以很快的速度完成作業,早點完成考試,但最終我沒有時間完成兩份作業。 事實上,考試時間是連續分配的,2個小時都是在緊張中度過的。
- 不要忘記切換上下文 - 在每個任務開始時,都會給出一個切換命令,以便在所需的集群中工作。
還要注意名稱空間。 為此我使用了另一個技巧:alias kun='echo namespace=$ns && ku -n=$ns' # при выполнении каждой команды первой строкой у меня выводился текущий нэймспейс
- 不要急於支付認證費用,等待折扣。 該課程的作者經常通過電子郵件發送具有 20-30% 折扣的促銷代碼。
- 終於學會vim了:)
引用:
www.cncf.io/certification/ckad — 認證頁面本身www.udemy.com/course/certified-kubernetes-application-developer — 非常好的準備課程,一切都很清晰並且配有插圖github.com/lucassa/CKAD-resources — 有關考試的有用鏈接和註釋habr.com/ru/company/flant/blog/425683 — Habr 同事講述的關於通過更難的 CKA 考試的故事
來源: www.habr.com