メモ - RyuSA

技術的なメモ書きとか試してみたこと

CKA(Certified Kubernetes Administrator)とCKAD(Certified Kubernetes Application Developer)の受験ログ

先月Linux Foundationがホストしている資格を取得しました🎉

f:id:RyuSA:20210516112854p:plainf:id:RyuSA:20210516112837p:plain

完走してきてすでに半月ほど経ってしまったので、忘れないうちにアウトプットしておこうと思い試験の概要や参考にした資料など公開しておきます。

メタ情報 👀

受験した際のメタ情報を書いておきます、人によって、受験時期によって違いますからね……

  • 自分はアプリケーションエンジニアです
    • Linuxのことなんもわからん……
  • Docker歴3年、Kubernetes歴10ヶ月
  • 勉強期間1ヶ月
  • 受験したのは4月中旬
  • Kubernetesのバージョンはv1.20

概要 📄

Kubernetesオープンソースのコンテナオーケストレーションツールで、CNCF(Cloud Native Computing Foundation)のGraduatedなプロジェクトです。 Kubernetesはコンテナ化されたアプリケーションやミドルウェアを管理し、複数台のサーバークラスター上にデプロイして水平スケールしたり自動復旧の機構を提供してくれます。

CKA

training.linuxfoundation.org

CKAはKubernetesの管理者として、基本的な操作からメンテナンス、アップグレードなど多様な知識を持っていることを証明する資格です。試験内容はペーパーテストではなく実技テスト、実際にWebコンソールを叩いて操作を行い点数がつけられます。CKAは後述するCKADと比べより広い知識が要求されます。そりゃインストールからメンテナンスと、要求されている内容が広いですからね……

具体的なシラバスGithubに公開されています。

github.com

受験当時のシラバスは下記の通りでした。

CKAD

training.linuxfoundation.org

CKADはKubernetesでアプリケーションの開発を行う開発者として、基本的な操作や監視、アプリケーションデザインの選択などより専門的な知識を持っていることを証明する資格です。CKAと同様、試験内容はペーパーテストではなく実技テストです。

具体的なシラバスGithubに公開されています。

github.com

受験当時のシラバスは下記の通りでした。

  • コア コンセプト13%
  • 構成18 %
  • マルチコンテナPod10%
  • マルチコンテナPodのデザイン パターン
  • 可観測性18%
  • Podのデザイン20%
  • サービスとネットワーキング13%
  • ステートの持続性8%

なおCKADは2021年にコンテンツが大幅に変わるらしく、すでに専用サイトでアナウンスがなされています。

training.linuxfoundation.org

より開発者らしく、OCI準拠のコンテナイメージの作成やCRD、Admission Controllなどの知識が増えるようですね。(難化する予感)

参考資料 👀

先人と同じく、勉強の際にいくつか資料を参考にしました。いずれも非常に優秀な資料で、CKA/CKADを受験目的としない人もKubernetesに携わる人には手を取って欲しいと思います。

Certified Kubernetes Administrator (CKA) with Practice Tests - Udemy

www.udemy.com

正直、CKA/CKAD共にこのUdemyクラスでほぼ十分でした。若干インド訛りが入っている英語での解説でしたが、字幕が用意されておりかつ丁寧に解説してあるので非常にわかりやすかったです。 やや古いKubernetes上での解説ですが、Kubernetesのコアコンセプトなどは現在最新のv.1.21でも通用する内容だと思います。

特に、このクラスには本番さながらのハンズオンがついています。実際にWebコンソールでコンテンツのPractice Testを受けることができるので自習する上で非常に助かりました。

Kubernetes完全ガイド 第2版 (Top Gear)

www.amazon.co.jp

日本語で書かれている、名前通りKubernetesの完全ガイドの本です。Kubernetesの基本的なコンセプトからアーキテクチャの話など幅広く解説してくださってます。「はじめに」の章で書かれていますが、この本一冊読み切るとCKA/CKADの取得に必要な知識はだいたい手に入ります。(インストールやメンテナンス周りは追加で勉強が必要そうですが……)

自分はKubernetes完全ガイドは辞書のようにして必要な時に字引きするといった使い方でした。もっと活用すればよかった……

個人的な体験談 👍

体験談はたくさんあるので箇条書きにて……

