CKA体験記（読み進める前に前提をご覧ください）

お疲れ様です．Tomです．
先日，CKA (Certified Kubernetes Administrator)を受験し，無事Passしましたので体験記を書こうと思います．CKA-JPではありませんのでご注意ください．

![スクリーンショット 2024-12-16 21.29.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2918716/177c01d3-80c6-f60d-2383-3f0af87be655.png)


前提として，もう受ける予定が決まっていて仕上げの期間に入っている方やすでに十分調べた方は見ない方がいいかと思います．既出の情報もあると思いますし，何よりも情報量が多くなってしまい，頭の中がカオスになるのを防ぐためです．

またいろいろな方がすでに書かれているので趣向を変えて，それぞれの勉強材料に対する個人的な主観も書きます．あたためてきた思いが爆発し，かなり長くて，基本的に文章の記事になってしまいました．求めているものと違う可能性がありますので，あらかじめご了承ください．ただCKAに対する解像度は上がると思います！

## 1.どのようなテストか

### 概要
ググればわかってしまうことですが，２時間制の実技テストです．試験料はドルによる決済で，円換算で５〜６万円が相場のようです．私の場合はセールで43％引きになっていたタイミングを狙いましたので，教材とのバンドルで5万数千円くらいでした．

### 受けてみての内容の総括
難易度として公式HPには"Intermediate"に分類されていますが，まさに中の上といった具合でしょうか．そこまで概念を問うものはありませんでしたが，まさにAdministerとして『あなたはKubernetesという技術を使ってこんなことできますか？』ということを問われるテストと思いました．
私のように **概念の理解だけでいいと思っている人にはオーバスペックのような気がします**．
また受けるにあたってプロセスの概念やノード単位のネットワークについてなどLinuxサーバに関する知識は必須です．そもそもKubernetesはそれらを効率的に使うものにすぎませんから…

## 2.テストを経てどのような人になれるか
上記のそこそこの投資でどのような世界になるのかが重要と思われている方も多いのではないのでしょうか？

### 勉強”前”
Linuxサーバの構築・運用業務を中心に行っていて，LPICは303まで持っている．
Docker自体は少し触ったことがあったが，Kubernetesの専門用語についてはほとんど理解していなかった．ただ周りにいる大人の会話を聞いて，横文字がすらすら出てくるのがかっこいいな！と思っていた．

--- ３ヶ月後（後述の３に勉強内容の詳細を記載） ---

### 勉強”後”
リソースそのものの概要と，どのようなコマンドで何ができてそれを通じて何が実現できるか，何が旨味なのかを抑えている．設計や障害対応においては取り掛かる際のロードマップが見えており，イレギュラーなケースでも調べればきちんと対応できる状態．

私の感覚ではこれくらいの伸び率かと思っています．したがってある程度Kubernetesの知識があり，今後もこの技術で尖っていきたいと思っている方には少し物足りないものもありますし，費用対効果としてもイマイチなのかなと思います．イメージを図示してみたものは下記です．

![スクリーンショット 2024-12-16 21.58.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2918716/4411db1e-2b66-0e04-fbbb-db3f42509c64.png)
▲なんとなくこんな感じかなと思いました．

## 3.それまでの過程である勉強について
主に3つの教材で勉強しました．時間は平均的には朝の数時間の勉強と土日は半日くらいです．
### ① Kubernetes完全ガイド

https://book.impress.co.jp/books/1119101148

お馴染みの書籍です．実はCKAを受けようと思ったのもこの書籍をとある機会にいただいたことがきっかけでした．
これが2020年に発売されており，とても若い中これを書かれたのは異次元であることを理解した上で下記にプロコンを書きます．

| Pros | Cons |
|:-:|:-:|
| 興味深い実験が網羅されている | manifestで分量が膨らんで見える |
| 紙の良さとして疑問点等が書き込める | GKEを使っているので腰が重い |
| 日本語で簡易に書かれている | テスト対策としては内容が不十分 | 

などでしょうか．概念やユースケースが詳らかに書かれており，それに対するメモや自分の追いやすい論理展開をそこに書けるのはメリットかと思います．しかし一方で他のブログでも散見される，”この本を読むだけで完全に理解できる”というのは横暴と考えます．
商用のクラスタでトラブルに対処できる，きちんとマイクロサービスの考え方に沿って設計できる，社内で必要な調整ができるというところまでがセットかと思っているからです．ニッチなコマンドも網羅されているため，技術の文脈の繋がりを理解するために一通り読み，その後は困ったときの辞書（今となってはChatGPTで済ませてしまうことも多いと思いますが…）として使うのが良いかと思います．どうしても難しくて理解できないところは印をして，コンセプトだけ記憶するに留めました．

