kubernetes

CKA/CKADに合格したので比較してみた + Tips

Kubernetes認定資格2種類に合格しました。

ここでは両者の比較とTipsの紹介をしたいと思います。

CKAについてはCertified Kubernetes Administrator(CKA)を取得したでも学習方法などを紹介していますので、よろしければご参照ください。

ckad.png


CKA/CKADの比較

主観込みですが、2つの試験を比較します。



項目
CKA
CKAD



試験範囲


  • Application Lifecycle Management 8%

  • Installation, Configuration & Validation 12%

  • Core Concepts 19%

  • Networking 11%

  • Scheduling 5%

  • Security 12%

  • Cluster Maintenance 11%

  • Logging / Monitoring 5%

  • Storage 7%

  • Troubleshooting 10%





  • Core Concepts 13%

  • Configuration 18%

  • Multi-Container Pods 10%

  • Observability 18%

  • Pod Design 20%

  • Services & Networking 13%

  • State Persistence 8%




      
トレーニング
Kubernetes Fundamentals (LFS258)
Kubernetes for Developers (LFD259)
      

試験時間
3
2


設問数
24
19


1問あたり(分)
7.5
6.3


合格ライン
74%
66%


筆者のスコア
92%
71%


設問難易度
★★★☆☆
★★★★☆


合格難易度
★★★☆☆
★★★☆☆

CKAは広く浅く、CKADは狭く深く問われる印象です。

合格ラインは毎回異なると思っていましたが、FAQに明記されていたので固定のようです。


Tips


kubectlの補完

kubectlにはシェル補完機能が用意されています。コンソールの使い勝手が悪く、コピペもままならないので、サブコマンドやリソース名の補完は非常に便利です。特にDeploymentを通じて作成されたPod名にはランダム文字列が付加されており、kubectl describe pod <Pod名>などのコマンドを実行する際に効果的です。

$ source <(kubectl completion bash)


kubectl runによるリソース作成

本来はYAMLにリソース定義を記述してkubectl applyするのがよいでしょうが、時間との勝負になるのでサクッとできることはやりましょう。kubectl runでリソース作成できるようにしておくと便利です。

リソース
kubectl run <name>
--image=<name>

--restartフラグ

--scheduleフラグ

deployment
kubectl run
--image=

pod
kubectl run
--image=
--restart=Never

job
kubectl run
--image=
--restart=OnFailure

cronJob
kubectl run
--image=
--restart=OnFailure
--schedule="* * * * *"

(出典)CKADをさっさと合格するためのTips



sed、awkによる抽出

○○なPodの名前のみファイルに記述せよ、という問題が出ることがあります。ここでもコンソールの使い勝手の悪さが厄介になるので、sedawkを使ってPod名を抽出します。

現在のPodの状況が以下のようになっているとします。

$ kubectl get pods

NAME READY STATUS RESTARTS AGE
nginx-65899c769f-748cp 1/1 Running 0 52s
nginx-65899c769f-7w457 1/1 Running 0 52s
nginx-65899c769f-ts62g 1/1 Running 0 52s

例としてnginx-65899c769f-7w457が正解で、answer.txtに出力するコマンドを示します。

$ kubectl get pods | sed -n 3p | awk '{print $1}' > answer.txt

sedで3行目を、awkで1列名を抽出しています。


書き込み権限のないファイルへの追記

上記のように解答をファイルに記述する際、指定ファイルの書き込み権限がない場合がありますが、teeで書き込むことができます。

$ kubectl get pods | sed -n 3p | awk '{print $1}' | sudo tee -a answer.txt


まとめ

CKA/CKADともに難易度はそれほど高くないと感じます。ただし、特にCKADは時間との勝負になるのでサクサク解答するためのコツを押さえておくとよいでしょう。


参考

CKADをさっさと合格するためのTips