monomeg Lab. 第2開発室

プログラミングで学んだことの覚書やら、考察ネタやら、なんでもあり

Certified Kubernetes Administratorに合格しました

業務でKubernetesをインフラとしたアプリケーションを設計したりする機会が増えてきて、これまで騙し騙しで使ってきたKubernetesk8s)の全体像をそろそろ体系的に理解しないとマズいな…と思うようになりました。 そこで同僚からもオススメされたCertified Kubernetes Administrator(CKA: 認定Kubernetes管理者)を受験し、合格しました。そこで、学習に使った教材と申し込みの流れ、実際の試験の流れ、受験後について記しておきたいと思います。

この内容は2024年3月に受験した際の記録です。ちょくちょく試験の手順が更新されているので、最新の公式の受験者向けハンドブックを読み込むことを強く推奨します。

Certified Kubernetes Administrator(CKA)とは

Linux Foundation(LF)が試験を運営、資格の認定を行う「Kubernetes管理者の責任を遂行するスキル、知識、および能力を備えていることを保証」する資格です。

training.linuxfoundation.org

IT系の資格だと、IPAが主催する基本情報技術者などに見られるような多肢選択式か、応用情報技術者のように自由記述式のパターンが想像されます。しかし、CKAでは試験で用意されたVMのシェル上でkubectlなどのツールを操作していき、問題で指定された状態にリソースを構築するという方式です。k8sの公式ドキュメントを試験中に参照できるため、コマンドを暗記する必要はありませんが、短時間での問題解決能力が問われます。大学の授業の最終試験のような感じですね。また、自分のPCに指定されたブラウザをインストールし、オンラインで受験します。出題範囲と割合は、以下のようにk8sの全範囲です。

例えば、kubeadmを使ってクラスターを構築する、といった作業も出題範囲です。Amazon EKSといったマネージドのk8sサービスを使っていると、k8sクラスターの構築は自動で行われるため、自分でクラスターを構築するという作業はまずしません。そのため、これに限らず多くのk8sユーザーにとっては割と歯ごたえのある試験内容となっているのではないでしょうか。

ちなみに、同じLFが認定するk8s関連の資格としては以下があります。

training.linuxfoundation.org

training.linuxfoundation.org

  • Certified Kubernetes Application Developer(CKAD: 認定Kubernetesアプリケーション開発者)

training.linuxfoundation.org

training.linuxfoundation.org

training.linuxfoundation.org

training.linuxfoundation.org

CKAの方がCKADの範囲より広いため、後々CKADを取りたくなった時も簡単に取れるだろうという下心戦略で、CKAを選択しました。

使った教材

Certified Kubernetes Administrator (CKA) with Practice Tests

定番?のUdemyコースです。

www.udemy.com

講師が代表?を務めるKodeKloudというサービス上でのデモ環境が無料でついてくるので、そこで実際にクラスターを操作して演習を行うことができます。学習項目ごとに細かく演習を行うことができ、最後には模擬試験もあるためかなり理解が深まります。この教材を何度も復習するだけで十分でした。 日本語の字幕がついていますが恐らく自動翻訳なので、ところどころ翻訳が怪しいです。英語字幕の方がいいです。

ちなみに、Udemyはしょっちゅうセールを行なっており、通常価格だと¥27,800ですがセールでは¥1,800で購入できます。セール外に購入してはいけません

Killer.sh

CKAを申し込むと無料でついてくる模擬試験です。LFのMy Portalからアクセスできます。

killer.sh

リモートデスクトップのターミナル上のシェルで操作するため、実際の試験環境に限りなく近いです。そのため、操作に慣れるという意味合いで一度は使ってみることを推奨します。しかし、問題が結構難しい(注意事項にも書いてあります😅)ので、あまり解けなくても心配しなくてもよいでしょう。

受験までの流れ

大まかには以下のような流れです。

  1. LPI-JAPANのサイトで申し込み
  2. クーポンコードを取得
  3. LF IDを取得
  4. EDUCO-IDを取得
  5. LFのMy Portalで試験日と試験時刻を予約
  6. 試験開始時刻30分前になったら、My PortalからPSI Secure Browserをインストール
  7. 試験環境の確認
  8. 本人確認と周囲環境の確認
  9. 試験開始

以下、ハマりそうな注意点があったので備忘録として残しておきます。

LPI-JAPANのサイトで申し込み

同じ試験内容でも問題文が英語で書かれているCKAと、日本語で書かれているCKA-JPがあります。