著者曰く，本書はCKADがターゲットに置かれているようですが，リソースの概要などについてはCKAでも通用します．一方で確かにこの一冊のみではCKA対策としては不十分かと思います．テストは実践に重きが置かれているため，資格試験のくだらないところとも言えますが，出るところをきちんと対策してコマンドや操作の流れを覚える必要があると考えます．

### ② Udemy
そんな実践を補ってくれるのが，月並みではありますがこの”Certified Kubernetes Administrator (CKA) with Practice Tests”という講座です．

https://www.udemy.com/share/101WmE3@XQXf7ORYRQkwZdMt2LzK1_HNbhENDbj890gyXwp52fLvABMis2lOX76o8Y3Oh8zygw==/ 

:::note info
Rebatesから入るとポイントバックされるのでおすすめです．
今までに使ったことのない方は，[こちら](https://www.rebates.jp/referrer?referrerid=MG8wwEMeXd8%3D)から入って30日以内に3000円以上買うと楽天ポイントが100ポイントもらえるそうです．ぜひご活用ください．
:::

リソースに関する説明の後，実際にそれらの性質が体感できるようなHands-onのワーク（以下，KodeKloud）があるので学びが複合的になり，ありがたいことに非常に上手く設計されています．個人的に修了までかなり長いコースだなと思ってしまったのですが，Mock Testからも同様の問題が出たりとかなり試験が分析されているなと感じました．テスト前日の精神統一としても使うことができます．ここをきちんといろんな疑いや考えを持ちながらできるかが合格への一つのキーになってくると思います．

またKodeKloudは”ついてくる”という説明が散見されますが，それよりもむしろコースに含まれているという方が正しいです．Udemyのコースを上から舐めていくとURLだけが貼られているPracticeのコースがありますので，それがいわゆるKodeKloudです．サブスクのプランがありますがUdemyのコースに一部が，Udemyで開放されているといった具合かと思います．アカウントの作成は必要ですが，サブスクには登録しなくても良いことを念押ししておきます．

### ③ Killer Shell
LFのポータルから権利を使ってActivateします．Durationは連続36時間でこの間に答えを見たり，直しをして再度答え合わせをすることが可能です．
Killer Shell（以下，KS）について，今回かなり重要だと思ったのでそれを強めに解説したいです．
重要だと思った理由は大きく3つです．
- 問題の傾向や出題内容を掴むことができる（テスト対策）
- GUIの操作感や難しい問題に食らうことへの慣れ（メンタル面）
- 実現したいことの想定とその適用がイメージしやすい（実務への準備）

まず一つ目の **「問題の傾向や出題内容を掴むことができる」** についてです．
一般論として実試験より難しいということが言われており，KS側もそのように謳っています．僕個人としても確かにそうだな思いましたが，普段本質から理解しようと努めていればそこまで手がでないレベルではないなというのが所感です．ただイチからリソースを作らなければならずめんどくさい（例えばPodにボリュームを適用するにあたってPV，PVCを作り，PodにBindするなど）のでストレスかつ時間を食ってしまうのと，自由記述の問題とかもあるので一発目から満点を取るのは至難の技（本当は無理と言いたい）です．ただ公式のシミュレータかと思いますので，問題傾向も必然的に似てしまうのかなとも思いますし，全てをやった・解き切ったという自信のお守りにも最適だと思います．

そして二つ目の **「GUIの操作感や難しい問題に食らうことへの慣れ」** ですが，
テストはLinuxのウィンドウシステムであるXfceを使用します．これがかなり曲者で，デフォルトでは文字の大きさやウィンドウの配置が不自然で動かしにくかったり，WindowsやMacにはない使用感があります．普段LinuxのPCを使っている人もXfceを好んで使っている人は少ないと思います．（だいたいGNOMEやWaylandのイメージで，会社のとあるサーバで使っているのをみて以来久しぶりに見ました．おそらく多くのユーザが接続するので，サーバの処理を軽くしたいのだと思います）
ただでさえクライアント端末としてLinuxユーザが少ないにも関わらず，さらにユーザが少ないと思しきXfceを使うので，多くの人が慣れない環境でテストを受けることになります．それにあらかじめ慣れておくことができるほか，自分の変な癖にも気づけます．私はマウスのショートカットを使ってブラウズバックをする癖があったようで，KSで頻繁に再接続しなければなりませんでした．その経験からそういった癖たちを矯正することが出来たのは，本番での余計なミスや再接続を防ぎ，集中できる環境を作るのに寄与したと思います．また自分が見やすいウィンドウ配置を決めておけるので，試験当日に完全アウェイな状態でないこともメンタル面で大きな効果がありました．

三つ目の **「実現したいことの想定とその適用がイメージしやすい」** に関しては，私が本質的に一番重要と考えているポイントです．
多くの人にとって，CKA取得は一つの通過点に過ぎないかと思います．即ち業務へ応用していくためのステップに過ぎません．社会において技術はビジネスを支援するツールでしかないので，「何らかのやりたいことがあって，それを技術で実現あるいは模倣する」というスキルが求められます．その需要をどのように技術で満たしていくかということを考えられる問題が多いと思ったほか，時間が決まっていて長いので余すことなく使い切ろうという原理も働きました．（UdemyのMockTestはせいぜい1時間程度なので，問題を深掘りしづらい）
例えばServiceAccountは何同士をどのような切り分けをしたいときに使うことができるんだったっけ？，そこから転じてどのような環境やRoleを分けるケースが存在しているのだろうか，など技術の用途を連想させて飲み込んでいくことができると思います．またSecretから環境変数として値を持ってくるときの記載方法はどのようにDocumentから持ってきたら良いだろうなどの演習ももちろん可能です．

私の場合，テストの1週間前の土曜日14時から開始し，日曜日も使って問題の意図と自分のスキルを研いでいく感覚で取り組みました．最終的にはここまで頑張りました．

![スクリーンショット 2024-12-16 22.11.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2918716/53ec4830-d189-3b17-49d5-5df019aa89d5.png)


## 4.試験当日について

### - 当日の仕上がり
KSを終えてすぐから受けたくてたまらなかったのですが，原理からもう少し復習したいと思い，1週間のバッファを設けました．これで落ちてしまったら他に何をすれば良いんだ...という感じでしたので，受かってひと安心しました．


### - 流れ
まず入室をします．
ここでガイドに沿ってセキュアブラウザのセットアップを行うのですが，意外に時間がかかったり，上手くいっているのか不安になったりしました．なので開始30分前には入室して，手続きを始めてしまっても良い気がします．

### - 案外大丈夫だったこと（試験前の不安）
・***社内のネットワーク***
→　注意書きに「会社などで受ける場合はファイヤウォールがどうのこうの...」という文言を見た記憶があります．しかし実際は大丈夫でした．接続先のNWをしっかり確認し，SSID等で分けられているのであればBYOD用や来賓用等の一般公開用NWを使うと良いのかなと思います．
・***PCのステッカー***
→　今思うと過敏だったなと思うのですが，ステッカーの有無を確認されることはありませんでした．
・***Meeting Podをお気に召すかどうか***
→ 受けていた場所のドアが透明だったので，ケチつけられるのではないかと不安でした．また卓上にUSBポートや電源アウトレットがあるようなタイプだったのですが，それはテキストで説明し，カメラできちんとアップで見せれば納得してくれました．

### - 全然大丈夫じゃなかったこと（試験中のストレス）
・***Proctorからのチャット***
私自身，集中しているとどんどん画面に顔が近づき，顔が全て写らなくなってしまう習性があるようでした．頻繁に顔が見えるようにカメラを調整してくださいという旨のチャットが飛んでくるのですが，その度にチャットがリモートデスクトップの画面を覆い，集中を断ち切ってくることが頻繁にありました．

・***鍵の権限***
一部の問題で鍵を使った問題があったのですが，ユーザにアクセス権が不足しているようでした．試験官に聞いてもわからないと言われ，その問題はパス．後でもっと試せたことがあったなと反省しました．試験後にチケットは起票しましたが，受かったのでうやむやにされて終わる気がしています．

・***Meeting Podの外***
会社で受けていたのですが，巡回の人が勝手に電気を消したり，普段ないくせにこんなときに限って点検をしだしたりとイラっとくることがありました．


## 5.終わってみての所感

### - 結果どうだったか
問題への所感としては，皆目見当もつかないようなものはなかったなというイメージです．
問題を見た瞬間に，「あ，これとこれはやんなきゃな」という道が見え，「じゃあ次は何をやるべきだろう」というのがログや知識からわかるといった具合でした．したがってある程度の問題で部分点をとりにいくことはできると思います．ただなぜか上手くいかないなというものを処理できずに終わってしまったので悔しい気持ちはありました．
点数に関しては，あの勉強の仕上がりでは納得しがたいものでしたが終わったものなので甘受し，後学に活かしていこうと思います．

### - これから受ける方への進言

#### 準備や受験判断期
前提にも書きましたがあまり体験記は読まない方がいいと思います（お前がいうな）
自分にとってはどうでも良いこと，自分のケースでは起こらないことが書かれていて不安を煽るためです．自分とは目指しているところの違うエンジニアが書いていたりするので，自分にとって毒になりえます．
***やるべきことを決めたら，あとは全部高いレベルでやるだけ*** かと思います．

また迷ったら無印のCKAがおすすめです．（セキュアブラウザ側の言語はこちらで選ぶことができ，リモートデスクトップ側は試験購入時に選択）
当日のセキュアブラウザも言語設定ができるのですが，デフォルトで日本語になっていたので，そのまま日本語にしました．しかし勉強に関してChatGPTへの質問からUdemyの字幕，参考文献まで，本以外は全て英語に統一していたこともあり，試験というフォーマルな場にしては日本語がカタコトだったのでかなりストレスでした．リモートデスクトップ側（つまりは問題）も同様かと思います．普段からそうだと思うのですが，大概のエンジニアは英語から逃げられないと思うので，どちらか迷われている方は腹を括っちゃってください．

#### 勉強
勉強に関してはリソースの意味を理解することを優先すべきと思います．
何が便利なのか，何がそこまで重要なのか，またそれはなぜかなど，疑問が尽きるまで深掘りしていくと良いと思います．ChatGPTへのクエリは単語ではなく論理を扱えるので，その性質をフルに使って本質にかぶりついてみてください．
また一般的なことですが，一つのことに縛られすぎないでください．一旦飛ばして後で読むとわかるようになっていたりします．固執したりハマってしまうと時間を取られるので，後の自分を信じましょう．それが勉強のドライブになったりもします．

#### 受験
一旦わかるところをやって後で戻ってくることも可能です．
UdemyのPracticeでは一度解いてしまったり，スキップすると元に戻れない仕様となっていますが，KSや本番試験はちゃんと戻れます．また私の所感として，癖のある問題は最初に出てくる印象があるので，一度全部見てから解くというのもひとつあるのかなと思いました．
なんか上手くいかないなということがあります．そんな時も落ち着いてログを見たり，コマンドの出力等で状況とやるべきことを確認すれば案外上手くいくこともあります．
テスト自体は急ぎめにやって，ちょうど良い時間といった感じでした．


## 6.総括と次回予告

### 総括
試験には直接関係ありませんが，Kubernetesの何が良いのかやエコシステム内の相関・用語の学習にこの資格はピッタリでした．目標がはっきりしていて，そこへ合わせにいくには？という考えが働くからです．
また資格試験で出るものはKubernetesのほんの一部であり，商用のものと比べるとかなりシンプルなものを1人で取り扱う勉強をします．これはいわゆる業務で複雑なものを大人数で取り扱うというものと真逆の性質になりますが，この勉強が意味ないかと言われればあまりそうは思いませんでした．もともと概念を知りたいと思っており，それを実現できたことが大きな要因です．また実社会では”今から2時間以内にこのクラスターたちに対して今から司令する操作を行なってください”などと注文されることは皆無です．しかしこの力試しのような場があることで，もっと鍛錬したいなと思えるような資格試験でした．

遊びでやったことあるひとと比べて網羅されており，やることや必要作業への解像度が高く，手がかからないため案件のアサイン等で手を挙げるときに上司の判断材料として役立つと思いました．

### 次回予告
すでに来年のプランはあり，興味のある技術の資格試験を片っ端から受けていくというのは2025年で終わる見込みです．目下CKADに取り組んでいき，来年に入ってすぐに取得できるよう進めていきます．

ご覧いただきありがとうございました．それではまた！