開発環境などでKubernetesを普段から触ってはいて、その仕組みが面白いので本格的に触っていきたいものの、知識不足が結構多く、全般的に勉強していきたいというところから、CKA合格を目指すことにしました。
その一部始終です。
CKAって何さね
認定Kubernetes管理者は、Kubernetesエコシステムの開発を支援するための継続的な取り組みの一環として、Linux FoundationとCloud Native Computing Foundation(CNCF)によって作成されました。試験はオンラインで監督されたパフォーマンスベースのテストであり、Kubernetesを実行するコマンドラインから複数のタスクを解く必要があります。
https://training.linuxfoundation.org/ja/certification/certified-kubernetes-administrator-cka/
要は、Kubernetesクラスタや、その周辺のシステムを「管理」するにあたって必要なスキルが身についていますよということを証明する資格です。
例えば、「〜〜というimageのコンテナを含んだpodを、〜という名前で作成しなさい」だとか、「ノードのアップグレードを行いなさい」みたいな問題が出題され、実際にシェルを叩いてあるべき状態にしていくのが主な内容です。
試験時間は2時間(長い!!!)で、オンライン + 個人のPCで受験可能ですが、受験場所に制約があったりします。
CKA Examに向けてやったこと
試験に向けた勉強は、主に3つでした。
ほぼ国内でCKA合格体験記としてよく書かれている内容をそのままなぞった感じはあります。
(先に)受験用バウチャーを購入
受験しよう!と思い立ったのが3月の中頃です。
自分はこういうのを決めたところで、三日坊主になってしまうのは目に見えていました。
なので、「資格を手にいれる日」を概ね決めてしまう(6月くらいには合格したい)のと、$395ドルの受験用バウチャーを最初に買っておき、後に戻れないように自分を追い込みました。

買った日から1年以内に、日程調整の上任意の時間で受験可能です。
つまり、どんなに遅くても来年の3月までに受けなければ¥40,000近くがパーになると。
絶対に引き返せません。
Kubernetes完全ガイドを読み漁る
自宅では主に後述のudemyの教材を消化していましたが、電車の中など、スキマの時間で読み漁りました。
完全ガイドの名の通り、1から10までを書いているので、全体把握に役立ちました。
また、日本語の本なので、こちらで一旦全容を把握した上でudemyで手を動かしつつやっていくというスタイルが徐々に定着していました。
全部読んだというわけでもなく、第4章〜第12章くらいまでと、第14章を読み込みました。
udemyの教材

udemyでCKA対策のための講座が用意されています。こちらを購入しました。
初めてudemyで教材を買ったのですが、かなりの頻度でセールをやっているのが印象的でした。
むしろ、定価で買う方が難しくないか??
動画の講座に加え、「KodeKloud」という演習環境が用意されています。
動画の内容を復習する「Practice Test」として、(おそらく)実際のk8s環境を使いながら、コマンドを叩いたり、yamlファイルを作成する練習をしました。

