CKA (Certified Kubernetes Administrator) の取得 (2020/9～ v1.19対応)

# 1. はじめに
- 目的：自称インフラエンジニアとして、Kubernetesがそれなりに触れないといけないと思い、せっかくなのでCKA取得を目標に学習することにした。受験対策、勉強法については既に多数の記事があるが、参考まで自分のケースをまとめておく。
- 受験日：2021/1 (v1.19対応)　[※2020/9に開始された試験バージョン](https://training.linuxfoundation.org/ja/cka-program-changes-2020/)
- 着手前レベル：Kubernetesを全く触ったことのないレベル（会社で少し習ったが忘れてしまっていた）

# 2. 勉強法
## 2.1 他の人の合格体験記調査
- 先人の体験記を10個くらい読みあさったところ、既に必勝の勉強法が確立されているようで、その通りやることにした。
    - Udemyの「Certified Kubernetes Administrator (CKA) with Practice Tests」をやること。
    - 「Kubernetes完全ガイド」を読むこと。
- 特に参考になった体験記は以下。
    - [Kubernetes認定資格CKA/CKAD受験のTips](https://qiita.com/mochizuki875/items/a77d5c495d2fb99bd2f9)
        - 準備から本番まで、必要なポイントが分かりやすくまとめられている。
    - [CKA合格後に考えた、CKAの効率的な勉強方法！！](https://ccie-go.com/cka-pass-study-1/)
        - どこを勉強すればよいか、どういう順番に勉強すればよいかの解説が的確。

## 2.2 Udemy
- 誰もが薦めるUdemy講座「[Certified Kubernetes Administrator (CKA) with Practice Tests](https://www.udemy.com/course/certified-kubernetes-administrator-with-practice-tests/) 」を実施した。
- 利用した所感は以下の通り。
    - CKAの試験範囲に沿ったカリキュラムとなっている（kubernetesの機能のうち、試験対策に必要な部分に集中して学習できる）。
    - 先生の英語が聞き取りやすい（字幕もあるが、字幕なしでも割と理解し易い）。
    - 講義⇒ハンズオン（練習問題）のセットとなっており、知識が定着しやすい。問題も実践的（4択とかではなく、kubectlで操作しないといけない）。
    - ハンズオンのサイトのレスポンスがよくない（動作が遅い）のだけが少し残念。
- 1週目は講義とハンズオン（回答見ながら）を実施、2週目以降はハンズオンだけ（本番同様kubernetes.ioサイトだけ見ながら）実施。
- ハンズオンを通じて、「こういう系の問題に回答するには、kubernetes.ioサイトの、このページに書いてあるManifestを見ればよい」みたいなことを確認しつつ、該当のページをChromeのブックマークに登録していき、本番で同様の問題が出題された時にすぐ該当のページに飛べるようにした。

## 2.3 書籍、サイト
- 書籍「[Kubernetes完全ガイド 第2版](https://www.amazon.co.jp/Kubernetes%E5%AE%8C%E5%85%A8%E3%82%AC%E3%82%A4%E3%83%89-%E7%AC%AC2%E7%89%88-Top-Gear-%E9%9D%92%E5%B1%B1/dp/4295009792/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=A4YCCE1ISJE6&dchild=1&keywords=kubernetes&qid=1609511046&sprefix=kuber%2Caps%2C309&sr=8-1)」
    - ちょうど改版されて第2版になり、kubernetes v1.18対応になったところだった。最初に一通り読んで、その後、Udemyの問題をやって、分からない時に該当の章を改めて見直す感じとした。
- 書籍「[15Stepで習得 Dockerから入るKubernetes コンテナ開発からK8s本番運用まで](https://www.amazon.co.jp/15Step%E3%81%A7%E7%BF%92%E5%BE%97-Docker%E3%81%8B%E3%82%89%E5%85%A5%E3%82%8BKubernetes-%E3%82%B3%E3%83%B3%E3%83%86%E3%83%8A%E9%96%8B%E7%99%BA%E3%81%8B%E3%82%89K8s%E6%9C%AC%E7%95%AA%E9%81%8B%E7%94%A8%E3%81%BE%E3%81%A7-StepUp-%E9%81%B8%E6%9B%B8/dp/4865941614/ref=sr_1_3?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=A4YCCE1ISJE6&dchild=1&keywords=kubernetes&qid=1609511046&sprefix=kuber%2Caps%2C309&sr=8-3)」
    - ハンズオンが15Stepに分かれており、少しずつに分けて実施することができた。Udemyや完全ガイドとはまた説明の切り口が違うので、知識の定着のためには有効だった。
- サイト「[Kubernetes道場 Advent Calendar 2018](https://qiita.com/advent-calendar/2018/k8s-dojo)」
    - 少し古いが、Manifestの例などが豊富で分かりやすい。試験の時kubernetes.ioではなくてこちらをみたいくらいだった。

## 2.4 実機確認
- 気になる部分は実環境で練習した。(例：kubeadmでの環境構築など）
- 練習したことの一部はQiita記事化した。
    - [【初心者】Amazon EKSを使ってみる　（環境構築～サンプルアプリ起動まで）](https://qiita.com/mksamba/items/666c0d666fbb2e052d19)
    - [【初心者】Amazon EKSを使ってみる #2（WordPressのデプロイ）](https://qiita.com/mksamba/items/15e49ed01606dd63b6be)
    - [【初心者】Amazon EKSを使ってみる #3 (AWS Load Balancer Controller によるIngressの利用)](https://qiita.com/mksamba/items/c0e41a2a63e62a50aea3)
- 自分でやってみると、Manifestを書く楽しさみたいなのを少し感じることができた。

# 3. 受験
## 3.1 受験環境
- 家族がいない日をねらい、自宅で受験することにした。机の上のものを片付け、本棚を毛布で隠した。
- 試験中、Chromeにて、問題を解くタブとは別に、追加で一つタブを開いてkubernetes.ioサイトを見られるということで、外部デイスプレイを用意し、タブ切替せずにそのままkubernetes.ioサイトを表示できるようにした。
- PC(Windows 10)は普段とはユーザを変えて、デスクトップに何もない状態（間違えて何か開いたりしないように）、Chromeは試験専用のブックマークがきれいに並んでいる状態とした。

![qiita受験環境.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/189302/ed0c7a81-0f92-65b9-a92c-9da164dc194b.png)


## 3.2 受験時の注意
- 初めてのオンライン試験で緊張したが、監督官とのchatではそんなに難しいことも言われず（カメラで部屋を見せて下さい、もっとゆっくり回して見せて下さい、とかのレベル）無事試験を開始することができた。ただ外部ディスプレイを監督官に共有する設定で手間取ったりして、開始するまでに結局20分くらいかかってしまった。
- 最初の問題が割と手間がかかるタイプのやつだったため、「こんな難しいの？」と焦ってしまったが、進めると簡単なものもあったため、最初に全体的に問題を見て、焦らずに簡単なものから済ませればよかった。
- 後何分残っているのかが表示されないため、何回も監督官にchatで「How many minutes remaining ?」とか聞いてしまった。正しい英語だと「How many minutes left ?」がよいのかも。参考：[あと何分？って英語でなんて言うの？](https://eikaiwa.dmm.com/uknow/questions/48290/)

## 3.3 受験後
- 受験してから30時間後くらいに通知が届いた。「落ちたらまたしばらく毎日kubectlか、、」と不安だったが、無事一回で合格できてよかった。

# 4. 所感
- 結局、着手から取得まで4か月くらいかかってしまった。最後の1か月は追い込みで毎日100回くらいkubectlしていた気がして、ちょっとしんどかった。
- 正直全然kubenetesができる気がしない(コンテナもnginxとbusyboxしか作ってない気がするし)ので、今回得た知識を元にもう少し実践していきたい。