kakakakakku blog

Weekly Tech Blog: Keep on Learning!

2021年2-3月に CKAD と CKA を受験した / 受験 Tips と 勉強方法をまとめる

2021年2-3月に Kubernetes の資格 CKAD (Certified Kubernetes Application Developer)CKA (Certified Kubernetes Administrator) を受験した.3年後に更新をするであろう自分のためにも勉強方法をまとめておく.当たり前だけど,出題に関する内容は書かず,受験 Tips と勉強方法にフォーカスする.なお,試験情報は以下に載っている.一言でまとめると「勉強過程も試験本番もとにかく楽しかったー🙌」かな!

www.cncf.io

www.cncf.io

カリキュラム(出題範囲)は GitHub に PDF として公開されている.

  • CKAD (Certified Kubernetes Application Developer)
    • 13% - Core Concepts
    • 10% - Multi-Container Pods
    • 20% - Pod Design
    • 8% - State Persistence
    • 18% - Configuration
    • 18% - Observability
    • 13% - Services & Networking
  • CKA (Certified Kubernetes Administrator)
    • 25% - Cluster Architecture, Installation & Configuration
    • 15% - Workloads & Scheduling
    • 20% - Services & Networking
    • 10% - Storage
    • 30% - Troubleshooting

github.com

1. 前提と結果 🐳

僕自身,試験を受験をする前から「Kubernetes チョットワカル」レベルだったと思う.具体的には技術講師として,研修で Kubernetes を教える機会もある.ただし,プロダクションワークロードでの大規模な運用経験はないし,Amazon EKS など,フルマネージド EKS クラスターを使うことも多く,知識に偏りはある.例えば,コントロールプレーン関連は詳しくなかったり.よって,操作に慣れている CKAD はほとんど勉強せずに受験したけど,CKA は苦手分野を重点的に勉強してから受験した.結果は以下の通り.

受験日 試験名 得点 結果 バージョン
2021/02/23 CKAD (Certified Kubernetes Application Developer) 93 点 合格 Kubernetes v1.20
2021/03/07 CKA (Certified Kubernetes Administrator) 88 点 合格 Kubernetes v1.20

2. 試験種別 : CKAD-JP や CKA-JP とは 🐳

試験を調べると「CKAD と CKAD-JP」「CKA と CKA-JP」など,日本語に対応した試験が出てくるため,気になる人もいると思う.あくまで「試験当日に試験監督員とのチャットコミュニケーションが日本語でできるかどうか」であり,試験自体の言語設定は試験種別に関係なく自由に変えられるし,合格後に発行される証明書も -JP になるわけではなく,個人的には些細な差だと思う.とは言え,不安があれば -JP で申し込んでおけば良いかと!最初よく理解していなかったこともあり,何も考えずに -JP を申し込んだ.

なお,CKA を受験したときは,日本語ではあるけど,用意されたテキストを一方的にペーストされ続けたり,機械翻訳だと推測できる意味不明な日本語が送られてきたりして,受験するモチベーションが下がるほどに対応が悪かった.別途フィードバックを送る予定.

3. 受験環境 🐳

リモート受験なので整理整頓されている部屋であることは大前提として,以下の環境で受験した.簡単にまとめておく!

最近は AWS 認定試験もリモート受験できるし,また僕自身が実際に経験したわけではないけど,Mac で Karabiner-Elements を使っているとリモート受験に悪影響を及ぼすという情報もあったりするため,基本的に Chrome をインストールする以外はデフォルト設定のままにした MacBook Pro をリモート受験専用に準備してある.また macOS は Big Sur でも問題なく受験できた.

  • MacBook Pro(リモート受験専用)
    • Big Sur
  • HHKB Professional Type-S
  • Magic Trackpad 2
  • サブディスプレイ(Kubernetes ドキュメント参照用)

なお,試験画面 (Exam User Interface) のイメージはドキュメントに載っている.引用して載せておく.基本的にストレスなく使えるけど,残り数分で焦っているときに高速で vim 操作をしていたりすると「遅い!遅いぞ!」と感じる場面はあった.

