Kubernetes完全に理解した()
CKADを受験したので受験記的なやつ. 個人の感想. n番煎じ.
CKAD受験の流れ
受験の経緯
CKADはKubernetes
クラスタでアプリを開発したり動かしたりする能力を証明する公式の認定試験.
他にもクラスタ管理者向けのCKAっていう試験もある.
去年の10月くらいから業務でKubernetes
を半年くらい使っていてだんだん勉強のモチベーションが保てなくなってきたので, 目先の目標として受験することにした.
試験対策
7月に受験を決めてから1ヶ月の間, 普段の業務の他に以下の教材を使って試験対策をした.
Kubernetes完全ガイド
基本はこれ.Pod
とかDeployment
とかの基本的なk8s
リソースについてしっかり勉強できる.
一通り読んだけど, 11章以降のクラスタ自体の操作とかの内容はあんまり試験に出なかったように思う. 13章(セキュリティ)の内容はちょっとだけ出たかも.
最近第2版が出たらしい. 試験に関係なく持っておくと役に立つ.CKAD-exercises
CKADの問題を解くための基本的なリソース操作などの練習問題集.
実際の問題とは少し違うけど, 基本操作はこれで一通り練習できる.
2周くらいやってコツをつかんだ.A Cloud GuruのCKADコース
本番の対策用. 有料(7日間無料).
HANDS-ON-LAB, 特に Practice Exam の問題は本番の問題にけっこう近かったように感じる.
Kubernetes完全ガイドを読んでいるのでハンズオン以外の内容は飛ばしても問題なかった.
1週間だけ無料なので, 試験直前に登録して終わったあとにすぐ解約した.
申し込み
英語イキリオタクだけど母語は日本語なので, できるだけ合格の確率を上げるために日本語で受験できるという触れ込みのCKAD-JPを受けることにした.
…が, 後述のように実際は申し込みの手順も試験官とのやり取りも全部英語だったので普通のCKADを受けたほうがよかったのかも.
申し込みにはLinux Foundationとpsiのアカウントが必要になるけど, 1つのGoogleアカウントで全部登録できるのでかんたんだった.
やることは名前とかの情報を入力して, クレカで受験料を払って, 試験日を予約するだけ.
試験日の予約は結構空きが少なかったので, もっと余裕を持って予約すればよかった.
受験用のブラウザはChromeがおすすめで, 事前に拡張機能をインストールしておく必要がある.
さらに念の為にCompatibility Checkをやっておくと安心.
試験当日
試験は自分の部屋で受けた.
試験開始の15分前くらいにmy portalで 試験開始 的なボタンを押すと勝手に画面が切り替わって, 試験官がライブチャットで以下の内容を指示してきたのでその通りにした.
- 拡張機能を使って画面とカメラ, マイクを共有しろ(顔を映せ)
- 使ってるOSを教えろ
- 強制終了メニュー(
⌘+⌥+Esc
)を表示して起動中のアプリを見せろ(ブラウザ以外消せ) - カメラ越しに身分証(パスポートとクレジットカード)を見せろ
- 机の上のものを全部片付けろ
- カメラを持ったまま部屋を一周しろ
- 試験中はカメラに顔が映るようにして目線を画面から外すな
要はオンライン試験なのでカンニングができないように注意しろってことだと思う.
特に片付けのタイミングで, “鼻をかむための箱ティッシュは試験中使えないよ!” って言われたのが面白かった.
鼻炎だから無いと辛かったんだけどカンニング対策なので許されず, 最終的に無地のハンカチを胸ポケットに入れて使うことになった.
ちなみに, CKAD-JPで受験したのになぜか試験官とのやりとりは最後までずっと英語だった.
とはいえ音声会話ではなくテキスト形式なのでそんなに困ることもなかった.
最初の試験官とのやりとりが終わったあとはすぐに試験問題の画面に切り替わるので, あとは問題を解くだけだった.
残り時間が15分になったときと試験終了時に再度試験官とやりとりが発生したけど, 特に何もなくおわった.
試験について
具体的な問題の内容を公開するのは許されていないので, 簡単なメモ.
試験用の画面はこんな感じ
左側に問題, 右側にターミナルの画面. Katacodaっぽさがある.Kubernetes
クラスタとかkubectl
はすでにセットアップされていて, 問題の内容をコマンドラインでガンガン解いていく感じ.tmux
が使えるので, 自分はターミナルの画面を左右分割して片方でkubectl -h
とかkubectl explain
の内容を表示しながらもう片方で操作するようにした.
この画面以外にも1タブだけ公式Docsを開くことが許されてたけど, そこまで使わなかった. というかDocsをちんたら調べてる暇はなかった.試験時間は2時間で問題数は19問
"~のimage
を使ったPod
を作れ. それをXX番ポートで公開するService
を作れ" とか,
"~のnamespace
に壊れているPod
があるのでそれを探して修復しろ" 的な問題が立て続けに来た.
問題を解く順序は決められていないので, 飛ばした問題をあとから解き直したりもできた.問題文は英語, 日本語, 中国語が自由に切り替えられる
…が, 日本語の翻訳が割とガバめなのと普段英語で覚えてる用語がカタカナになっただけでかなり混乱したので, 結局最後まで英語で解いた.スピード勝負
約20問を2時間, 平均で約6分/1問のペースで解かなければならなかった.
いちいちYAML
を0から手で書いていては到底間に合わない ので, kubectlでサクッと作るか, 公式Docsからコピペするのが良さげ.
すでに存在するリソースを修正するような問題も出るので,kubectl edit
やkubectl get -o yaml
とかも使う必要があった.
まさにYAML
地獄.namespace
が指定されている問題とそうでない問題がある
これは結構重要.
リソースを操作するnamespace
が指定されている問題がある一方, 何の指定もない問題もあったのでちょっとだけ混乱した.
何も指定されていない場合はdefault
で操作したけど, 結果を見るにそれでよかったっぽい.複数のクラスタを操作する必要がある
これも重要だけど, どの問題も最初にcontext
を切り替えるコマンドが指定されているので忘れずコピペすればそこまで問題にはならなかった.
結果
結局時間はギリギリで, 最後の19問目を解いている途中で時間切れになった.
結果は試験終了後36時間以内に届くことになっていたが, 結構待たされて34時間後にメールで結果が届いた.
結果は…?
合格だった. 🎉
合格点66点に対して得点は91点だったので, そこそこ余裕を持って合格できたんじゃなかろうか.
たぶん100点満点なので解ききらなかった最後の1問以外はほとんど正解. だったらいいな.
おわり
というわけでCKADに合格した.
合格したから会社の給料が上がるとか特にそういったことはないけど, なんかうれしい.
とりあえずYAML
耐性は大幅に上がったはず.
ようやくKubernetes
完全に理解した()のでこの勢いで次はCKAも獲りたいけど, もっと勉強する必要がありそう…