CKAの勉強課程で身についたこと【合格体験記】

# 目次
[1.はじめに](#1-はじめに)
[2.筆者のスペック](#2-筆者のスペック)
[3.試験の概要](#3-試験の概要)
[4.対策内容](#4-対策内容)
[5.勉強課程で身についたこと](#5-勉強課程で身についたこと)
[6.試験中のTIPSを簡単に](#6-試験中のTIPSを簡単に)
[7.まとめ](#7-まとめ)

# 1. はじめに
先日CKA（認定Kubernetes管理者）受験し、合格しました。せっかくなので体験記として投稿したいと思います。
（対策方法の記事はネット上にたくさんあり、そちらで詳しく書かれていて参考になります。）
本記事では、__マネージドサービス（AWS EKS）でK8s経験がある__ 私の視点から書いていきます。

# 2. 筆者のスペック
・主な保持資格：AWS SAP, LinuC304, CCNA
・SESインフラエンジニア歴1年ちょい
・__K8sの経験として、EKSを含むAWSインフラの設計構築経験あり（ただし、実際のアプリケーションを乗せた状態での運用等は無し）__

# 3. 試験の概要
### 概要
・試験時間は2時間
・問題数は確か15~20問で出題される（私の場合は17問でした）
・実機ベースでコマンドを打って問題を解く（選択問題ではない）
・コマンドにちゃんと慣れていないと時間が足りなくなるので、Udemyの模試等は何周かした方が良いです。

### スコア
正答率83%でした。（合格ラインは66%）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/577028/cef6e0fc-71d6-0007-0d2c-f4acf4a4ecca.png)

### 試験中のトラブル
・初回
初回の試験で、画面が試験官に共有できないトラブル発生…。（Chromeのアップデートにより発生した問題だったようです。）
予約時間の15分前~15分後の間で試験コンソールに入れるのですが、ChromeやMac再起動して何回か入り直してると15分タイムオーバーになり受験できず😓

・2回目
LinuxFoundationに問い合わせたところ、リスケが認められたためリトライ。Chromeの画面共有許可を付け直したりしたところ、2回目はうまく共有でき受験できました。



# 4. 対策内容
### 勉強時間
・CKA対策としては40時間程度
・EKSの設計構築は現場で3ヶ月程度

CKA対策の教材も多いみたいですが、~~めんどかったので~~自分の場合は教材絞り学習しました。

### 使った教材
・[Udemyの対策コース（英語）](https://www.udemy.com/share/101WmE3@zhBxDfBs_S3FcwOZd8W4FbHsIszq5Gck3sOuseWxscTk8VGsXzS4QDERlLkLvVVglw==/)：30時間
・[Kubernetes完全ガイド](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)：10時間
・不明点ググって出た記事を適当に

Udemyのコースは超長いですが、根気強く取り組みました。ただ演習がちょくちょくあるので退屈はしないはず。
Udemyでレクチャー見る→章末演習で一周した後に「完全ガイド」を読み進めました。
ただ個人的なオススメ勉強法としては、**Udemyは英語のため、なんとなくしか理解できなかった箇所を都度「完全ガイド」読んで固めていく**のが効率良いと思います。終わった後に気づきちょっと反省…。


# 5. 勉強課程で身についたこと
### ○実践的な力が身に付いた
とにかくコレですね！手を動かしながら対策していくので、他の資格試験には無い良さがあります。

**・ドキュメント、マニフェストの記述、デバッグに慣れたこと**
 対策中、``--dry-run=client -o yaml``でマニフェストの雛形作ったり、ドキュメントを見てマニフェストの追記したりすることがよくあります。
 ドキュメントから不明点を調べて解決していく過程は結構実務でもあると思います。またbusyboxコンテナのpodを立ち上げてネットワークの疎通確認したりもするので、実務でもこのような**デバッグを咄嗟にできる**とかなり武器になりそうです。

**・トラブルシューティング力**
　演習問題や模試でkubectlコマンドを打ちまくるので、自ずと各リソースの理解が身につき、エラーが出たらどのコマンドでデバッグすれば良いのか身につきます。
　EKSの設計構築時に技術検証をよくしていたのですが、体系的に理解できていない部分も多く、Pod起動時の``ClashLoopBackOff``とか``Pending``が出るたびに恐怖でした笑
　__K8s触っててエラーが出た時の恐怖感がかなり減ったのが個人的にはかなり良いところだったと思います！__

### ○コントロールプレーンの仕組みが理解できた
EKSはコントロールプレーンがマネージドのため、理解浅くてもなんとなくで構築できてしまいます。ただし、コントロールプレーンにも多くのコンポーネントがあり、K8sを実際に運用していく上では理解必須だと思います。（クラスターのバージョンアップ時など）
CKA対策を通して効率よくコントロールプレーンの各コンポーネントの役割や構成ファイルを理解できたのは良かったです。

### ○不足していたリソースの理解が穴埋めできた
自分が担当してたEKS案件ではインフラの設計構築のみだったため、ストレージやネットワークポリシーなどを触れておらず全然理解していませんでした。またALBはCloudFormationで管理していたため、Ingressも記述したことがありませんでした。
現場で使わないリソースはどうしても理解が浅くなると思います。この辺の埋め合わせをCKAでできたことは今後別のK8sの現場に行っても生きてくると思ってます。


# 6. 試験中のTIPSを簡単に

他の対策記事にたくさんのTIPSが載っており、そちらを見た方が100倍参考になると思いますが…
自分が試験中に使ったのは下記ぐらいでした。

#### ○コマンドのエイリアス等

```
$ alias k="kubectl"
```
```
$ export do="dry-run=client -o yaml"
```

#### ○ドキュメント開くショートカット（Macのユーザ辞書）
試験中、タブ一個だけ開いてドキュメント参照できます。Chromeのブックマークでも良いのですが、「タブ閉じる→開く」の手順がめんどかったので直でURL打ち込めるように以下URLを辞書登録してました。
・「ど」で[APIリファレンス](https://kubernetes.io/docs/reference/kubernetes-api/)
　→開いて左の検索バーから検索し、各問題の参考記事開く。あとシンプルに各APIのマニフェストの書き方参考にしたい時に開く。
・「く」で[kubectlリファレンス](https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands)
　→マニフェスト書かずサクッとリソース作りたい時に開く。

# 7. まとめ
CKAやCKADは他の資格と違い選択問題ではなく、kubectlコマンドを打ちまくって問題を解いていきます。そのためラッキーはなく簡単には合格できないはずです。
しかし、だからこそ実用的なスキルが身につけられます。
実務でK8s触っている人も、これからK8sの現場に携わりたいという人にもオススメな資格です！