🦁

CKAD-JP 合格体験記と受験にあたっての注意点

2022/08/26に公開

はじめに

2021/03末、 CKAD (認定Kubernetesアプリケーション開発者)に合格することができました。
今後 CKA なども受験するかもしれないので、受験と合格に際してのメモと言う意味も込めてまとめたいと思います。

試験対策勉強

試験対策に関しては様々なブログから紹介されているように、 CKAD-exercises をやり込めば大丈夫でした。
自分の場合は k8s を業務でも利用していたため、CKAD-exercises のみで合格することができました。

注意点

2回目の受験で合格はできたのですが、1回目の受験は不合格でした。CKAD-JP (CKAD) は1回まで再受験が無料なので、なんとか追加料金なしで合格することができました。
個人的に不合格になってしまった原因は、勉強不足というより受験環境や試験独自の環境によるものが大きかったと思います。2回目の受験の際はほとんど k8s 自体の勉強はせず、試験そのものの対策を講じて合格したためです。
1回目の受験で不合格だった原因を記載します。

まともにタイプもできないくらい受験環境が悪い

CKAD ではブラウザ上で起動するコンソールで、kubectl コマンドなどを実行して問題を解いていきます。
しかし、1回目に受験したときはこのブラウザ上のコンソールがとても重く、タイプした数秒後にようやく文字が入力されるような状態でした。
CKAD は時間に対しての問題数が多く、時間が足りなくなることが想定されるので、この問題は非常にクリティカルでした。
1回目の受験環境では、以下のようなことが原因だと考察しました。

  • 会社貸与 PC で受験。スペックは規定を上回っているが、セキュリティソフトが原因で CPU 使用率が高騰することが問題となっていた。
  • 自宅 Wifi で受験。周囲の使用状況では必ずしも早いとは言えない通信速度だった。
  • デュアルディスプレイで受験

よって、2回目の受験では以下のように対策しました。

  • 規定のスペックを満たした個人端末を使用。CPU 使用率が高騰するようなセキュリティソフトは入れていない。
  • 優先 LAN 接続
  • ディスプレイはミラーリングで受験

2回目も若干入力に遅延は生じましたが、1回目よりかは遥かに改善されました。

デフォルトの vim の操作性が悪い

CKAD では yaml ファイルを編集する過程で vim を多く使用します。vim を使用しないという方は問題にはならないのですが、vim を使う場合は初期設定のままだと改行やコピペをしたときに勝手にインデントが取られてしまい、余計なインデント修正作業が発生してしまいました。先程申し上げたとおり CKAD は時間との勝負なので、この問題もなかなかクリティカルでした。
2回目では以下のように対策しました。こうすることで、改行やコピペをしても意図しないインデントが挿入されることがなくなり、スムーズに編集をすることができました。

  1. vim --version を実行して、「$HOME/.vimrc」が表示されることを確認 (ない場合は vi を実行し、 :echo $VIM を実行した配下に .vimrc があるはずなので、それを変更する)
  2. ホームディレクトリで vi .vimrc を実行し、以下を入力して保存する
set number

set noautoindent
set nosmartindent
set nocindent

set tabstop=2
set expandtab

kubectl edit が実行できない

何も設定せずに kubectl edit コマンドで内容を編集し、保存をしようとしても保存ができずに edit した内容が反映されませんでした。
最初のうちはテンパってしまい、yaml の書式を間違えているのかと思いましたが、どう考えても正しい書式だったため泣く泣く問題をスキップしました。
試験終盤になりkubectl edit を実行する際、 /tmp ディレクトリに何らかのファイルを書き込も書き込もうとして、権限が足りずにエラーになっているようなログが出ていることに気づきました。
そこで、sudo kubectl editを実行すると、問題なく編集と反映が完了しました。
※ 他の方のブログではあまり見らなかったので、もしかしたら私の実行方法が間違っているのかもしれないです。

よって2回目の受験では、試験開始直後に sudo chmod -R 777 /tmp を実行するようにしました。

その他 Tips

Alias / Auto Completion の設定

公式ドキュメント から以下の設定し、Alias と Auto Completion の設定を実施しました。
↑ のサイトはブックマークしておき、試験開始直後にセットアップを実施しました。

echo 'source <(kubectl completion bash)' >>~/.bashrc
echo 'alias k=kubectl' >>~/.bashrc
echo 'complete -F __start_kubectl k' >>~/.bashrc

source .bashrc

クラスタ、namespace の切り替えを都度実施

各設問の最初に、この問題はこのクラスタで実施してくださいとの旨があるので、忘れずに実施しました。
また、namespace が指定されている場合も忘れずに -n namespace を各コマンドにつけるようにしました。

yaml 作成の参考として、公式サイトをブックマークする

試験中は k8s 公式ドキュメントのみが参照可能です。公式ドキュメントではリソースを作成する際のサンプルとなる yaml が記載されているので、「このリソースの yaml はこのブックマーク」のようなブックマークのまとめ方をするとスムーズに解けるかと思います。

受験場所

このご時世なので、会社の会議室は取れないため自宅で受験しました。
参考書、電子機器類が Web カメラから見えない様になっていれば大丈夫だと思います。
詳しくは CKAD-Candidate-Handbook を見るのが確実です。
アナログ時計、ラベルを剥がしたペットボトルは許可をもらって置くことができました。

Discussion