銀の光と碧い空

クラウドなインフラとC#なアプリ開発の狭間にいるエンジニアの日々

2021年10月にCKAとCKADに同日受験して合格しました

f:id:tanaka733:20211027225813p:plain CKA: Certified Kubernetes AdministratorとCKAD: Certified Kubernetes Application Developerを同じ日に受験して合格しました。

CKA/CKAD(あとCKSも?)は、例えばAzureの資格試験(AZ-303: Microsoft Azure Architect Technologiesなど)と異なり、実際のkubernetes環境を操作して問題として与えられた状態にすることが求められる試験であり、ドキュメントの参照も一定の範囲で可能ということで、異なる準備が必要だったのでまとめてみました。

kubernetes経験と準備期間

OpenShiftのサポートエンジニアとして約3年、そのあとNew Relicに移ってからはNew Relicのkubernetes Integrationのサポートを通して約2年半、扱う機会がありました。ただ、New Relicに移ってからはNew Relic製品全体を担当していたのでkubernetesに触る機会は減ってしまい、せっかくなのでCKA,CKADを通して最新のkubernetes知識をキャッチアップしておこうと思ったのがきっかけです。

試験のバウチャーは約1年前に買ったものの当時は忙しく1年あればいつか暇になるだろうと思っていたら、ますます忙しくなる中失効の連絡が来たのであわてて試験の予約をして、1ヶ月ほど準備 しました。

試験の予約と受験環境

予約は公式サイトで行います。日本の営業時間でも選択肢は多いので、CKAを11時から、CKADを15時からでとりました。

受験環境は受験者が用意する責任があります。机の上にものがなく、まわりにもものがなく、静寂な環境が必要ということで、どう考えても家の中でそんな環境を用意できそうになかったので、会社で契約しているシェアオフィスのソロスペースを使うことにしました。パソコンは会社支給のMacBook Proを使いました。(私用PCはデスクトップだったため)

環境チェックは受験前に行われるのですが、ウェブカメラで部屋の四方と机の上、机の下を写す必要があり、かなり厳格にチェックされます。自分の場合置けたものは、PCとマウス、外部ディスプレイ、ケーブルそしてラベルを剥がしたペットボトルに入れた水です。

また、今回借りたシェアオフィスの部屋の中にコントロールパネル的なものがあり、それを非表示で操作できない状態にする必要がありました。これらの条件の詳細は更新される必要があるので公式サイトでチェックしましょう。

docs.linuxfoundation.org

試験勉強

自分の場合、運のいいことに試験を予約した直後に会社がUdemyと契約し自由に使えるようになりました。そのため、UdemyのCKAとCKADのコースで主に勉強しました。おそらく知識のキャッチアップとしてはこれで十分だと思われます。

一応OpenShiftでそれなりに詳しくkubernetesを知っていたので動画部分を倍速で復習し、Udemyの一貫としてオンラインで提供されるラボ課題を中心に取り組みました。ラボはkodecloudというサービスで提供されており、kodecloud のみを単独で契約することもできるようです。

kodekloud.com

内容的にはkodecloudのラボで十分キャッチアップできるのですが、オンライン端末の操作性は受験環境とは異なります。そこでぜひおすすめしたいのが、受験チケット購入で一緒についてくるkubernetes Exam Simulatorです。

killer.sh

実は購入当初はこれがついてくることに全く気づかず、受験数日前に最終確認するときに気づいてあわてて受けました。My Portalの試験予約ページからアクセスできます。

f:id:tanaka733:20211027214109p:plain

kubernetes Exam Simulatorの最大のメリットは本番とほぼ同じ操作感であることです。例えば、受験環境はWebブラウザ上で提供されるのですが、コンソールは1つしか提供されません*1。kodecloudは気軽に複数コンソールを開けるので注意が必要です。

逆にSimulatorで気をつけないといけないのは、試験につき1セットの問題しか用意されておらず、1回起動すると36時間しかその環境にアクセスできず、1つの試験につき2回までしか環境を起動できないことです*2。なので、これで勉強するのはあまりおすすめできません。例えば、おおよそCKA/CKADに必要な知識は身についているはずだけど...みたいな人は、まず最初にこれでリハーサルしてみるという使い方はできると思います。

また、Simulatorのサイトにも書いていますが、与えられる問題は本番より難しく、量も多いです。自分はドキュメントを検索しながら*3、3時間で全部の問題を解き、7割くらいの得点でした。本番では時終わったあとに十分に見直しをして30分くらい余った状態で試験を終えました。

試験準備

知識のキャッチアップは前項の勉強のところで書きましたが、それ以外にやっておいたほうがよい準備があります。なによりまずImportant Instructionsを熟読しましょう。知らないと受験できなくなることもありますし、試験に役立つ情報もあります。

docs.linuxfoundation.org

本人確認書類