Exam User Interface - T&C DOCS (Candidate Facing Resources) より引用

4. 個人的な CKAD / CKA 受験 Tips 🐳

4-1. alias k=kubectl

僕自身はもう kubectl ではなく,無意識に k と入力してしまう体になっているため,試験開始と同時に「エイリアス」「コマンド補完」を設定した.コマンドを覚えておく必要はなく,kubectl Cheat Sheet のコマンドをそのままコピペすれば OK!

kubernetes.io

4-2. ブックマーク

ドキュメント「Important Instructions: CKA and CKAD」に書いてある通り,試験画面とは別に「1タブ」を開くことができる.基本的には Kubernetes ドキュメントを開くと思うけど,正式に許可されているドメインは3種類ある.日本語に翻訳された https://kubernetes.io/ja/docs/ も問題なく見れる.ただし,Community Forums https://discuss.kubernetes.io/ は禁止されていて,ドキュメント検索結果には出てくるため,闇雲に検索していると,禁止サイトを開いてしまう危険性もある.だからこそ,確認する可能性のあるドキュメントはブックマークに入れておく.

  • https://kubernetes.io/docs/
  • https://github.com/kubernetes/
  • https://kubernetes.io/blog/

use their Chrome or Chromium browser to open one additional tab in order to access assets at: https://kubernetes.io/docs/, https://github.com/kubernetes/, https://kubernetes.io/blog/ and their subdomains. This includes all available language translations of these pages (e.g. https://kubernetes.io/zh/docs/) No other tabs may be opened and no other sites may be navigated to (including https://discuss.kubernetes.io/).

また,ドキュメントの中に上記ドメイン以外の外部リンクも含まれているため,気を付ける必要がある.全ては受験者の責任となる旨もドキュメントに明記されている.

The allowed sites above may contain links that point to external sites. It is the responsibility of the candidate not to click on any links that cause them to navigate to a domain that is not allowed.

docs.linuxfoundation.org

4-3. Chrome プロファイル

個人的に使っている Google アカウントは,多くの拡張機能やブックマークを設定しているため,試験で使う不安もあり,専用の Chrome プロファイルを用意した.上記のブックマークだけを設定しておけば良くて便利だと思う!

4-4. kubectl -h | grep kubectl

kubectl コマンドのオプションを kubectl -h で確認しながらコマンドを作っていくと,予想以上に時間を浪費してしまう.そこで,以下のように kubectl -h の結果から「コマンド例」を雛形として取得して,ここから修正をしていくと,効率的に進められる.特に時間的に追い込まれる CKAD で使える Tips だと思う.

$ kubectl run -h | grep kubectl
$ kubectl create deployment -h | grep kubectl
$ kubectl create configmap -h | grep kubectl
$ kubectl expose -h | grep kubectl
$ kubectl scale -h | grep kubectl

「コマンド例」は,kubectl Command Reference の右側にも載っているため,ドキュメントから取得する場合は以下をブックマークしておくこともできる.個人的にはスピード重視で kubectl -h | grep kubectl を使ったけど!

kubernetes.io

5. CKAD 勉強方法 🐳

5-1. GitHub : dgkanatsios/CKAD-exercises

受験体験記事を読んでいると,必ずと言っても良いほどに紹介されている「dgkanatsios/CKAD-exercises」リポジトリを2回試した.CKAD を受験しないとしても,kubectl コマンドの操作に慣れるためのコンテンツとして有用だと思う.少し気になった点はプルリクエストを送って,貢献することができた.

なお,Issue なども出ているけど,回答例に多く載っている --restart=Never の必要性に関しては,現状の Kubernetes v1.20 で受験するなら,基本的には不要と言える.kubectl run --restart の値によって PodDeployment を作ることができたため,意図的に Pod を作る目的だけど,Kubernetes v1.18 から考慮する必要がなくなった(正確には generators 関連).

github.com

5-2. Katacoda : CKAD Practice Challenge

