2021一戰CKA經驗談

Posted by Kubeguts on 2021-11-21

聊一下我在準備考前的背景

由於從今年2021/5月開始加入了新公司,從零開始碰Kubernets技術在現有專案的Devops與自動化部屬上,
在這之前可說是對K8S完全沒什麼實際操作經驗,頂多在去年時就是有在某個線上課程上了解什麼是Kubernetes這樣

k8s-core-concept

但在今年要直接使用Kubernetes作為日常工作的工具,所以設定了目標,要拿到這張CKA證書!
也在2021/11/19順利取得了,(感動)

cka-cert

所以接下來會聊一下這段準備和考完的心得以及一些Tips供有心要準備的人可以參考

什麼是 Certified Kubernetes Administrator (CKA) ?

CKA是由CNCF (Cloud Native Computing Foundation)所推出的資格考試認證,主要測驗應試者有沒有具備Kubernetes操作與維運除錯的基本能力,
這張證照在目前業界上其實也蠻夯的,在最近的JD上可以看到招聘Cloud 或是 DevOps Engineer都會希望有張CKA證照,
以便證明Interviewer有著基本操作Kubernetes的能力

不過這張證照報名費也不便宜就是了,原價要375$ (US),所以若沒有急著要考的話,
是可以等到有折價的時候再報名,那時候我報名是有折15%的價格,以及贈送2次Kubernets Exam Simulator 線上模擬考的Session這樣

準備路線

  1. 先上網看看各路考過CKA的大神怎麼準備的:
  2. 挑了一門最受推薦的CKA課程: Certified Kubernetes Administrator (CKA) with Practice Tests,非常強烈推薦上這門課,因為會額外免費提供KodeKloud K8S練習環境供操作,若要穩穩第一次就Pass CKA這門課一定要好好給他K完,總長18 hours,我也是大約花了3個月,陸陸續續利用下班時間把它K完

udemy-cka

  1. Kubernetes the Hard Way做過一次,就是不用包裝好的工具來建立Kubernetes Cluster,雖然不是考試的重點,但也建議整個操作一遍這樣
    • 不過若想要有人帶的話,可以到Cloud Guru上,會有專家Step by Step操作 (但要訂閱的費用)
  2. 由於CKA操作的環境雖然有提供NotePad,但我還是加強了一下VIM的操作速度,強烈推薦此影片:Vim Crash Course | How to edit files quickly in CKAD / CKA exam
  3. Killer.sh Kubernetes Exam Simulator提供的兩次Session都做完,兩次模擬考題都會是一樣的,難度會比正式題目還要高
  4. 看一下Youtube上大神們提供的CKA考前注意事項
  5. 把所有會用到的Kubernetes文章書統整到書籤內,加速查找的速度

以上整個準備下來其實也花了快半年才準備迎戰CKA測驗

考試過程

網路上其實已經有很多人分享考試的流程畫面是怎樣,所以這邊就分享我當天遇到的情況:

考試約定前15分鐘,要按下Take Exam的按鈕,要注意按下去後會先到PCI的頁面,然後倒數10分鐘才能夠真正進入考試頁面

進入到頁面後,考官會送訊息過來,並且要依照他的指示一一操作

  1. 點選上方的分享畫面與視訊鏡頭
  2. 將護照秀給考官,但要注意因為我的護照因為疫情期間沒得出國,剛好過期沒去更新,他會要求有沒有其他的身分證可以證明是本人,例如我用身分證+健保卡搭配護照的中文名稱,才給繼續
  3. 拿著鏡頭環繞四周,確認沒有其他人,可疑的錄影工具之類的
  4. 會詢問將筆電抬起來,看下方有無異物,怕你偷側拍題目
  5. 會要求按下快捷鍵開啟(強制結束)的視窗,把除了chrome與finder的應用程式給關閉

當天應試的題目

總共17題,但我有一題忘記了,以下題目供參考

以下順序不是當天我實際考試的順序

  1. 創建一個clusterrole, 並且賦予有create secrets的權限,並創建一個serviceaccount,用clusterrolebinding 把他們綁定再一起
  2. etcd backup + restore
  3. Ingress 設置
  4. Network Policy設置
  5. 集群升級
    • 包含kubeadm、kubelet和kubectl都要,但只需升級 Control Plane
  6. 查出cpu使用率最高的pod,列出label為xx=xx的pod中cpu使用率最高的寫入指定檔案
  7. 使用sidecar pod來讀取log
  8. 使用Service Expose 一個deployment
  9. 計算node數量,不包含taint 是 NoSchedule的,並寫入指定檔案
  10. pod調度到label為xx=xx的Node上
  11. 列出指定pod的log中的error記錄到指定檔案
  12. 在指定的namespace下創建2個ontainer的Pod
  13. 創建一個有著10Mi的pv,以及一個pvc,並且將pod綁定到pvc上,最後還要修改pv,改成70Mi
  14. 集群故障,做Trobleshooting
    • 某一節點處於NotReady status,發現kubelet沒有enable,將它重啟即可看到原本node回復到Ready狀態,不過在Killer.sh上的模擬考遇到的故障若解決的得心應手,這題很快就解決
  15. 創建一個pv
  16. 將deployment scale到4個pod

考試採坑記

我不小心執行到 exit,導致我的terminal直接重新啟動 lol… 還好有著考官的提醒,直接點選terminal上方 tab的web terminal,就可以回到原本的nodes,但要注意一開始設置的kubectl快捷鍵都需要再重打

考試時間倒數15分,5分,考官都會提醒,不過其實我全部題目寫完大概還剩10分鐘,再一一個檢視每一個題目是否有錯誤

心得

其實整個準備下來收穫蠻多的除了k8s整體架構知識,網路與集群故障排除都有一定的涉略,
尤其時操作kubectl等指令都已經肌肉記憶訓練到想忘記都有點困難,以及使用vim去操作k8s object的yaml的速度提昇了不少,
算是自己對於學習Kubernetes的一個大大的肯定!

文章版權聲明:請勿抄襲,本部落格採用創用CC, 姓名標示-非商業性-相同方式分享授權
欲轉載請標註出處與作者-Kubeguts 庫柏格,thanks!