📓

CKA /CKAD 合格記 (2022/12)

2022/12/08に公開

2022/12/7にCKA/CKADをダブル受験して合格したので合格までのパスなどをつらつらと書きます。試験のために大体30時間くらい勉強したと思います
https://twitter.com/i_taiga1/status/1600705020068270080?s=20&t=0EH1ELCqDsoZ1D9RegWZkw

TL;DR

  • サイバーマンデーに資格試験の購入をしましょう
  • 初学者はUdemyのCKA / CKADオンラインコースを購入しましょう
  • ある程度知識・技術が整ったら早い段階で試験環境のシミュレーターであるKiller Shellをやりましょう
  • 試験環境は整えて落とし穴にハマらないように試験要項をよく読みましょう
  • 試験は落ち着いて解けるところから素早くやりましょう。試験時間はそれほど猶予がないです

CKA / CKADについて

Kubernetesについての認定試験です。試験はパフォーマンステストという形で専用のブラウザ上から触れるVM上でコマンドを打ってタスクをこなしていきます。認定試験は各2時間で66/100点が合格のボーダーラインです。1度不合格でも無料でもう一度リテイク可能です

認定試験は11月の第4木曜日から実施されるサイバーマンデー期間中に購入すると安いです。CKA-JP / CKAD-JPもあり日本語環境での試験もあります。私はなぜか英語で受験しています。試験管の方とはチャットでやり取りするので読み書きができれば大丈夫です。私は中学英語程度の実力しかないです

CKA (Certified Kubernetes Administrator)

Kubernetesクラスタの構成や管理する機能を扱うことを証明します。具体的な内容は以下となります

ネットワーキング、ストレージ、セキュリティ、メンテナンス、ロギングとモニタリング、アプリケーションのライフサイクル、トラブルシューティング、APIオブジェクトプリミティブ、エンドユーザーの基本的なユースケースを確立する機能

CKAD (Certified Kubernetes Application Developer)

Kubernetes用のクラウドネイティブアプリケーションの設計、構築、公開できる技術力があることを証明します。具体的な内容は以下となります

アプリケーションリソースを定義し、コアプリミティブを使用して、Kubernetesのスケーラブルなアプリケーションやツールを構築、監視、トラブルシューティング

難易度

直接記載はされていませんがLinuxの基本的な知識とコマンドラインのスキル(LiuCレベル1相当)が要求されますのでそれよりは難しいと言えます。普段からDockerやKubernetesを利用している筆者の感覚としては合格するだけならIPAの基本情報処理試験よりは簡単かなというレベルでした。前提知識がないところから始めると結構大変だと思います

やった方が良いこと

初学者はUdemyのCKAとCKADオンラインコースを購入して学ぶと良いと思います。しょっちゅうセールになっていてそれぞれ1,800円で購入することができました。動画は英語ですが自動翻訳の日本語字幕をつけられるので2倍速で見ていました。随所に図解だったりコマンドなどが散りばめられているので非常にわかりやすいです
https://twitter.com/i_taiga1/status/1597807105263947782?s=20&t=0EH1ELCqDsoZ1D9RegWZkw
ある程度履修したら試験を購入すると付属するKiller Shellという試験のシミュレーターをやってみて分からないところを重点的に強化していくのが効率の良い勉強方法だと思います

TIPS

  • 試験は分かるところから解き始めましょう。特にCKADは時間に余裕があまりないです。まぁ私は頭から順番に解いていったのですが...分からない問題は考えても無駄ですのですぐスキップしましょう
  • 基本的にマニュフェストファイルを作成・編集したりすることが多いです。コマンドから作成する方法は記憶しておくと良いでしょう。コマンドで作成できないものはドキュメントからパクってきます ex. kubectl create deploy my-deploy --replicas=3 --dry-run=client -o yaml
  • 試験環境でも強力な補完が効きます。kubectlなどのコマンドに限らず各オブジェクト・ネームスペース名などもです。利用すると良いでしょう
  • 試験中は試験環境内のブラウザを利用してドキュメントを見ることができます。記憶していない設定などは参照しましょう。許可されたリソース
  • Killer Shellで試験環境に慣れておきましょう。コピーとペーストの方法が通常と違います。十分に試験環境に慣れておきましょう
  • 試験時に alias k=kubectl は設定するとタイピングする手間が省けます。その他のコマンドは必要に応じて設定してください。この設定方法やコマンドを忘れても試験中もチートシートは許可されたリソースなのでいつでも見ることができます
  • ヘルプを活用しましょう kubectl create deploy --help などで出力されるヘルプには大体基本的な使い方がわかるExampleがあるのでコピー&ペーストしてパラメーターを調整します。記憶力が矮小な私でも大丈夫です

試験に関して

環境

外部ディスプレイは使用できませんがキーボードやマウスに関しては利用可能です。試験ではWebカメラを常時オンにしておかなくてはいけないですし部屋の中に試験の妨げとなるものがあるかチェックされますので自由に動かせるカメラが必要です。私はラップトップなので持って頑張りました

また試験中に試験環境へ人が入ってくると不正行為になりますので人が入ってこない + 集中できる時間を確保してください

試験中デスクトップにはマシンと周辺機器。ラベルの剥がした水くらいしか置けませんので綺麗にしておきましょう。部屋の中にディスプレイ付きの機器がある場合は試験環境の外に出すか箱などにしまっておきましょう。↓写真にある外部ディスプレイについては電源を切っておけば特に何も言及されませんでした
https://twitter.com/i_taiga1/status/1600297977817751552?s=20&t=0EH1ELCqDsoZ1D9RegWZkw
https://twitter.com/i_taiga1/status/1600376171509985280?s=20&t=0EH1ELCqDsoZ1D9RegWZkw