試験申し込みの話

  • 監督官の言語に注意
    • 監督官の言語選択であって、試験自体の言語とは関係なし(好きな言語で受験可能)
    • 英語でサクサクコミュニケーションが取れる人は通常のCKA/CKADで申し込みすればOK
    • 英語に難あり、という人はCKA-JP/CKAD-JPというセッションで申し込みすると監督官が日本語で対応してくれるらしいです(詳細は先人の体験談参照)
  • たまにセールやってます

"試験"そのものの話

  • 試験受ける場所は事前に決めておきましょう
    • 僕はCKA試験前日になってア○ホテル予約しました(個室で安定したワイヤードネットワークあり)
    • デイタイム利用で3k円、助かる……
  • ハンドブック(Linux Foundation Certification Exams: Candidate Handbook - T&C DOC)は読みましょう
    • PDFとして出力できるのでGoogle翻訳にぶち込んで日本語にしました
    • 「え、これダメなの!?」的なものもあるので要注意
  • 試験環境は事前チェックを通しておきましょう
    • 試験を予約するときに環境のpre-checkができます、5秒でチェック終わるのでやっておくことをおすすめします
    • 自分はM1 MacbookProで受験しましたが、マイク/カメラ共に組み込みのものを使用できました
    • マイク、カメラ、画面共有のChrome権限が必要になります

勉強とかの話

  • 基本的なLinuxコマンドは使えるようにしましょう
    • kubernetes.io に出てくる範囲のコマンドは使えるようにしておく
    • 一方、Linuxの基本的なコマンド(systemctlやjournalctl、bashのリダイレクトなど)も使えるようにしておく
    • 同僚にもらったLPICの教科書熟読した(試験直前はこれしかやらなかった)
  • kubectlを使いこなせるように練習をしておく
    • 例えば kubectl run --image nginx nginx --port 80 --env "FOO=BAR" --labels "env=prod" --command -- ls /etc とか
    • kubectl explain pod.spec --recursive | lessはCKAD試験で何度か使いました
  • 一番効果的な勉強は「Kubernetesを作って壊して直してみる」こと
    • kubeadmでクラスター作る際にパラメータを変えてみたりコンテナランタイムを変更してみたり
    • kube-proxyを弄るとどんな感じに壊れるかとか、kube-controller-managerを破壊するとどうなるのかとか
    • OSを強制シャットダウンするとどうなるかとか
  • 体験記を漁っておく
    • 試験自体のトラブルとか事前に知っておくとPanicになりにくくなります
    • CKAD試験開始と同時にWebコンソールにInternal Server Errorが表示されましたが、チャットにHelp Me!!!と訴えるとすぐ対応してくれました

試験中の話

  • 言語設定は選べます
    • 日本語/英語どちらでも受験できます
    • ただ日本語は機械翻訳感があり、意味が不明になっている部分もあるので困ったら英語に戻しましょう
    • UdemyのCKAクラスを受講していると英語の表現に慣れることができてGood
  • わからない問題は捨てる
    • 先人方の体験記にもある通り、わからん問題は捨てる
    • 捨てたところで数点失うだけ、満点を取ることが試験の目的ではないので……
  • トイレに行っておく
    • 試験中もトイレ退室は可能ですが、当然試験前に行っておきましょう
    • 一敗
  • Don't Panic

試験後の話

  • 試験終了後24時間以内にメールで結果が返ってきます
    • 自分は20時間くらいで返ってきました
  • 試験に受かると、credlyというサービスのバッチがもらえます
    • ↓のような感じ、SNSで自慢しよう!ww

www.credly.com

完走した感想 🏃‍♂️

正直なところ、CKAもCKADも1回目は落ちるかも?と思ってましたが一発で受かってほっとしてます。😎 試験自体もその勉強も、かなり楽しく終わらせることができて個人的にはかなり良い試験体験だったかな?と思ってます。

超個人的な感想なのですが……

  • CKA : 想像以上に簡単、コントローラーや証明書などの動きがわかってれば余裕
  • CKAD : 想像以上に時間が足りない、完答するにはガチタイピング能力が求められる
  • 共通 : kubectlが使いこなせればたぶん受かる

と、正直kubectlをしっかり使えれば受かるんじゃないかな?と思います。