【合格体験記】CKA受けてみた

# はじめに
合格してからしばらく時間がたってしまったが、Kubernetes管理者、クラウド管理者を対象とした認定資格であるCKA(Certified Kubernetes Administrator)に合格したのでちょっとポエムチックな内容も含めてどういった対策をしたか本記事で記載する（守秘義務で直接的な試験内容は教えられないが考え方やTips的な対策が中心）

私が受験したのが2022/3頃で、試験内容は随時アップデートされるのでそこはご了承願いたい。


# どういった試験か
Kubernetes管理者向けの試験であり、4択といった試験でなく疑似的なコンソールからコマンドを叩いたり、構築したりと実務試験が中心の試験である。またテストセンター等で受けるものではなく自宅等で受験する形式である。(試験管がリモートで監視する)

試験時間は約2時間で気合と根性が必要な試験でもある。試験中は公式ページであればブックマークすることが可能であり、コマンドの内容を暗記する必要は一切ない。試験費用は日本語版で$395（約4万）と非常に高額である。（ただし試験は不合格の場合もう一回受けられる）

ちなみに難易度的にはやや難しい
（ほかの合格体験記を見てもそんな感想）

https://training.linuxfoundation.org/ja/certification/certified-kubernetes-administrator-cka/

# 試験内容
Linux Foundationでは下記で記載されている(2022/09現在)
私自身が受けたときと大きく方針は変わってない模様

https://kubernetes.io/ja/docs/home/

試験内容のキーワードをもとに参考になりそうなページは事前にブックマークしておくとかなりよい

>ストレージ10%
>ストレージクラス、永続ボリュームを理解する
>ボリューム モード、アクセス モード、およびボリュームの再利用ポリシーを理解する
>永続ボリューム要求プリミティブを理解する
>永続ストレージを使用したアプリケーションの構成方法を知る

>トラブルシューティング30%
>クラスタとノードのロギングを評価する
>アプリケーションの監視方法を理解する
>コンテナの標準出力と標準エラー ログを管理する
>アプリケーションの障害のトラブルシューティングを行う
>クラスタ コンポーネントの障害のトラブルシューティング
>ネットワークのトラブルシューティングを行う

>ワークロードとスケジューリング15%
>デプロイメント、およびローリング アップデートとロールバックの実行方法を理解する
>ConfigMapとSecretを使用してアプリケーションを構成する
>アプリケーションのスケーリング方法を知る
>堅牢な自己修復アプリケーション デプロイメントの作成に使われるプリミティブを理解す>る
>リソース リミットがPodスケジューリングにどのように影響するかを理解する
>マニフェスト管理と一般的なテンプレートツールの認識

>クラスタのアーキテクチャ、インストール、構成25%
>ロール ベース アクセス コントロール（RBAC）を管理する
>Kubeadmを使用して基本的なクラスタをインストールする
>高可用性Kubernetesクラスターを管理する
>Kubernetesクラスタをデプロイするためのインフラをプロビジョニングする
>Kubeadmを使用してKubernetesクラスタでバージョン アップグレードを実行する
>etcdのバックアップと復元を実装する

>サービスとネットワーキング20%
>クラスタ ノードのホスト ネットワーク構成を理解する
>Pod間の接続を理解する
>ClusterIP、NodePort、LoadBalancerサービス タイプとエンドポイントを理解する
>IngressコントローラーとIngressリソースの使用方法を理解する
>CoreDNSの構成方法と使用方法を理解する
>適切なコンテナ ネットワーク インターフェイス プラグインを選択する

# 試験対策流れ

①k8sに関する基本知識取得
②Certified Kubernetes Administrator (CKA) with Practice Testsにてひたすら演習
③本番前・準備当日

## ①k8sに関する基本知識取得

https://www.amazon.co.jp/Kubernetes%E5%AE%8C%E5%85%A8%E3%82%AC%E3%82%A4%E3%83%89-impress-top-gear-%E9%9D%92%E5%B1%B1/dp/4295004804

　<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/187693/47801782-fbdc-d0df-0c89-5652e736e62c.png" width="30%">

注意してほしいのはあくまでこの書籍はk8sの知識を得る書籍であり、前提知識がない場合はかなり難易度が高いと思う（たぶん）
全てを読み漁る必要はなく試験範囲に応じて読んで理解するのがベター

＊前提知識は後程口述する

## ②Certified Kubernetes Administrator (CKA) with Practice Testsにてひたすら演習

いろんな人が言ってるがこれは絶対買ったほうがいい（Udemyの回し者ではない）

https://www.udemy.com/course/certified-kubernetes-administrator-with-practice-tests/

