CKA(Certified Kubernetes Administrator) & CKAD(Certified Kubernetes Application Developer) 合格体験記

# はじめに

本記事は、Certified Kubernetes Administrator(以下CKA)とCertified Kubernetes Application Developer(以下CKAD)の合格体験記です。

<img width="617" alt="スクリーンショット 2019-05-26 23.50.29.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/314463/c053f6f9-1d6c-fc58-c9ee-d1f94a7d3111.png">

合格のために勉強した内容と試験の所感などを掲載します。

# 試験公式リンク(2019/05時点)

[CKA](https://www.cncf.io/certification/cka/)
[CKAD](https://www.cncf.io/certification/ckad/)
[Curriculum Overview](https://github.com/cncf/curriculum)
[Candidate Handbook](https://training.linuxfoundation.org/wp-content/uploads/2019/04/CKA-CKAD-Candidate-Handbook-v1.18-March-2019.pdf)
[Certification and Confidentiality Agreement](https://training.linuxfoundation.org/wp-content/uploads/2019/04/Certification-and-Confidentiality-Agreement-CNCF-v1.1.pdf)
[Exam Tips](https://training.linuxfoundation.org/wp-content/uploads/2019/05/Important-Tips-CKA-CKAD-4.30.19.pdf)
[Frequently Asked Questions](https://training.linuxfoundation.org/wp-content/uploads/2019/05/CKA-CKAD-FAQ-4.30.19.pdf)

# 試験スケジュール

### CKA

2019/05/07: CKA申し込み
2019/05/08: CKA試験スケジュール
2019/05/10: CKA試験当日
2019/05/12: 合否通知

### CKAD

2019/05/10: CKAD申し込み
2019/05/10: CKAD試験スケジュール
2019/05/12: CKAD試験(第一回目。プロバイダーのエラーにより試験が受けられず...)
2019/05/15: Linux Foundationから連絡が届き、ステータスがリセット
2019/05/18: CKAD試験再スケジュール
2019/05/25: CKAD試験
2019/05/27: 合否通知

# 前提

本格的にKubernetesを活用したのは2018/10月からなので、Kubernetes歴は8ヶ月ほどです。

それまでに読んだことのある本は下記になります。

 * [入門Kubernetes](https://www.oreilly.co.jp/books/9784873118406/)
 * [コンテナ・ベース・オーケストレーション](https://www.shoeisha.co.jp/book/detail/9784798155371)
 * [Kubernetes完全ガイド](https://book.impress.co.jp/books/1118101055)(辞書のように使っていたので通し読みはしていなかった)

[おうちKubernetes](https://qiita.com/go_vargo/items/d1271ab60f2bba375dcc)や[Kubeadmでの構築](https://qiita.com/go_vargo/items/29f6d832ea0a289b4778)経験あり

# 受験前に不安に思っていたこと・疑問に思っていたこと

 * 英語でしか申し込みページないの？
→ 英語しかないです(2019/05時点)

 * 英語しかないなら、受験時間もUTCなの？
→ タイムゾーンは選べます(日本のタイムゾーンも)

 * 申し込みサイトが英語なら、試験も英語なの？
→ 言語は日本語も選択できます。試験中に任意で言語をプルダウンで切り替えられます。

 * Kubernetesのバージョンは？
→ ちょうどv1.13から上がって、1.14でした。Candidate HandbookやFAQに上がっています

 * 試験中にKubernetesのページを見ても良いけど、ページ内の検索機能は問題ないの？
→ 外部ページへのリンクを踏まなければ使っても問題ないです

# 勉強内容

すでに公開されている合格体験記を参考にしました。
具体的には次の勉強方法を実践しました。

### CKA

* [Kubernetes完全ガイド](https://book.impress.co.jp/books/1118101055)を通しで読む
もはや必須だと思います。
本書の中にも書かれていますが、本書とプラスで学習が必要です。
後から追加されて、Kubernetes完全ガイドにも載っていないものもあるため、
知らないものは[公式ドキュメント](https://kubernetes.io/docs/tasks/)を事前に調べることが重要になります。

* [Kubernetes The Hard Way](https://github.com/kelseyhightower/kubernetes-the-hard-way)で一からクラスタを組む
これも有効な勉強方法です。
構築のためのコマンドが全て書かれているので思っていたよりも難しくはありません。

* [Linux Academy](https://linuxacademy.com/)のCKAコースの演習を無料枠で受ける
演習が計3問しかないので、それほど効果を感じませんでした。

* [Kubernetes-Certified-Administrator](https://github.com/walidshaari/Kubernetes-Certified-Administrator)に沿って、[Kubernetes公式ドキュメント](https://kubernetes.io/docs/home/)をざっと読む
ざっとしか読んでなかったので、試験中に後悔しました。
せめて[Taks](https://kubernetes.io/docs/tasks/)はじっくり読んだ上で、手を動かすべきだったと反省しています。

* [CKAD-exercises](https://github.com/dgkanatsios/CKAD-exercises)で練習
CKAD用の演習ですが、似たような問題が出るので非常に有効な勉強方法です。
自信がつくまで繰り返し解きましょう。

### CKAD

上記のCKAの学習から[Kubernetes The Hard Way](https://github.com/kelseyhightower/kubernetes-the-hard-way)と[Linux Academy](https://linuxacademy.com/)、[Kubernetes-Certified-Administrator](https://github.com/walidshaari/Kubernetes-Certified-Administrator)を取り除いた勉強方法で充分だと考えています。

いずれにせよ[Kubernetes完全ガイド](https://book.impress.co.jp/books/1118101055)と[CKAD-exercises](https://github.com/dgkanatsios/CKAD-exercises)は非常に有益です。

# 準備

Webカメラは持っていなかったので次のものを買いました。 

 * [LOGICOOL ウェブカム HD画質 120万画素 C270](https://www.amazon.co.jp/gp/product/B003YUB660)

また試験用のスペースとして、[レンタルスペース](https://www.spacee.jp/)を借りました。
試験の流れにもありますが、試験の前に確認時間があるため、レンタルスペースを借りる場合は余分に時間を押さえておいた方が良いです。

# 試験の流れ

試験までの流れはだいたい次の流れです。詳細は[Candidate Handbook](https://training.linuxfoundation.org/wp-content/uploads/2019/04/CKA-CKAD-Candidate-Handbook-v1.18-March-2019.pdf)から確認してください。

 1. 公式サイトから申し込み
 2. OSやハードウェアのチェック
 3. スケジューリング
 4. 試験用のChrome拡張機能をインストール
 5. ハンドブックを読む
 6. 名前の確認
 7. Tipsの確認

試験の際は、次の流れでした。

 8. 試験用のサイトに、試験開始15分前からログイン可能(試験開始の15分前後にログイン)
 9. 身分証(パスポート)の確認
 10. Webカメラによる部屋と机の上の確認
 11. ライブチャットでの注意事項の確認
 12. 試験開始 ~ 試験終了

ライブチャットについては日本語だったり英語だったり、中国語とケースバイケースでした
(中国語のチャットは1回のみでしたが、結局何を言ってたのか理解できませんでした。多分カメラから外れた際の注意かな...)。

試験は問題数が多く、CKAは問題を一つ完答できず、CKADは全問完答したものの見直しの時間が取れませんでした。

# 試験時のTips

 * 問題文の意図が掴めない時は日本語だけでなく英語でも確認する
たいていの問題文は日本語で意図が充分伝わりますが、たまに真意を計りかねる問題があります。
その際は原文であろう英語でニュアンスを確認することをオススメします。

 * 自動補完を有効化しておく
コマンドを多く打つため、少しでも楽をしましょう。
[kubectl Cheet Sheet](https://kubernetes.io/docs/reference/kubectl/cheatsheet/)参照

 * ファイルの書き込み権限に注意する
試験ではサーバー上のファイルに答えを記載する形式のものがあります。
試験用のユーザーだと権限が足りないので、root権限になったり、teeコマンドを使って乗り切りましょう。
私は面倒だったので、rootに切り替えたまま書き込みしてました。

 * スクロールして確認するために、lessを駆使する
tmuxを使うと、MacOSだとスクロールするためにはtmux.confに設定の追加が必要です。
暗記していれば問題ありませんが、不安な人はkubectl getやdescribeの標準出力をパイプラインでlessに渡してスクロールしましょう。

# スコア

CKAは74%以上の合格点、CKADは66%以上の合格点が必要です。
私のスコアはCKA: 79%、 CKAD: 88%で、CKAの方はギリギリの結果になりました...

点数からも分かる通り、CKAの方が個人的に難しかったです。
試験中に全く知らない問題が何問か出てきて焦りました。
何問かはドキュメントを見て解決したものの、未だに答えの分からない問題もあり、まだまだ勉強が必要なようです。

# トラブルについて

試験スケジュールに書いた通り、CKADの1回目の試験を受けることができませんでした。
試験の15分前に試験ページにアクセスしようとしたところ、ステータスが「Delivery partner doesn't have the exam ready」となっており、1時間待っても変わりませんでした。

試験自体はLinux Foundationが主催ですが、試験環境の提供・運営はPSIという団体が行なっています。
試験ページのチャットから問い合わせができますが、問い合わせに対応してくれるのはPSIであって、実際に問題を出しているLinux Foundationには別途問い合わせが必要でした。

とりあえず1時間待ち、その後Linux Foundationへの問い合わせのメールを送って、その日は試験を受けることなく帰りました(このために取っていたレンタルスペースが...)。

運が悪いことに、アメリカは休日だったために返信が来たのは約1日半経った後でした。
(事業者側のエラーで試験が受けられなかったから向こうからメールが来て然るべきだと考えるのは日本人だからでしょうか)

どうやら滅多にないことですがシステムエラーが起きることがあるらしく、それを引き当ててしまったようです。
如何にCertified Kubernetes Administratorといえどもログインできなければ何もできません。
この時は謎の無力感と敗北感に包まれました。。。
メールをもらい、ステータスを初期化してもらって、再度予約からやり直しました。
合格できて本当に良かった。

# モチベーションの保ち方

[Kubernetes Slack](https://slack.k8s.io/)には「cka-exam-prep」と「ckad-exam-prep」チャンネルがあります。

ここには世界中のCKAやCKAD保持者、そして試験に挑もうとしている人たちが集っています。
ここで情報を集めたり、合格報告すると幸せになれるかもしれません。

合格報告すると、↓の感じで祝ってくれました(やさしい)

<img width="422" alt="スクリーンショット 2019-05-27 1.27.42.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/314463/1ab836d4-9310-09f4-babf-d9e2cd91c22f.png">

# おわりに

クラウドネイティブが大好きで、CKAとCKADを取ることはずっと目標でした。
まだまだ知らないことの方が多いので、これからも頑張っていきます。

本内容がCKA・CKADを目指す方の一助になれば幸いです。

# 参考リンク集

### CKA

| [How Heptio Engineers Ace the Certified Kubernetes Administrator Exam](https://blog.heptio.com/how-heptio-engineers-ace-the-certified-kubernetes-administrator-exam-93d20af32557) |
|:--|
| [Tips to crack Certified Kubernetes Administrator (CKA) Exam](https://medium.com/@pmvk/tips-to-crack-certified-kubernetes-administrator-cka-exam-c949c7a9bea1) |
| [Certified Kubernetes Administrator (CKA) 受験ログ](https://qiita.com/sotoiwa/items/3509ca3d18d1bed00dee) |
| [CKA (Certified Kubernetes Administrator) に受かったので所感とか](https://medium.com/mhiro2/certified-kubernetes-administrator-exam-ebb84ac686dc) |
| [Certified Kubernetes Administrator（CKA）を取得した](https://qiita.com/oke-py/items/46ecb3f530a92273b130) |
| [Certified Kubernetes Administrator (CKA) を取得してみた](https://tech.griphone.co.jp/2018/04/17/take-cka-exam/) |
| [Certified Kubernetes Administrator (CKA) 取得した](https://blog.shiftky.net/certified-kubernetes-administrator/) |
| [Certified Kubernetes Administrator (CKA) を受験してみた](https://qiita.com/nsega/items/bd17363583c04f49847a) |
| [Certified Kubernetes Administrator(CKA) を取得しました](https://adtech.cyberagent.io/techblog/archives/3421) |
| [My Feedback about CKA and CKAD](https://medium.com/@ikaboubi/my-feedback-about-cka-and-ckad-e82a35585fe9) |
| [Certified Kubernetes Administrator 試験に挑戦してみた。](https://adtech.cyberagent.io/techblog/archives/3086) |
| [既存の CKA 体験記に書いてなかったこと](https://qiita.com/dulltz/items/d254583cdd2565a4f8aa) |
| [Kubernetes Certified Administrator (CKA) 取得したので、勉強方法をまとめてみました](https://qiita.com/rev4t/items/d5f9311fff904b417e03) |
| [CKA Exam Experience and some useful Tips](https://linuxacademy.com/community/posts/show/topic/25094-cka-exam-experience-and-some-useful-tips) |
| [Kubernetesから始めるクラウドネイティブエンジニアへの道 〜 Kubernetesトレーニングと、CKA/CKAD資格取得に向けて 〜](https://www.youtube.com/watch?v=oOAtyYd1pxE) |

### CKAD

| [First Challenge for Certified Kubernetes Application Developer (CKAD)!](https://developers.cyberagent.co.jp/blog/archives/15383/) |
|:--|
| [Certified Kubernetes Application Developer 試験を受験してきました](https://jtwp470.hatenablog.jp/entry/2018/04/29/003600) |
| [Kubernetes認定試験CKADについて](https://qiita.com/Hiroyuki_OSAKI/items/e6affd8e78a127e244ae) |
| [Certified Kubernetes Application Developer (CKAD) 受験ログ](https://qiita.com/sotoiwa/items/70cf93ebe2718a3be6b3) |
| [CKA/CKADに合格したので比較してみた + Tips](https://qiita.com/oke-py/items/e8bf3863c8f48d750427) |
| [CKAD取得した。次の目標](https://road288.hatenablog.com/entry/2019/01/27/154338) |
| [CKADをさっさと合格するためのTips](https://qiita.com/kentakozuka/items/c1a30f1545752264dfe6) |
| [Certified Kubernetes Application Developer(CKAD)を受験してみた](https://qiita.com/nsega/items/3eb1d664e2b502dd696a) |