演習環境としてはかなり本格的で、実際に動いているpodに対してブラウザからアクセスできるなど、実用性が抜群でした。
自前のk8s環境は壊すのが怖いので、気軽に使えるこの演習環境はとてもありがたかったです。
言うまでもなく、静的podを扱うようなnode側の環境を操作する演習も用意されていました。
ただ、動画の日本語訳はかなり怪しく、kubectl
を「cube コントロール」と言っていたりしてました。
こちらは完全ガイドの方がちゃんとしてる(当たり前)ので、あくまで完全ガイドで掴んだ知識をudemyで深めるのが主でした。
日本語である程度理解している & 参考程度の字幕が付いているため、動画自体は1.25倍速くらいにして再生していました。
Killer Shellはどうだった?
公式(?)の試験シミュレーターです。
こちらもブラウザから取り組む形で、2時間を使い、25問を解きます。
受験前日に取り組みましたが、かなりボロボロでした。
5割くらいしか取れてません・・・
2時間ずっとkubectlを叩き続けるというのもなかなかないもので、試験のプレッシャーも相まってかなりしんどい時間でした。
本番の試験より難しく、同じように5割くらいしか取れてない人が本試験では合格できたと言っているので、あとは自分を信じつつ、その日の夜はこのブログを途中まで書きつつ、完全ガイドやudemyを広く薄くおさらいしていく感じで過ごしました。
受験場所の確保
勉強も大変でしたが、これが一番難易度が高かった気がします。
結局、ド深夜に広い会議室を借りて受験しました。
いざ、受験
受験の予約は受験したい日程の24時間前まで可能です。
時間枠を日本時間で選択できるのがとても直感的でいいなと思いました。
受験の準備
予約した時間の30分前から試験のルーム(?)に入ることができます。
入ろうとすると、試験専用のブラウザがインストールされます。
「試験中に開いてはいけないアプリケーションが開いているよ!」ということで、「SidecarRelay」というプロセスを閉じろって言われたんですが、どう頑張っても閉じれず・・・色々いじってたら終了してくれたみたいです。
入ると身分証(合格した時の証明書を英語で発行してほしかったので、英語の身分証であるパスポートを選択)の撮影→自分の顔写真の撮影をしたあとに、Proctorの空きを待ちます。
その後、部屋の壁などをぐるっとカメラで見せたあとに、机の下やPCの下を見せます。
机上に肩から下げる紐がついたスマホを置いていた(後で見せた後手の届かないところに置く仕草をする必要があるので)のですが、「その黒いオブジェクトは何だ??」と言われてしまいました。笑いました。
最後に、試験中に飲む飲料水を見せたら、試験中の注意事項を確認して試験スタートです。
試験スタート
1問目でいきなり詰まって大変だったのですが、一旦飛ばして他の問題をやってみたら意外と時間が余りました。(最終的に1問目も考える余裕ができました)
ムズいなと思った瞬間にさっさとフラグ立てて(後で解く的な感じでフラグを立てることができます)次の問題に移ってしまうのが良さそう。
前の問題ができていないと次の問題もできない的な問題はありませんでした。
後述の通り、Kubernetes.ioのDocsを閲覧できます。
「はにゃ??」と思ったところはDocsで調べ直すだけの時間の余裕はありました。
(ちなみに、日本語Docsも見られます)
CKAとCKA-JPの違いとして、「Proctorが日本語を話すかどうか」みたいなのがあったのですが、最近はProctorは英語のみになったらしく、違いがわかりませんでした。JPなしだったのですが、別に問題は日本語にできました。
というわけで、ニュアンスがよく伝わらない英語の問題は日本語に切り替えて、そうでない問題は英語で解いていました。
試験環境
試験は、リモートデスクトップ上のUbuntu環境を使って行います。
試験中はKubernetes.ioのDocsを参照できるので、yamlの書き方などは基本的にコピペ→必要なところを書き換えていく感じでOK。
試験問題に、「参考になるKubernetes.ioのDocsへのリンク」が置いてあるので、もはや見てくれと言わんばかりの環境でした。
最初はkubectl
くらいいちいち打ってても大丈夫やろと思ってましたが甘かったです。
多すぎます。やってらんねぇ。
alias k=kubectl
はありがたかったです。
キー入力がずっとされてしまうことがあり、Backspaceがずっと認識されてしまい、せっかく書いたyamlファイルが消えてしまうトラブルが結構ありました。
かなりイラッとしましたが、落ち着きつつ・・・

手応え
なかったです。どれもかなり怪しい。
確かに、クラスタ自体の設定はうまくできた感触はあるのですが、いかんせん設問で求めていることをちゃんと満たせているか判断に困る。
合格点は66点ですが、取れればいいかなという状態で、再試験覚悟でした。
結果は・・・

認定されました?
スコアは71点、結構ヒヤヒヤな点数ですが、とりあえずどの問題もあんまり自信ないという終わり方にしては善戦した方だと思います。
ちなみに、20時半から始まった試験は22時半に終了、結果は翌日の20時半過ぎくらいに来ました。
特に技術的な問題などがなければ試験終了から24時間以内に来ます。
なお、どこが合っていて、どこが間違っていたかは教えてくれないみたいです。
どこが合ってたんだろう・・・
CKAを終えて
自信ない部分はかなり多くあります。
特にNetworkPolicy周りは、意図した通りに適用されているかとか、そういったところがうまくできていない印象です。
とはいえ、一旦認定は受けたので、「Kubernetesちゃんと勉強してます!」と言えるくらいのステージには立てたと思ってます。
受験料高いですが、CKADとかCKSも挑戦してみようかな??その前に基本情報か・・・