はじめに
先日、CKA(Certified Kubernetes Administrator)を受験し合格しました。2025年2月改訂版で試験を受けましたが、このバージョンの体験記が少なかったため、参考になればと思い自分の体験をまとめることにしました。
1. CKAとは
CKAとはLinux Foundation / CNCF が提供している Kubernetes 管理者向けの実技試験です。
今回、CKA-JPという日本語版の試験を受験しており、問題文や試験監督とのチャットのやり取りが日本語になっております。ただし、ドキュメントは一部日本語であるものの基本的には英語で書かれているため、読めるようになる必要があります。
とはいえ、コマンドやマニフェストの内容、シナリオからそこまで難しいことは書かれていないと思います。
試験形式は以下の通りです。
- オンライン実技試験(ハンズオン)
- ブラウザ上のターミナルで Kubernetes クラスタを直接操作
- 公式ドキュメントの参照は可能
- 制限時間:120分
- 問題数:15〜20問
- 合格正答率:66%
- 出題範囲
- ストレージ
- トラブルシューティング
- ワークロードとスケジューリング
- クラスタのアーキテクチャ、インストール、構成
- サービスとネットワーク
また、2025年2月改定のバージョンでは以下も対策する必要があります。
- Gateway API
- Helm
- Kustomize
- CRDとOperators
詳しい出題範囲等は以下を参考にしてください。
受験料は445ドルですが、クーポン等を適用することで当時のレートで5~6万円くらいになります。
そして、以下の受験特典があります。
- 12か月の受験期限
- Killer.shによるシミュレーション付き(2回分)
- 1回の無料再受験付き
2. 受験当時の知識レベル
現在社会人7年目ですが、これまでのコンテナやk8sに関する知識レベルを整理してみました。
- 新卒の時にDockerとOpenShiftを触っていたが、特にOpenShiftはなんのこっちゃというレベル
- 2~3年目でやっとOpenShiftを触ることができるようになったが、別のプロジェクトへ異動となり触らなくなる
- 別のプロジェクトでAWSのECSを触る機会があり、そこでコンテナオーケストレーションについて少しずつ理解でき、それなりに触れるように
- そのあたりからOpenShiftやk8sをもう少し理解したいという気持ちが沸き、教材を買う
- 昨年 KCNA (Kubernetes and Cloud Native Associate) を取得済で、基本的なオブジェクトやコマンド操作は分かるというレベル
CKAの学習を始める段階で、実技とClusterの運用あたりを押さえておけば対応できそうだという感触でした。
3. 受験対策
3.1. 教材一覧
以下を利用しました。多くのCKA受験者はこのあたりで対応されているかと思います。
- Udemy の Certified Kubernetes Administrator (CKA) with Practice Tests
- Killer Shell
- Kubernetes完全ガイド
また、追加で以下の教材を利用するかもしれませんが、そこまでお金をかけられない、というのが正直なところです。。。
- KillerCoda
- KodeKloudのUltimate Certified Kubernetes Administrator (CKA) Mock Exam Series
3.2. Certified Kubernetes Administrator (CKA) with Practice Tests
CKA受験者なら必ず受講する、Udemyの有名な教材です。
通常は2.8万円くらいしますが、セール時は1500円と破格の値段ですのでその時を狙って買うとよいでしょう。
CKAの基礎固めと実技演習として利用しておりました。コースは以下のように構成されており、基本的にはミニハンズオンによる実技演習を中心に進めました。
- 各セクションごとの基本概念の解説
- セクションごとのミニハンズオン
- 模擬試験(Practice Tests)
- 試験に関するQ&A
受験対策初期では基礎知識の確認と実技によるコマンドやオブジェクトの理解に、中期以降はオブジェクト作成や更新、クラスターの運用といったシナリオの理解に利用していました。
そして、ある程度理解ができるようになったら、実際の試験を想定して模擬試験3.5回分を実施しました。0.5回は実際の試験の半分くらいの時間と問題数の模擬試験になります。ここで実際の試験を想定して演習をし、その後は知識の穴埋めで苦手セクションのハンズオンをする、試験で使うようなテクニックを身につける、といった復習をしていきます。
3.3. Killer Shell
CKAの受験申込で付与されるシミュレーターです。2回分あり、それぞれアクティベートしてから36時間有効です。ここでUIや画面操作、実際のコマンド入力等に慣れておく、といった使い方になります。
そして、Killer Shellで出題される問題は難しく、CKA Killer というよりは受講者 Killer なシミュレーターだなというのが正直なところです。Udemyの模擬試験にある難しめの部類と同じような問題が多い印象です。ここで取れると本番は楽勝というレベルだと思いますが、取れなくてもそこまでへこむ必要はないのかなと思います。
Killer Shellの使い方として、
- 上記に記載の通り、画面操作等の慣れ(各シミュレーターの有効期間内ならいつでも)
- 出題された問題からさらなる知識の穴埋めと想定シナリオの整理
- シナリオと関係するドキュメントの参照
があげられると思います。特に3つ目は本番でも通用するので役に立つと思います。
なお、2つ目、3つ目については、模擬試験の受験後に、解答、解説をPDF等に出力することをおすすめします。
3.4. Kubernetes完全ガイド
k8sの全APIを体系的に網羅している本で、日本語で記載されているため、初学者にとって読みやすい本です。
KCNAの受験当時から読んでいたため、ある程度基礎知識はありましたが、Udemyの例の講座で不明点があれば見返して理解するという使い方をしていました。
3.5. 知識整理
生成AIに重要な点や難解な点を整理し、普段から利用しているNotionでデータベース化することで知識整理をしました。
3.6. 受験でのテクニカルな話
CKAはとにかく時間との勝負になります。以下を意識して、模擬試験を実施するようにしました。
受験される方もこのあたりを意識して解くようにするとよいかと思います。
- 極力コマンドを使ってリソースを作るようにする、設定を変える
(例. 「kubectl create」、「kubectl set」コマンド) - マニフェストファイルは一から作るオブジェクトと「kubectl create xx --dry-run=client -oyaml」コマンドで作るオブジェクトを見分け、極力一から作らないようにする
- 公式ドキュメントにあるマニフェストの例をすぐに見つけられるようにする
(例. HPAなど) - 解く時の優先順位(上から順に先に解いたほうがよい)
1: 簡単
PV+PVCの作成, role+rolebindingの作成, StorageClassの作成, PriorityClassの作成, Serivceの作成, Deploymentの作成, ConfigMapやSecretの作成
2: 少し面倒だけど簡単
HPAの作成, VPAの作成, NetworkPolicyの作成, Gateway APIの作成, Ingressの作成, Helm, Kustomize, Pod+上記1の組み合わせ, Pod間通信(名前解決含む)
3: 面倒
複数コンテナの実行, クラスターのインストールや更新, 複雑な要件の場合のNetworkPolicyやGateway API, Ingress, HPA, VPAの作成
4: 難しめ
トラブルシューティング:ものによるが、最初の手がかりをつかむのに時間がかかる場合あり
3.7. 勉強期間
約4か月ほど勉強しておりました。平日は1-2時間、休日は3-6時間ほどで、特に受験前は勉強時間を増やして対策をしました。
最初の2.5か月はUdemyのミニハンズオンを実施し基礎知識等を身につけました。
その後、1か月ほど模擬試験を実施し、各試験8割近くとれるようになった段階で試験の予約をしました。
また、予約と同時にKiller Shellを実施し、無事Killされつつ、そういった問題に対応できるよう、解説を読みながらシナリオ整理やUdemyで苦手分野を対策する、という流れで試験に臨みました。
4. 試験当日
4.1. 受験環境
猫を飼っており想定外のトラブルを避けるため、レンタルオフィスを予約しました。
試験開始30分前には「受験」ボタンを押すことができるので、そのタイミングで試験開始の準備を進めました。試験監督とチャットでやりとりをしながら、本人確認を済ませ、Webカメラを通じて所持品を確認し、受験部屋全体や机の上の様子を映しながら不正行為ができない状態にしました。
試験では透明なボトル(ラベルを外した状態で)の飲み物を持ち込み可能なため、適宜水分補給はしました。
また、トイレ休憩等は試験中3回までであれば可能ですが、試験に集中していたため休憩は取得しておりません。
4.2. 試験の難易度
今回の記事で一番気になる内容かと思いますが、難易度はKiller Shellほどの難しさではないものの、Udemyの模擬試験の難しい部類の問題が多少出るレベルのものでした。とはいえ、簡単な類の問題も何個かあるのでまずは確実にそれをクリアするようにしました。
当日は16問出題されましたが、初見で難しい、面倒だと思ったのは5-6問くらいでした。いったんそういった問題は後回しにし、それ以外の問題を先に解きました。最終的には1問だけ解けず試験終了になりましたが、手が止まってしまうというほどの難易度ではなかったと思います。
さいごに
最終的には正答率69%とぎりぎりな点数でしたがなんとか合格しました。そこまで難しくなかっただけに、初歩的なミスで点数を落としている可能性があるためよろしくないのですが、実際に実技試験で合格に達することができたという点では良かったと思います。
ハンズオンを通じてk8sの各コンポーネントの仕組みやクラスターの運用等理解できたので、受験してよかったと思います。
今度はCKAD (Certified Kubernetes Application Developer) あたりを受験してみようと思います。