無料で試せる Katacoda「CKAD Practice Challenge」も1回試した.サンプル回答も載っているし,Kubernetes クラスターを構築する必要もないし,気軽に試せる点にメリットを感じる.

www.katacoda.com

5-3. A Cloud Guru : Certified Kubernetes Application Developer (CKAD)

最後は A Cloud Guru「Certified Kubernetes Application Developer (CKAD)」も少し試した.講義ビデオはほとんど見てなく,復習をしておきたかった部分だけ「HANDS-ON LAB」という演習機能を使った.

acloud.guru

6. CKA 勉強方法 🐳

6-1. Udemy : Certified Kubernetes Administrator (CKA) with Practice Tests

受験体験記事を読んでいると,よく紹介されている Udemy「Certified Kubernetes Administrator (CKA) with Practice Tests」を購入した.苦手分野の講義ビデオを見たり,「Practice Test」「Mock Exams」という演習機能を使った.定価だと購入するのを躊躇するレベルではあるけど,定期的にセールをしているし,調べればクーポンコードも発行されているため,1500円程度なら良いかなと!

www.udemy.com

6-2. A Cloud Guru : Certified Kubernetes Administrator (CKA)

CKAD と同じく,A Cloud Guru「Certified Kubernetes Administrator (CKA)」も試した.苦手分野の講義ビデオを見つつ,ほとんどは「HANDS-ON LAB」という演習機能を使った.座学的な部分はドキュメントもあるし,書籍もあるし,無理に講義ビデオを見る必要はないと思う.やはり,手軽に試せる Kubernetes クラスターがあることに安心感がある.

acloud.guru

6-3 : GitHub : Kubernetes Network Policy Recipes

個人的に Network Policy に苦手意識があったため,GitHub に公開されている「Kubernetes Network Policy Recipes」を参考にした.詳しくは紹介ブログを書いてある.

kakakakakku.hatenablog.com

6-4 : GitHub : David-VTUK/CKA-StudyGuide

「David-VTUK/CKA-StudyGuide」 リポジトリには,CKA のカリキュラム(出題範囲)をより具体的にリストアップした「RevisionTopics」というコンテンツがあり,全体像と自分自身の知識を比較しながら「どこから勉強すれば良いか?」を確認できて良かった.例えば,CoreDNSCNI だったり,トラブルシューティング時に使えるコマンド例も整理できる.

github.com

6-5 : CKA Self-Study Course

RX-M という企業のサイトに載っている「CKA Self-Study Course」も,CKA のカリキュラム(出題範囲)をより具体的に整理するために便利だった.「David-VTUK/CKA-StudyGuide」 リポジトリよりも「操作」を重視している印象もあり,特に RBAC 関連のコマンド例を整理できた.また最後には「Practice Drill」というクイズも載っているため,理解度確認にも使える.少し誤植もあり,修正したかったけど,GitHub リポジトリなどは見つけられなかった.

rx-m.com

まとめ 🐳

2021年2-3月に Kubernetes の資格 CKAD (Certified Kubernetes Application Developer)CKA (Certified Kubernetes Administrator) を受験した.勉強過程も試験本番もとにかく楽しかったー🙌

残るは CKS (Certified Kubernetes Security Specialist) を受験するぞー!試験問題の日本語化を待ちたい気持ちもあるけど...!

参考記事 🐳

試験を受験することを考える前から読んでいたため,試験前にパラパラと見返す程度ではあったけど「Kubernetes 完全ガイド 第2版」も読んでおくべし!とは言え,情報量は多くなるため,逆引きリファレンス的に活用すると良いと思う.またカリキュラム(出題範囲)にも入っている Multi-Container Pods の理解を深めるなら「分散システムデザインパターン」も参考になる.

kakakakakku.hatenablog.com

kakakakakku.hatenablog.com

そして,勉強する Kubernetes クラスターをお手軽に構築するなら kind も使える.合わせて読んでもらえると!

kakakakakku.hatenablog.com

追記

2022年4月に CKS (Certified Kubernetes Security Specialist) にも合格した!詳しくは以下の記事にまとめたー🎉

kakakakakku.hatenablog.com