ID

失効していない政府発行の顔写真と自身の名前・署名があるものを用意してください。私は運転免許証でした。試験を受ける前に自身の名前を入力する箇所がありますがIDと一致させる必要があります(Linux Foundationのアカウントの名前は関係ないです)。運転免許証の場合は漢字で入力してください。
CKAの受験前に試験管に失効日時を写してくれと言われたので移してチャットで[平成35年 is next year in Japan]とか書いた記憶があります

流れ

  1. Linux Foundationの試験から環境チェックなどをしたのちに試験日時を予約します。私の申し込み時は試験2日前には予約しておく必要がありそうでした
  2. 試験30分前に試験用のアプリケーションをダウンロード可能です。インストール後起動して試験を受けるために動いている別のアプリケーションをダウンさせるボタンがあるので押下後数十秒待っていると次のステップに進みます。私はなかったのですがアプリケーションが落ちた場合はアプリケーションの再起動ではなくブラウザからLinux Foundationの試験画面を開きアプリケーションの起動ボタンから再度起動する必要があります
  3. 同時に受験している人が多い場合は試験前のチェックの待ち行列に積まれます。自分の順番が来ると試験管のIDチェック後にチャットがきて環境チェックが始まります
  4. IDの背面の確認や不鮮明な部分などを確認後に部屋の中をゆっくりと回って四隅などを写し不要なものがないかチェックされます。最後にスマートフォンを試験の手の届く範囲の外に持っていくところを写してOKだったら試験開始です

バックグラウンド

会社でのKubernetes(EKS)のノウハウも溜まってきており、クラスタのバージョンアップデートなどをすることもあり認定されようというモチベーションがありました。また私の所属するSREチームのみなさまがこぞって取得していたので取得しようと思いました

社会人になってから資格勉強したのはネットワークスペシャリスト(午後1が30/100点くらいで落ちました。なんで全く業務でやってない試験受けたんだろう)以来で学生の頃に受けたデータベーススペシャリスト試験が合格体験としては最後です

私は元々アプリケーションも開発していますし今も副業でアプリケーション開発をしますのでKubernetesのマニュフェストも書きますしなんちゃってクラスタ管理もやっています。うちのチームにはKubernetesつよつよな方がいっぱいいらっしゃるのでそんなにゴリゴリ触ることはないですが自分で作ったSlack BotはArgoCDによって継続的デプロイされたりしています

私のやったこと

  • 2021/12/08: 認定試験を購入する
  • 2022/09/10: 認定試験が12/8までというリマインダーがメールで届く
  • 2022/11/10: UdemyでCKAとCKADのオンラインコースを購入する
  • 2022/12/07: CKA / CKAD認定試験を受ける
  • 2022/12/08: 合格通知がくる

勉強

オンラインコースを購入してから本格的な勉強を始めました。それまではCKAD ExercisesのCore ConceptsとMulti-container Podsしかやってませんでした。基本は家や外で酒を飲みながらUdemyのオンラインコースを見て家で付属するラボを使って理解度を確認するという過程を繰り返していました。冒頭の勉強時間を見て貰えば分かるとおり全然全範囲の勉強をできませんでした。特にCKAのサービスとネットワーク、トラブルシューティングはそれぞれ比率が認定試験の20%と30%あるにもかかわらず動画もラボも全く手をつけていないです。

Udemy Progresses

普段はSRE業務とクラウドセキュリティ推進を業務としていまして11月の半ばはセキュリティ堅牢化の競技Hardening ProjectのHARDENING DECADE 2022に参加したため沖縄にいました。勉強できるわけないですよね
https://twitter.com/i_taiga1/status/1600422175093428225?s=20&t=0EH1ELCqDsoZ1D9RegWZkw

やった方が良いことに書いたことと真逆をいくのですが私はKiller Shellを試験前日の夜に初めてやりました。CKADのKiller Shellを解き終わった時のスコアは半分くらいだったと思います。これは記念受験になりそうだなとその時は思いながら朝早く起きるぞと決意して寝ました。

そしてCKAD試験(2022/12/8 8:00 JST)の前にCKAのKiller Shellをやろうと思ったのですが起床したのは6:30でそんな暇なく部屋を綺麗にしたりCKADのできなそうなところを必死で覚えていました。CKADは一通り終わった時点で試験時間が15分残っていました

CKAD終了後にCKAのKiller Shellをやり始めてまずそうなところを履修(こちらも半分程度のスコアでした)13:00から試験を受けました。CKAは一通り終わった時点で試験時間が30分残りました。その後分からないところをドキュメントで探す作業をしている時に kubernetes.io の検索結果から https://discuss.kubernetes.io のリンク(許可されていないリソース)に飛んでしまいやばいと思ってすぐ戻りましたが試験結果には影響しませんでした

全てが終わり分からない問題はそれぞれの試験で2,3問ずつくらいだったなという感覚でなんかいけるかもと思ってその日の業務に戻りました(試験中も業務時間)

結果

冒頭にある通り両方受かりました。CKADはかなり怪しいです
この結果は情けないし自分の力にもなるのでオンラインコースでもっと学ぼうと思います

試験 スコア
CKA 84
CKAD 75

最後に

今回の受験を通して自分という人間のだらしなさを叩きつけられましたが勉強するのは楽しかったです。みなさんも実力の証明として受験してみてはいかがでしょうか?微力ながらこの記事を反面教師として役立てていただければ幸いです
チーム内の合格済みの皆様、こんな私にアドバイスをくださったり同時期に受験する方々からモチベーションを分けてください本当にありがとうございました

Discussion