昨年の振り返り記事でもちょろっと書きましたが、Certified Kubernetes Administrator (CKA) 試験に挑戦し、無事合格することができました。

テクニカルな内容はあまり無いですが、今後 CKA に挑戦する方のために情報を残しておこうと思います。

なんで受けた

昨年から業務の中で Kubernetes に関わる機会が多くなりました。社内の Private Cloud 環境でクラスタを構築したり、オンプレ環境から AWS 環境上の Kubernetes へシステム移設をする計画を進めたりしています。

その上で、 Kubernetes に関する理解を深め、現時点での実力を測りたいと思ったのが理由の1つです。また、クラスタを構築運用してるエンジニアが必要最低限のスキルセットを持っているというアピールになると思い (アプリチームの方に安心してもらえるよう)、CKA に挑戦してみることにしました。

会社で試験費用も出していただけるということだったので、いっちょやったりますということで 💪

勉強方法と今後受ける方へのアドバイス

CKA の概要や試験形式などの情報は、公式サイトや他の方のブログに書かれているので、この記事では自分がどうやって試験に取り組んだかについて書いてみようと思います。試験内容は今後変わる可能性があるので、あくまで参考として見ていただければと思います。

出題範囲はこちらのリポジトリで公開されています:

cncf/curriculum
curriculum - Open Source Curriculum for CNCF Certification Courses

クラスタの構成や必要なコンポーネントについての学習方法は、ツール等を使わずにゼロからスクラッチで Kubernetes クラスタを構築する (いわゆる Hard-Way) ということをやっていました。SSL 証明書を使わずに insecure なクラスタを構築し、secure にし、ノードの台数を増やしていくというように、段階的に難易度を上げてクラスタ構築の練習をしました。

試験ではクラスタをゼロから構築するような問題は出題されませんが、必要なコンポーネントが正常に立ち上がっていない壊れたクラスタを直す系の問題は出題されます。k8s controller/worker ではどんなコンポーネントが動いているか理解し、コンポーネントステータス/エラーログの確認方法などは確認できるようにしておくと良いかと思います。

また、Administrator 試験といっても、クラスタを “使う” 系の問題も出題されます。(xxx な条件で Pod を作って下さい、xxx なリソースの一覧を調べてください、など) 自分で作ったクラスタで実際にコンテナを動かして遊んでみると良いと思います。クラスタ出来上がったと思ったら、実は上手く動かず裏でエラーログ吐きまくってたということもあるので…

試験時間は3時間で出題数は24問と、1問あたりに使える時間はそれほど長くはないです。難易度的にその場でドキュメントをググって対処できる問題もありますが、時間ギリギリになると思います。

時間を有効に使うために、勉強をしながらドキュメントやコードスニペットなどをまとめた自分なりのインデックスを作っておくのが良いです。Pod や Deployment などの Resource を作る yaml も、テンプレを事前に用意しておくことをオススメします。試験開始後は、別タブを開いて調べ物をすることもできるので、 github あたりにリポジトリを作って置いておくのが良いと思います。

試験環境は .bashrc をいじったりツールをインストールする事ができます。時間の有効活用や間違いを防止するために、便利なツールは活用すると良いと思います。

私は試験開始後、こんな感じの環境設定を投入しました:

試験中のアレコレ

試験は専用の Extension をインストールした Chrome ブラウザでオンラインで行われます。受験中のデスクトップキャプチャと Web カメラの映像が試験官に送信され、不正行為をしていないか見張られます。

試験官とはチャットウィンドウのメッセージでやりとりを行います。英語の試験ですがマイクを使った英会話はありません。

予定時刻を大幅に過ぎても試験が始まらなくてめちゃくちゃ焦った

はじめの試験官とのやりとりの中で、「サブディスプレイの映像も共有したら使えるよ、共有設定してね」って言われました。「いや、メインディスプレイしか無いんだけど…」と思いながら言われるとおりに設定したのですが「そちらの状況が確認できない」と言われ、何回もやり直しさせられて困りました。何らかの不具合でディスプレイの共有が上手くいかなかったようです。

試験官のメッセージ反応が悪く、こちらから状況伝えるためにメッセージ送っても無反応だったのは正直キレそうでしたw

そんな状況が20分ほど続き「これは試験開始できず無事死亡か…」と思っていたら、次の画面が現れ試験がスタートしました。結局何が起きていたのかよくわからず。

今後受ける方へのアドバイス:

  • ディスプレイまわりのカスタマイズアプリは無効にしておいたほうが良さそう
    • 解像度変更系のアプリとかは落としておこう。Mac なら解像度設定を Default for display にしておくとか。
      • それが原因だったのかはわからないけれど…
    • サブディスプレイは使えるので、広い画面が良い人は遠慮なく使おう
  • 試験時間は実際に問題を解き始めた時間でスタートしてので安心しました
    • 試験時間がトラブルの起きていた時間だけ短くなることは無かった

Ctrl-D でミスって試験環境の shell をログアウトしてしまった

tmux の windows を Ctrl-D で消しまくってたら、勢いで試験環境のシェル自体からログアウトしてしまいました。

すぐに「Hi!」ってメッセージが飛んできましたw 「間違えてログアウトしちゃったよ」と説明したら、試験環境の refresh の方法を教えてくれました。感謝 🙏

終了間際5分で試験環境がフリーズした

ちょうど、回答にミスを見つけて直そうとしていたタイミングだったので非常に焦りました。

Chrome の他のタブは動いていたのですが、試験環境のタブは完全にフリーズしてしまいキー入力やボタン操作ができなくなりました。試験官にもメッセージが送れなないので困った。 1,2分ほどしたら元に戻りましたが…

(ちなみに、会社で他に試験受けた方も同様の現象に遭遇したと言っていました。何だったのだろう)

まとめ

トラブル的なアレコレもありましたが、なんとか無事に合格することができ良かったです。 この記事がこれから挑戦しようと思っている方の参考になれば幸いです。

CKA の試験範囲をカバーできれば完璧かといえばそうではなく、実務で使えるスキルを身につけるにはまだまだ勉強しなければいけないことも多いです。 引き続き頑張ります ∠(`・ω・´)/