training.linuxfoundation.org

CKA-JPで受験しても、合格後に取得できる証明書ではCKAとなっているので、資格の効力としてはCKAもCKA-JPも全く同一とみなして構わないでしょう。 CKAとCKA-JPのどちらを選択した場合でもLFにて申し込むことができますが、USDで受験料を支払うことになります。CKA-JPの場合、LPI-JAPANにて日本円で受験チケットを購入できるので、こちらから購入しました。

lpi.or.jp

ちなみに、LPI-JAPANでは毎年2〜3月頃に認定k8s資格の受験料が半額になるキャンペーンを実施しているようです。通常価格で購入するとCKAは6万円もするので、自費での受験を考えている方はこの機会を狙うのもアリですね。

試験環境の確認

docs.linuxfoundation.org

上記、公式ハンドブックにも記載されていますが、重要そうな点をいくつか抜粋します。

使用可能なディスプレイは1枚のみ

外部モニターを使うことは可能ですが、その際内蔵ディスプレイはオフにする必要があります。この確認は、ブラウザ上で機械的に確認されます。 ちなみに、ブラウザ上で実行されるリモートデスクトップを操作するため、ディスプレイは最低14インチはないと操作がしづらいです。

マイクとWebカメラの使用を許可

後続の本人確認と周囲環境の確認、試験中の監視で使われるため、マイクとWebカメラを必ず有効化します。デスクトップPCの場合、外部マイクと外部Webカメラは必須です。ラップトップPCの場合、どちらも内蔵されているので外付けのものを用意する必要は特にないでしょう。

本人確認と周囲環境の確認

ここが一番の鬼門です。

本人確認

本人確認書類をWebカメラで直接撮影するか、モバイル端末経由で画像を送信します。本人確認書類としては運転免許証、パスポート、マイナンバーカードなどが使えるそうです。その後、Webカメラで自分の上半身を撮影します。

周囲環境の確認

ここから試験監督とのテキストでのチャットが開始されます。試験監督の指示に従って、Webカメラで自分の座っている周囲を撮影していきます。撮影といっても静止画像を撮影するのではなく、試験監督に映像が常にストリーミング配信されている状態です。そのため、指示に従って逐一、動画撮影をするような感じです。大まかに以下のポイントが確認されます。

  • 天井、壁、床に何も掲示物がないか
  • 机の上、下に物を何も置いていないか
  • 椅子の下に物を何も置いていないか
  • 携帯電話を自分から離れた場所に置いているか
  • 両腕にウェアラブル端末をつけていないか
  • 両耳にイヤホンをつけていないか
  • 飲み物がある場合、ラベルがついていない透明の水であるか

この辺りの指示はCKA-JPだろうが全て英語でなされます。ここまでで、およそ20分程度はかかります。試験監督とのチャットまでに5分くらい待機します。

ちなみに、自分の場合は荷物を片付けるのがスペース上不可能だったので個室を借りて受験しました。ラップトップPCで受験したのですが、PC全体をぐるんぐるんと回さないといけなかったので、結構面倒でした…

試験開始

無事、上記確認が完了すると、問題文とリモートデスクトップが表示され試験開始となります。

他の受験者の方のブログでは、シェルに alias k=kubectl を設定するといいというアドバイスがありましたが、既に設定されていました。また、contextの切り替えコマンドも問題文に記載してありました。

受験後

受験後は、24時間以内に結果がメールで送られてきます。CKAの場合、不合格でももう一度だけ再受験が可能です。

自分の場合、1回目の受験でテザリング接続が切れてしまい、本人確認と周囲環境の確認を再び実施するハメになってしまいました。その間も試験のタイマーは止まっていないため、結局時間が足りずに落ちてしまいました。(リモートデスクトップに再接続できれば、途中までの作業内容から試験再開は可能でした) 再受験でなんとか合格できましたが、安定したインターネット接続は必須ですね。

所感

  • 車輪の再発明とまではいかないが、やはり自分で手を動かして操作した方が理解が深まる
  • 普段はマネージドのk8sクラスターしか操作していないので、今回の資格試験学習でコントロールプレーンのetcd、kube-apiserver、kube-controller-managerやワーカーノードのkubeletの動作を体系的に理解できたのはよかった
  • コンテナの歴史を知れたのは意外な収穫だった
    • Dockerの前にrktがあったとか
  • Dockerとcontainerd、runCの関係を知れた
    • nerdctl、積極的に使っていきたい(?)