概要
自分用記録
- 受験日:2025/07/21
- Kubernetesバージョン:
v1.33
- 受験端末:MacBook Pro(M2, 13インチ)
- OS: macOS Sequoia 15.3.2
結果
かなりギリギリでしたが、なんとか1回目で合格できました(66%!)
得点割合が30%と多いトラブルシューティング系の問題が1問しか出てこず、なおかつその問題の解き方がわからなくて落ちたと思いました。
とはいえCKAは1回落ちてももう1回再受験可能なので、仮に落ちても次頑張ればいいやという気持ちでした。
CKAについて
- 有効期限:2年間
- 受験費用:70000円くらい(為替相場で変動)
- 試験時間:2時間
- 問題数:17問前後
- 合格ライン:66%
- 合格通知:試験終了から24時間以内にメールで通知
- その他:合格できなかった場合、1回のみ無料で再受験可能
CKA勉強開始時のクラウドレベル
- 所持資格
- AWS CLF
- クラウド・k8s知識
- ほぼないに等しい
- 勉強始める2ヶ月前までk8sの存在すら知らなかった
- Dockerはちょっと使ったことある
勉強期間
- 勉強期間は2ヶ月(2025/05末〜2025/07/20)
- 平日1h、休日2~8hくらい勉強してた
CKA試験範囲
2025/02に試験範囲の改訂があったため、過去のCKA合格体験記の情報を漁るときは注意
(改訂内容を確認する場合は🆕がついている項目をチェック)
ストレージ(10%) 🆕
- ストレージ クラスと動的ボリューム プロビジョニングを実装する 🆕
- ボリューム タイプ、アクセス モード、再利用ポリシーを構成する
- 永続ボリュームと永続ボリューム要求を管理する
トラブルシューティング(30%)
- クラスタとノードのトラブルシューティングを行う
- クラスタ コンポーネントのトラブルシューティングを行う
- クラスタとアプリケーションのリソース使用状況を監視する
- コンテナ出力ストリームの管理と評価を行う
- サービスとネットワークのトラブルシューティングを行う
ワークロードとスケジューリング(15%)🆕
- アプリケーションのデプロイメント、およびローリング アップデートとロールバックの実行方法を理解する
- ConfigMapとSecretを使用してアプリケーションを構成する
- ワークロードの自動スケーリングを構成する 🆕
- 堅牢な自己修復アプリケーション デプロイメントの作成に使われるプリミティブを理解する
- ポッドの許可とスケジューリング(リミット、ノード アフィニティなど)を設定する
クラスタのアーキテクチャ、インストール、構成(25%)🆕
- ロール ベース アクセス コントロール(RBAC)を管理する
- Kubernetesクラスタをインストールするための基盤インフラストラクチャを準備する
- kubeadmを使用してKubernetesクラスタを作成および管理する
- Kubernetesクラスタのライフサイクルを管理する 🆕
- 高可用性コントロール プレーンを実装および設定する
- HelmとKustomizeを使用してクラスタ コンポーネントをインストールする 🆕
- 拡張インターフェース(CNI、CSI、CRIなど)を理解する 🆕
- CRDを理解し、operatorをインストールおよび設定する 🆕
サービスとネットワーキング(20%)🆕
- Pod間の接続を理解する
- ネットワーク ポリシーを定義および適用する 🆕
- ClusterIP、NodePort、LoadBalancerのサービス タイプとエンドポイントを使用する
- Gateway APIを使用してIngressトラフィックを管理する 🆕
- IngressコントローラーとIngressリソースの使用方法を理解する
- CoreDNSを理解して使用する
改訂により試験範囲から削除されたもの
etcdバックアップ・リストアホストネットワーク構成
覚えておくと良い設定・コマンド
コマンド略せるもの
- kubectl → k ※試験ではデフォルトで設定される
- deployment → deploy
- service → svc
- configmap → cm
- replicaset → rs
- daemonset → ds
- persistantVolumes → pv
- statefulset → sts
(重要)kubectlコマンド補完機能
※試験ではデフォルトで設定される
タブ押下で自動補完してくれる
解答スピードが圧倒的に異なる
例:
k get p[TAB] → k get pods
k des[TAB] → k describe
k edit pods w[TAB] → k edit pods web-app-XXX
kubectlチートシート
ドキュメントのチートシート内に何が書かれているか把握しておくこと
よく使うものに目をつけておく
設定ファイル配置場所
トラブルシューティング対策に知っておくと便利
マニフェストファイル
/etc/kubernetes/manifests/XXXX.yaml
スケジューラー、コントロールプレーン、kubeAPIサーバー、静的ポッドなどの設定ファイルが配置されている
kubelet 実行設定ファイル
/var/lib/kubelet/config.yaml
kubeletの挙動を制御する設定(ポート番号、証明書、認証など)
ノード
トラブルシューティング対策に知っておくと便利その2
ノードに入る
ssh <ノード名>
kubelet(ノード)ステータスを見る
service kubelet status
または
systemctl status kubelet
kubelet(ノード)起動
service kubelet start
または
systemctl start kubelet
Kubelet詳細ログ
journalctl -u kubelet
Podからインターナルなサービスに接続確認
type=ClusterIP
なサービス公開時やCoreDNSの問題でよく使うコマンド
k run {接続確認用のPod名} --image=busybox:1.28
--rm -it --restart=Never -- nslookup {接続したいサービス名やDNS名}
解説:
-
--rm
: 実行後、Podを自動的に削除 -
-it
: 対話モードで標準入力を有効化 -
--restart=Never
: 単発のPodとして初回のみ起動 -
-- nslookup {サービス名}
: 起動直後に nslookup コマンドを実行
Helm
Helmは学習コスト高めだが、CKAを受ける上では"リリース"と"チャート"の違いを理解して、使用するコマンドの流れさえ覚えればOK。
現在のリリース一覧:
helm list
現在のチャート一覧:
helm repo list
チャート追加:
helm repo add
リリース:
# インストール可能なチャート表示
helm search repo
# チャートをインストール
helm install {チャート名} {チャート(helm search repoで出力されたものとか)}
新しいバージョン情報が入っているディレクトリがある場合:
# チャートを検証
helm lint {新しいバージョン情報があるディレクトリ}
# インストール
helm install {新しいバージョン情報があるディレクトリ} --generate-name
Linux知識
コピペ
リモートデスクトップ(Linux)での操作ではコピペコマンドがMac(Command+C
, Command+V
)と異なる
Killer.shで試しておくのがおすすめ
コピー(ターミナル):Ctl+Shift+C
ペースト(ターミナル):Ctl+Shif+V
コピー(ターミナル以外):Ctl+C
ペースト(ターミナル以外):Ctl+V
vim操作
iや:wqはもちろん、文頭・文末移動、/検索、ddなども使い慣れておく
あとは検索次へ:n、検索前へ:Nとか
シェルファイル
コマンドをシェルファイルに入力しろという問題が出る可能性がある
XXX.sh
ファイル内はエイリアスが使用できないことに注意
k get pods # × NG
kubectl get pods # ○ OK
シェルファイル実行方法:sourceコマンドで実行できる
source get_pod.sh
勉強内容
Udemy / KodeKloud
CKAを受験する上で必ず受講するUdemy教材。
現時点(2025/02の試験範囲改訂で教材の内容が増えた後)で合計27時間と表示されていますが、KodeKloudという仮想環境で実際に手を動かす学習も含まれるため、完走にはその2倍ほどの時間が必要です。
自分はKubernetes初学者というのもあり、KodeKloudの内容を実施するのにかなり時間がかかっていました。でもそのおかげでKubernetesへの理解がかなり進みました。
注意点
Udemyの講座は日本語字幕を表示可能ですが、自動翻訳なのか訳が変になっていたりするので若干英語のリスニング能力が必要でした
コンテナイメージをコンテナ画像と訳すぐらいならまだ理解できますが、もしかしたら訳が変になっていてそもそも理解できていない部分もあったかもしれません。
勉強方法
- Udemyで講義見る→KodeKloudで実際に手を動かす、をとりあえず1周
- わからないことはとりあえずChatGPTに聞く
- KodeKloudのうち、トラブルシューティング・LightningLab・模擬試験は満点が取れるまで繰り返し実施
- 上記を解いた上で自分の苦手分野や、上記の中にはなかった試験範囲のKodeKloud問題を解いたり講義や解説を見直す
- 自分はずっとHelmわからん!といってHelmの問題を繰り返し解いていました
Killer.sh
本番試験と同様のリモートデスクトップ環境でデモ試験を受けられる
CKA受験日設定後にアクセス可能
必ず事前に受験しておくこと
最後の仕上げ
試験当日は以下のYoutubeの問題・解説を見てました
2025 CKA Exam Questions & Solutions UPDATE! | Full Walkthrough!
試験準備
ドキュメントに書いてあるので見よう
1. 使用可能Webページの確認
2025/02の試験範囲改定で、HelmとGateway APIのドキュメントも閲覧可能になりました。
- 公式ドキュメント: https://kubernetes.io/docs/home/
- チートシート: https://kubernetes.io/docs/reference/kubectl/quick-reference/
- ブログ: https://kubernetes.io/blog/
- ※Discussionは×
- Helm: https://helm.sh/docs
- Gateway API: https://gateway-api.sigs.k8s.io/
2. CKA-JP申込み
手順に従い申し込みましょう。
3. PC環境確認
システム要件
システムチェック
Chrome上で開いてツールを実行
OSバージョンアップについて
OSバージョンアップからPSIのサポートまで時間がかかる可能性があるため、OSバージョンアップのタイミングは考えた方が良い(リリースから1ヶ月以内にサポートされるとは書いてある)
システムチェックの画面許可について
システムチェックでカメラを許可する際に、「画面全体を許可」にすると「OSがサポートされていない」というエラーが出て焦りました。その時のOSは4ヶ月前にリリースされたOSのままだったので、サポートされていないはずがないんですが...
カメラを許可の対象をChromeタブにすればOKが出ました。実際に試験を受ける上でも特に問題なかったと思います。
試験当日
テスト環境(部屋)
※必ずリンク先を確認
事前にコワーキングスペースの予約が必要な場合は余裕を持って予約する
2025/07時点で、テスト場所に対する要件は次のとおり
整理整頓された作業エリア
- 机の上に紙、筆記具、電子機器、その他の物体を置かない
- 机の下に紙、ゴミ箱、その他の物体を置かない
壁
- 壁に紙やプリントアウトを掛けない
- 絵画やその他の壁装飾は許容される
- 受験者は試験が始まる前に装飾以外のものを撤去するよう求められる
点灯
- 試験監督者が受験者の顔、手、周囲の作業エリアを見ることができるように、十分な照明が必要
- 候補者の後ろに明るい光や窓がない
その他
- 受験者は試験中カメラのフレーム内に留まらなければならない
- 過度の騒音のないプライベートな空間でなければならない。コーヒーショップ、店舗、オープンオフィスなどの公共スペースは許可されない
エイリアス設定
よく使う--dry-run=client -o yaml
export do="--dry-run=client -o yaml"
※エイリアス名はお好きなものを入れてください
使い方
k create deploy --image=busybox $do > deploy.yaml
試験当日
予約した時間の30分前になると、試験予約ページから試験準備を開始できます。
試験準備について
PSI-SecureBrowserというソフトウェアをダウンロードし、そこでPC内部のチェックを行い(他のプロセス動いてないかなど)、試験官と英語でチャットをやり取りしながら部屋の試験環境のチェックを行いました。
壁をゆっくり見せてください、机の下を見せてください、スマホを持ってきて、それを遠くに置くところを見せてください、など。Macのカメラを使って部屋を見せました。
かなりスムーズに行えた方だと思うのですが、準備を開始してから試験開始にたどり着くまで20~30分ほどかかりました。
試験中に持ち込み可能なものについて
基本はこちらのページに記載されています。
上記に記載されていないですが、飲み物はラベルがないペットボトルのみ持ち込み可能です。
その他試験当日になって持ち込み可能なものが判明し、結構色々あった気がするのですが思い出せず。電卓だったかな...
イヤホンやキーボードなどのbluetooth接続は禁止とかもありました。
試験中について
休憩ボタンを押せば途中休憩可能のようです。
集中していたので押しませんでしたが...
あと脳を使うので水分必須です。水分取らないと死にます。
試験内容について
自分は16問出題され、時間がかかりそうな問題はフラグを立てて後回しにし、簡単な問題から解いていきました。
半分〜6割くらいはKodeKloudの模擬試験の問題と同等レベルの基礎問題でした。
残り半分は、解き方が分からず手も足も出ない問題と、聞いたことないぞ!なんだそれ!ドキュメントに書いてあったからよかったけど...な問題が来ました。
手間がかかる問題の方が重み付けされるので、何問解ければ合格、というのはなさそうです。
操作に慣れておらず手間取った部分や落ち着いて解けば確実に点が取れた問題で焦って解けなかった部分があったので、1回目の試験は慣れのために使用し、2回目で合格するのもありだと思います。
感想
Kubernetesの実践的な力が身につき、かつ(初学者にとっては)ネットワークの知識やLinux操作の知識も身に付くのでお得な資格だと思います。逆に実務で使い慣れていたら簡単に感じるかもしれません。
試験範囲が広くなってとっつきにくくなったかもしれないですが、難易度は思った以上に高くなかったのでよかったです。