CKA/CKADをギリギリで一発合格していたので振り返る

## はじめに
何番煎じかわからないですが表題について受験記を書いておきます。
[CKA](https://training.linuxfoundation.org/ja/certification/certified-kubernetes-administrator-cka/)と[CKAD](https://training.linuxfoundation.org/ja/certification/certified-kubernetes-application-developer-ckad/)は[Kubernetes](https://kubernetes.io/) (よくk8sと略される) のスキル証明の資格試験です。実技試験ということもあり合格のための学習や試験本番に対してやりがいを感じたり、楽しく感じたり、実務に役に立つと観測範囲では評判です。 

k8sの公式ドキュメントについて本番試験中に参照することが可能です。その際には1タブしか開けず、さらに許可されたFQDN以外のURLを開くのは禁止されています(※)。

※公式ドキュメントから禁止されたURLへのリンクがされているケースや公式ドキュメントの検索機能で禁止されたURLがマッチしてしまうケースがあるので注意が必要です。その他、細かいルールについては[このページ](https://docs.linuxfoundation.org/tc-docs/certification/lf-cert-agreement/)や[このページ](https://docs.linuxfoundation.org/tc-docs/certification/faq-cka-ckad-cks)等をご一読ください。

## 筆者バックグラウンド
minikube/kubeadm/OpenShift4/EKS/AKS/GKEなどの構築や操作経験があります。
Istioの検証も短期間ですが経験しています。
また、Kubernetesの2日間の研修を受けました。k8sに閉じた業務経験的には1年から1年半程度でしょうか。

## CKAの受験について
### 受験時期
2021年3月末

### 受験環境
- Wi-Fiのない部屋
- 楽天モバイルのSIMが入ったiPhoneのテザリング (25Mbpsくらい)
- Macbook Pro 13インチ 2016モデル
  - サブ端末でChromeのブックマークはCKA特化の内容のみ 
  - ショートカットキーの問題でWindowsよりmacOSの方が良い
  - [このページ](https://docs.linuxfoundation.org/tc-docs/certification/tips-cka-and-ckad#exam-technical-instructions)に記載があるがWindowsだとコピペのショートカットキーがOS本来と異なる
- 飲み物としてラベルを外した1リットルのミネラルウォータ

### 勉強方法
- [Udemyコース](https://www.udemy.com/course/certified-kubernetes-administrator-with-practice-tests/)の動画を一通り2倍速かつ英語字幕ありで観る
- [Udemyコース](https://www.udemy.com/course/certified-kubernetes-administrator-with-practice-tests/)のラボをLightning LabとMock Exam以外やる
  - 初見殺しのラボがあったり解説と差分があったりしたので納得するまで繰り返した
  - host名が違ったり、k8sのバージョンが違ったり...
- [Udemyコース](https://www.udemy.com/course/certified-kubernetes-administrator-with-practice-tests/)を参考にk8sの公式ドキュメントをブックマークでカテゴリ毎に整理

合計勉強時間30時間以下くらい。

### 試験開始直前
CKA-JPとして受けたので試験官とのチャットは日本語でした。
以下のような指示がチャットで試験官から出ました。やりとりに15分くらいかかった気がします。

- 身分証の提示と本人確認
  - パスポートを用意していたがモノは試しと自動車免許証とクレジットカードを見せてOKをもらった。
  - マスクを外して素顔を身分証と共に見せた。
- 受験場所の不正対策 
  - Macbook Proのカメラで部屋をぐるりと映したり、机の上や机の下をカメラで映したりした。
  - テザリングに使ったiPhoneをモバイルバッテリーにつなぎつつリュックサックの中に入れて可能な限り遠くに置いた。
- 受験端末の不正対策
  - 不要なMacbook Pro上のプロセスを終了しChromeだけの状態にした。

その他、試験官のやりとしては、 
チャットでChrome標準の翻訳機能を使って良いか聞いたらダメだと言われました。ちなみにデュアルモニター環境だったがデュアルモニター可否について聞きそびれたので結局、Macbook Proのメインモニターしか見ずに試験を受けました。

### 試験本番
試験問題については共有禁止となっているため書けません。ただし、前述のUdemyコースを一通り通しておけば十分合格できる難易度となっていますし2021年3月時点では問題数換算でそこそこの数の設問を落としても合格できるようになっているので難しい設問はフラグをつけて後回しで良いのではないかと思いました。

Udemyコースで学んだ、

- リソースを作成するyamlマニフェストを楽に作るコマンド
- k8s公式ドキュメントのどこにサンプルyamlマニフェストが書かれているかの土地勘
  - 他の方の受験記でブックマークを使って良さそうだったのでガンガン使った 
  - 必要に応じてk8s公式ドキュメントの検索機能もリンク先FQDNに気をつけながら使った

が大活躍しました。

エピソードとしては以下があります。

- kubectlの補完が効かなくてテンパった
  - Udemyコースだと最初から補完が効くので試験本番も効くものと思っていた
  - k8s公式ドキュメントで[コマンド補完の方法](https://kubernetes.io/ja/docs/tasks/tools/install-kubectl/#%E3%82%B7%E3%82%A7%E3%83%AB%E3%81%AE%E8%87%AA%E5%8B%95%E8%A3%9C%E5%AE%8C%E3%82%92%E6%9C%89%E5%8A%B9%E3%81%AB%E3%81%99%E3%82%8B)を調べた 
- 残り時間の把握の仕方がわからなくてテンパった
  - 数字で残り時間が出ると思い込んでいたが残り時間の割合を示すバーしか出なかった
  - 適宜、気になったタイミングで試験官に残り時間をチャットで聞いた
- テザリング環境であったためか一度試験環境と接続断となってしまった
  - 試験官に接続断になってしまった旨をチャットで説明した
  - 接続断の間は試験時間と見做されないようだった
  - 試験官がタイマーを止めていますと言っていた
  - 接続断によるデメリットは焦る原因になることと試験官との過去のチャットやりとりの消失
- 残り時間を示すバーがなくなったので完了と思い込んでいたが1分残っていた
  - 接続断でズレが発生したのではないかと考えている 　

### 試験終了と合否について
試験終了後に試験官から「今日はありがとう、良き日を。」的なことをチャットで言われたので「ありがとうございました。」と返し試験完了ボタンを押下しました。そうすると、試験についてのアンケートページにリダイレクトされるのでアンケートに答えます。

アンケートは英語でした。試験も終了しているのでChrome機能の翻訳機能に頼ろうとしたものの翻訳機能が動作しない作りになっていました。自分の英語力に頼るなり、Google翻訳に頼るなりするといいでしょう。

合否については36時間以内に届くと受験完了メールに書かれていたが実際は23時間くらいで届きました。

## CKADの受験について
### 受験時期
2021年6月初旬

### 受験環境
- 貸し会議室
  - [spacee](https://www.spacee.jp/)で最寄りの貸し会議室を予約
  - 試験は2時間だけど余裕を持って3時間予約した (前後30分の余裕)
  - 下見のために前日にも同じ会議室を予約して部屋の使い勝手を事前評価した
  - その貸し会議室の利用料金は3時間の利用で3000円くらい
  - キャンセルポリシーが厳しくキャンセルによる会議室代の払い戻しが期待できない
- 貸し会議室のWi-Fi (20Mbpsくらい)
- Macbook Pro 13インチ 2016モデル
  - サブ端末でChromeのブックマークはCKA/CKAD特化の内容のみ 
- 飲み物としてラベルを外した1リットルのミネラルウォータ

### 勉強方法
- [Udemyコース](https://www.udemy.com/course/certified-kubernetes-application-developer)のLightning LabとMock Examのラボ解説動画を2回ずつくらい観る
- [CKAD-exercises](https://github.com/dgkanatsios/CKAD-exercises)を眺める
- CKAの時に作ったブックマークにJob/CronJob/Probe関連のブックマークを足す

合計勉強時間3時間以下くらい。(CKAの勉強分を加味して33時間以下くらい)

### 試験開始直前
CKADとして受けたので試験官とのチャットは英語でした。
以下のような指示がチャットで試験官から出ました。やりとりに30分くらいかかった気がします。
空港で入国審査に突破できるくらいの本当に最低限の英語力があれば何とかなりますが念のため長文で返ってきたチャットについては「他の方の受験記でChromeの翻訳機能が試験官によってはOK」的な情報を見ていたので適宜、Chromeの翻訳機能も使ってチャットを確認し安全サイドに倒しました。

- 身分証の提示と本人確認
  - パスポートとクレジットカードを見せてOKをもらった。
    - なかなか上手くパスポートが画角に入らず同じ指示をチャットでかなり連打された... 
  - マスクを外して素顔を身分証と共に見せた。
- 受験場所の不正対策 
  - Macbook Proのカメラで部屋をぐるりと映したり、机の上や机の下をカメラで映したりした。
  - 貸し会議室の張り紙を外すか隠せと言われた
    - 貸し会議室の利用についての説明の張り紙が4枚くらい貼られていた
    - 外せないし隠す方法ないと英語で伝えたら「隠すことは重要です」と返された
    - 張り紙を隠すために「一度部屋を出て近くの店で買い物がしたい」と試験官にネゴった
    - 試験官の許可が降りたのでコンビニに走った
    - これが試験開始直前のやりとりに30分もかかった原因
- 受験端末の不正対策
  - 不要なMacbook Pro上のプロセスを終了しChromeだけの状態にした。

その他、試験官のやりとしては、 
チャットですでに使っていたがChrome標準の翻訳機能を使って良いか聞いておいた。許可されていますという回答でした。

### 試験本番
CKAとほぼ同じ内容となります。試験問題については共有禁止となっているため書けません。ただし、前述のUdemyコースを一通り通しておけば十分合格できる難易度となっていますし2021年6月時点では問題数換算でそこそこの数の設問を落としても合格できるようになっているので難しい設問はフラグをつけて後回しで良いのではないかと思いました。

ただ、CKADのLightning LabとMock Examの解説動画で見たような各種操作はあまり本番では見かけなかった印象なのでもしかするとUdemyコースについてCKADだけでなくCKAの方もやっておいた方が無難かもしれません。

次に、CKAと比較した試験本番時の印象を書きます。CKAに比べて複合的なリソース作成を指示される設問の比率が高いように感じました。他の方の受験記にもありますが時間が足りないと感じられる方がいるのはおそらくその辺が理由なのではないかと思います。

CKA-JPの時の経験が活きたこともあり特に試験本番のエピソードはありません。
強いて言えば、

- 無事に試験問題の言語を日本語にできてほっとした
- 説明不足に思える設問や日本語訳に不安の残る設問がいくつか気になった
- 設問中の内容から減点という概念があることを知った (つまり部分点がある)
- 試験官から何も言われなかったが駅前なので電車の音がガタゴト定期的に聞こえた

くらいでしょうか。

### 試験終了と合否について
試験終了後に試験官から「今日はありがとう、良き日を。」的なことをチャットで言われたので「Thank you.」と返し試験完了ボタンを押下しました。そうすると、試験についてのアンケートページにリダイレクトされるのでアンケートに答えます。

アンケートは英語でした。例によってChrome機能の翻訳機能に頼ろうとしたものの翻訳機能が動作しない作りになっていました。

合否については24時間以内に届くと受験完了メールに書かれており23時間くらいで届きました。

## 全体を通して
### CKA/CKADの受験順について
CKA→CKADの順で受けるのが良いというように思いました。CKAに合格できるだけの前提知識及び前提スキルがありk8sブックマークの整理が完了していれば追加の学習はほぼ無し (※) で合格できると考えています。

※CKAでは範囲外のJobやCronJob、Liveness Probe、Readiness Probeあたりの理解と演習経験は必要です。

### ひそかに思ったこと
もしかしたら試験官ガチャがあるのかもしれないです。
これは事実と異なるかもしれないですけどね...

また前述のUdemyの2コースは、

- ラボのk8sバージョン
- ラボに対する動画解説のk8sバージョン
- 本番試験のk8sバージョン

がそれぞれ異なる場合などがあり全体的に高クオリティという印象ではあるもののそこだけは微妙だなと感じています。

### 反省
CKAもCKADも合格したから良いものの勉強していなさすぎたのを反省しています。
ドキュメントですぐ見つからないコマンドやマニフェスト定義については丸暗記レベルで書けるようになっておくべきだったなとも思います。

また、資格試験を受ける場所として貸し会議室を選んだ場合においてコンパクトに携帯できる布とかセロテープとかそういうものを持ち込んだ方が無難と感じるようになったので今後はそうしようと思います。

## 今後とか要望とか
上位資格である[CKS](https://training.linuxfoundation.org/ja/certification/certified-kubernetes-security-specialist/)をそのうち受けたいと考えています。
2021年7月から[値上げ](https://training.linuxfoundation.org/ja/announcements/certification-exam-prices-increase-july-1-lock-in-current-pricing/)なので先に受験バウチャーを買っておくべきか、半額以下クーポンが手に入るのを待つか悩ましいところではあります。

CKSはCKA/CKA-JP/CKAD/CKAD-JPと異なり2021年6月現在において試験問題の言語選択ができず英語固定のようですが試験官ガチャとかではなく常にGoogle Chrome標準の翻訳機能の利用が許可されるのならなんとか乗り切れそうにも思います。ただ、ガッツリ勉強しないとCKA/CKADのように一発合格とはいかないかもしれません。

可能ならテストセンターでも受験できるようにして欲しいです。あと、試験の予約サイトの画面遷移の待ち時間を減らして欲しい.....

## 補足情報) CKA/CKADとCKA-JP/CKAD-JPの違い
前提としてCKA/CKADとCKA-JP/CKAD-JPは合格時の認定は同じ
その上で、

- CKA/CKADの方が3000円安い
- CKA-JP/CKAD-JPは試験官とのチャットが日本語でできる
- CKA-JP/CKAD-JPは[クリエーションライン社](https://www.creationline.com/cka-ckad-exam)にて請求書払い対応
- CKA/CKADは試験官とのチャットは英語だが問題文は日本語に変更可
- CKA/CKADはKubeConEUの半額バウチャーが使えた (-JPは使えなかった)

といった違いがあるようです。