試験直前にウェブカメラごしに見せる必要があります。ローマ字(ラテン文字表記)かつ署名がある本人確認書類だとパスポートが代表的ですが、最近のご時世だと失効した人もいるかもしれません。運転免許証などはローマ字表記がないのでもう1つの書類が必要です。いくつか列挙されていて「Japanese Health Insurance Card」とも書かれていますが、あくまで「有効で、署名があって、ローマ字表記」されている必要があるとのことです。そうでない保険証は使えないと言われました。

ドキュメントのブックマークとドキュメントサイトの構造の確認

CKA/CKADは与えられたkubernetes環境に対して、問題で指示された状態にもっていくタスクが中心です。また、そのときにブラウザで1つだけ追加でタブを開くことができ、以下のサイトとそのサブドメイン(と翻訳が提供されているドメイン)にアクセスできます。

ドキュメントを中心に見ていくことになると思うのですが、注意点は公式サイト上での検索はhttps://kubernetes.io/search/ で提供されるためアクセスが許可されていないということです。また、許可されているサイト内に許可されていないサイトへのリンクが存在しますが、そのリンクをクリックしないことは受験者が自らの責任で求めれています。なので試験中にドキュメントのリンクを踏むことは極力さけたいところです。

そこで、まず受験用にChromeのプロファイルを新規作成した上で、あらかじめ自分が必要なサイトをブックマークにしておきます。自分はSimulatorの問題を解く時に必要だったドキュメントをブックマークにしました。

f:id:tanaka733:20211027215821p:plain

環境設定

CKA & CKAD Environmentのページに利用可能なツールが記載されています。

docs.linuxfoundation.org

まず、kubetlのエイリアスとしてkがbash補完こみで設定されているので、この設定を自分で行う必要はありません。となると、残るはYAML編集です。kubernetes管理にはYAMLが必要不可欠ですが、当然この試験でも大量のYAMLを作成、編集する必要があります。自分は普段はVisual Studio Codeを使うGUI派なのですが試験では使えないので、vimを使うことにしました。が、デフォルト設定だとひどく使いづらいので、以下の.vimrcを設定しました。

set tabstop=2
set shiftwidth=2
set expandtab
set number

この内容も暗記する必要があるので、覚えられる人はもっとたくさん設定してもいいです。また最低限覚えておいた操作は以下の通りです。

操作

  • :wq 保存して終了
  • :w 保存(終了しない)
  • :q! 保存せずに強制終了
  • :set nonumber 行番号非表示(複数行コピーのときに利用)

移動と削除

  • 矢印キー 矢印方向に移動
  • 0 行頭に移動
  • $ 行末に移動
  • :行番号 行番号に移動
  • D カーソル位置から行末まで削除 (ドキュメントから持ってきたYAMLのname: のあとを削除するのに利用)
  • dd カーソル行を行単位で削除(ドキュメントから持ってきたYAMLのいらない部分を削除するのに利用)

使いこなしている人から見ればこの程度???って思われそうですが、このくらいでなんとかなりました。

また1つのコンソールしか開けない代わりにtmuxが利用できますが、普段使っていないので使わないことにしました。実際使えれば便利かなと思う問題はありましたが、大きな問題にはなりませんでした。

試験本番

15分前からアクセスできるようになります。最初に環境チェックが行われて、スムーズにいけば5~10分くらいで完了し試験がスタートします。今回、1回目の受験で部屋のコントトールパネルが問題視されたため、その対応で30分近くかかってから試験がスタートしました。試験時間はスタートしてからカウントされるので影響ないのですが、試験直前に余計な心配ごとが増えるので環境チェックは念入りにしておきましょう。

あと、独り言を含めて話すのは禁止なので、最近のリモートワークで独り言を言いながら仕事をするような人は注意しましょう、

試験問題の言語

試験問題の言語は日本語と英語(あと中国語もあった記憶)から選べます。最初日本語に設定して、翻訳に違和感を感じることなく解いていたのですが、試しに英語に変えたときに意味が全く異なる翻訳になっている部分があることに気づきました。具体的には言及できないのですが正反対といってもよい意味になる誤訳でした。操作したあとに気づき、操作を切り戻す手順がわからずあせったこともあり、以後は問題を英語で表示して解きました。

同日受験

もともと同時受験するつもりはなかったのですが、受験バウチャーの失効まで時間がないので同日受験することにしました。結果的には、試験範囲のかなりが重なっているので全然問題なかったです。

CKADの2021年9月の更新

CKADは2021年9月に内容が更新されています。

training.linuxfoundation.org

内容としては最近よく使われている概念が追加されたということなので、この内容を含んだ教材で勉強すればOKでした。Udemyのコースではすでにこの更新用の章が追加されています。

注意点としては、例えばHelmの項目がありますがHelmのドキュメントは試験中に参照できないので、ある程度のコマンドを覚えておいてコマンドのヘルプとあわせて解く必要があることです。

*1:複数コンソールが必要な場合はtmuxが利用可能

*2:つまり、2回目起動しても1回目と同じ問題が与えられます

*3:本番ではドキュメントの検索は許可されていないことに注意