　<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/187693/8de9ad0e-f32d-d483-2d3f-767cdeaf6e5a.png" width="50%">

通常時購入すると約2万越えであるが、定期的に大幅値引きをしているのでそれを狙って買うとよい。
ちなみにこれを買う大きな目的は疑似的なコンソールを独自システムで提供されており本番さながらシミュレーションができる。(k8s環境を構築するのは難易度が高いのでこれは非常にありがたいし、いくらでも環境を壊せてリセットできる）

唯一のデメリットは解説も含めすべて英語なので英語アレルギーの人はつらい

　<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/187693/e5dba10f-675e-1d76-0390-762d39a4e938.png" width="80%">

## ③本番前・準備当日

__本番前__
　自宅　or 自宅外となるが自宅は色々ものがあったりとか試験を受けてる感覚がなかったので満喫の完全個室で決めた。PCの環境依存がしやすいので私物のPCを事前にセッティングをした。Macであればカメラ・マイクが内蔵されているのでMacにした。Linux関連のアカウントは事前に発行しておくとよい。

__当日__
余裕をもって満喫に入ってセッティング最終チェックを行った。(主に公式ページをブックマークした内容）試験予約は比較的融通が利くが日本語試験の場合は海外圏よりやや予約選択が少なかった気がする。（余裕持っておいて予約するとよい）
試験開始時間帯になると専用の画面コンソールが表示されリモートの試験管とチャットで色々やり取りすることになる。完全にマニュアルなのか一部意思疎通ができない事象がたくさんありだいたいここで30分ぐらい時間を取られたりする（机の上下見せてとか、開いているページ関係ない（公式じゃないページ）から消してとか、ブラウザ以外のアプリケーションはすべて強制終了しろと言われたりする。アプリケーションがゾンビ状態になってなかなか消せなくて焦った）
試験が始まると疑似的なコンソールが表示される、問題数はあまり記憶にないがだいたい18-20問ぐらいはあった気がする。問題はどこから解いても問題はないが問題が移り変わってもコンソールで設定した内容は引き継がれるのでそこは十分気を付けて解く必要がある。1問あたりだいたい5分弱で解く必要性があるので意外と時間はない。6-7割が合格基準であり問題難易度はバラつきはあるが簡単な問題は確実に取っておくのが好ましい。問題文は日本語をやや直訳した内容で読みにくい印象ではあったが特段わかりにくいものでもなかった。（Udemyのほうがそもそも英語だったのでむしろ日本語ありがたい）
ちなみに私は2回落ちた涙

見事合格すると電子証明書が発行される

　<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/187693/915d4112-01fc-2ae2-a7de-066c701aaf3d.png" width="80%">

# 取った感想等々
Kubernetesに関する基本的な知識(特に構築やアップデート戦略、トラシュー）などは断片的な知識ではなく体系的に学べたと思う。特に実務ではEKSを利用しており、直接コマンドラインを叩く機会がなかったので本試験ではそういった意味でも価値はある。デメリットは特にないがいきなり本試験を受ける人とかはあえて受ける試験でもないと感じた。（それよりも超基礎的なLPICとかそこらへん受けたほうがいい）

# Kubernetes知るには
本試験でもそうだが基本的なコマンドラインは必須であり(lsとかcd等々)それを知らない人はかなり苦戦する内容でもある。またストレージの概念（バックアップ、スナップショットなど）もごく当たり前のように出てくるので、仮想化に関する知識もある程度は会得する必要性は多大にある。

本試験を受ける前にLPIC1,LPIC2ぐらいの知識は最低限必要
またDocker、コンテナ知識も適切に知っておく必要あり


https://www.amazon.co.jp/%E3%81%9F%E3%81%A3%E3%81%9F1%E6%97%A5%E3%81%A7%E5%9F%BA%E6%9C%AC%E3%81%8C%E8%BA%AB%E3%81%AB%E4%BB%98%E3%81%8F-Docker-Kubernetes%E8%B6%85%E5%85%A5%E9%96%80-%E4%BC%8A%E8%97%A4-%E8%A3%95%E4%B8%80/dp/4297114283/ref=asc_df_4297114283/?tag=jpgo-22&linkCode=df0&hvadid=342438969336&hvpos=&hvnetw=g&hvrand=5767726712956986498&hvpone=&hvptwo=&hvqmt=&hvdev=c&hvdvcmdl=&hvlocint=&hvlocphy=1009285&hvtargid=pla-920850222417&psc=1&th=1&psc=1

　<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/187693/898a56a0-f84c-f54a-ca2a-52cc50328541.png" width="50%">


目指せマイクロサービス！