Certified Kubernetes Administrator(CKA) 受験のふりかえり

2022年1月に[Certified Kubernetes Administrator(CKA) ](https://training.linuxfoundation.org/ja/certification/certified-kubernetes-administrator-cka/) を受検して合格したので、そのふりかえりをしたいと思います。

# 筆者プロファイル
下記のような経験を軽くやったことがある程度でした。

- Amazon EKSを使ってマネージドkubernetes環境上にアプリケーションを展開する
- AKSでIngress controllerの切り替えをjenkinsから行いblue/green deployを実現する

マネージドな環境を利用したことがあるだけで、自身でkubernetes clusterの構築などはやったことがなかったのですが、kubernetesを使った高効率なアプリケーション開発やリリース自動化に興味が湧いたため受験することにしました。

# 受験準備
## Udemy
[Certified Kubernetes Administrator (CKA) with Practice Tests](https://www.udemy.com/course/certified-kubernetes-administrator-with-practice-tests/)
他のCKA合格者の皆様も紹介されていますが試験範囲が網羅されていて、単元毎に手を動かして学べるハンズオン形式の章末問題があるので、そこで理解を確認でき、不安な部分はそこだけ実施するというマイクロラーニングができる点が良かったです。

また全ての章を終えた後は総合演習のようなmock examも3回分あり、知識の点検ができました。mock examの様子を一部公開していますので雰囲気を知りたい方は参考にしてみてください。
（問題は同じなのでネタバレ注意となります）

<iframe width="560" height="315" src="https://www.youtube.com/embed/2rQ6l635_R0" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

## killer.sh
[killer.sh](https://killer.sh)
こちらも多くのCKA合格者の方が紹介されていますが、2022年1月現在、CKAの受験資格を購入すると2回分の[killer.sh](https://killer.sh)での模試を受けることができます。難易度は本番よりも明らかに難しく、このテストで70%くらいの正答率が出せる人だと本番だとほぼ落ちないのでは、くらいの体感でした。
こちらのブログでさらに詳しく記載されています。
[Killer Shell 試してみた](https://blog.vpantry.net/2020/12/killer-shell/)

## Game of PODs
[Game of PODs](https://kodekloud.com/courses/game-of-pods/)
これはあまり紹介されていないですが、kodekloudが提供しているゲーム形式でkubernetesリソースを操作してステージをクリアして遊ぶことができるコンテンツです。
[Kubernetesをゲーム感覚で腕試しできるサイト「Game of PODs」で遊ばないと年を越せない・2021冬](https://ascii.jp/elem/000/004/078/4078633/)
個人的にはこれが結構楽しくて、のめり込んで勉強できたのと、難易度的にも形式的にも本番に近い気がしました。
試験がハンズオン形式なので、とにかく練習問題をこなしたい、という人にはオススメです。
こんなんなんぼあってもいいですからね！(c)ミルクボーイ

![Screen Shot 2022-01-01 at 14.34.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/17489/f458cab0-f5cf-45a1-7acd-0c7bea4e2b4f.png)

## 受験会場の確保
[Exam Rules and Policies](https://docs.linuxfoundation.org/tc-docs/certification/lf-candidate-handbook/exam-rules-and-policies)

- 静かでプライベートで明るくないとダメ
- 明るいライトや窓が候補者の後ろにあってはダメ
- カフェや店舗などの公共スペースからの参加はダメ
- 候補者以外の誰も部屋に入ってはダメ
- デスクにはすべてのメモと電子機器があってはダメ

ということなので、漫画喫茶の鍵付き個室なども机の上のディスプレイが許可されるかなどが不安だったため、コワーキングスペースの個室を借りて受験しました。[basis point上野店の個室](https://basispoint.tokyo/shareoffice-1day/)は実績解除済です。

# 受験当日
本人確認書類としてパスポートと運転免許証を持って30分くらい前から会場に行って準備しておきました。時間になりテストポータルにログインするとチャットで面接官に話かけられて、デスクトップ共有とカメラオンにするように言われ、続けて下記の指示を受けて実施しました。

- 部屋の中をぐるっと、あと机の下もWebカメラで映すこと
- 本人確認書類を見せること（パスポートを見せました）
- 机の上のペットボトルの水は置いててもいいけどラベルを剥がすこと
- ブラウザ以外のアプリを終了させること
- 不明点があれば質問すること（なかった）

# 受験後
36時間以内に結果を通知するとのことでしたが、24時間後に結果が送られてきました。
![Untitled.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/17489/8cddd8cd-3e00-a9fa-0d5f-977f89fb5823.jpeg)


# 感想やtips

- とにかく落ち着くことが大事
    - namespace や context が違う場所で作業したりしないように問題ごとに落ち着いて確認
- 出来る問題からやる（取りこぼさない）
- 常駐型のクリップボード履歴ツールはお咎めなしだった
    - [Clipy](https://clipy.softonic.jp/mac)
- kubectl に慣れておく
  - namespaceのオプションを先に打鍵すると該当するresourceでちゃんと補完が効く
     - ```kubectl -n=kube-system get pod``` でtab押下で該当podが ```namespace=default``` にいても補完される
   - ```kubectl get pod nginx --dry-run -o yaml > nginx.yaml ``` 等でリソースを取得、編集して ```kubectl create -f nginx.yaml``` などで新規作成
- [Kubernetes Documentation](https://kubernetes.io/docs/home/)に慣れておく
  -  どういう情報がどこにあるか
  -  絶対ここは使う！というdocsの場所はブックマークしておく（以下は個人的スタメン）
     - [Configure a Pod to Use a PersistentVolume for Storage](https://kubernetes.io/docs/tasks/configure-pod-container/configure-persistent-volume-storage/)
     - [Operating etcd clusters for Kubernetes](https://kubernetes.io/docs/tasks/administer-cluster/configure-upgrade-etcd/)
     - [Using RBAC Authorization](https://kubernetes.io/docs/reference/access-authn-authz/rbac/)
- とにかく落ち着いて！

以上です。
資格取得できることと実務でしっかり使いこなせることは別の部分もあると思うので、継続して学んでいきたいのと、とはいえハンズオン形式の試験で資格以上に過程の学習自体で力がついたので、次は[Certified Kubernetes Security Specialist(CKS)](https://training.linuxfoundation.org/ja/certification/certified-kubernetes-security-specialist/)あたりを目標に取り組んでいこうと思います。