先日、CKA(Certified Kubernetes Administrator)に合格したことを報告しました。
今回は、CKA合格後に感じた「効果的・効率的な勉強方法」について紹介します。
この方法を採用した場合、学習時間の目安は「30時間」です。
(この方法で合格できなくても責任はとれません・・・)
最初に、、この試験、けっこう難しいよ!
最初に言っておきます。
CKAの試験を舐めてかかると足元をすくわれます!
私は足元をすくわれそうになりました!
ネットでは「別タブでkubernetes.ioを見れるから、想像以上に簡単」とか「思ったより時間が余った」とか記載されてる方もいらっしゃいますが、私は本当に最後の数十秒まで気が抜けませんでした。
結果的に84%で合格したので余裕があったのですが、最後の数十秒のコマンドを打ち間違えていたらFailしたかもしれません。そのくらいシビアな試験でした。
ちなみに私はIT試験に慣れてない訳ではありません。CCIEやCISSPも一発合格しています。
なのに、なぜ、CKAはヒヤリとしたか。
試験合格後に色々考察したのですが、結局、私が実施していた「試験対策」が若干ズレていた事が原因だという結論に至りました。
今後受験される方には同様の戦略ミスをしてもらいたくない。そんな思いもあり、この記事を書いています。
実際に合格したあとに考えたものなので、かなり効率がいい勉強方法のはずです。
CKAの勉強戦略、概要
ざっくり、こんな感じです。
- (1時間)試験の概要(Handbook)に目を通す
- (1時間)Curriculum Overviewに目を通す
- (8時間)「Kubernetes完全ガイド」の「重要なポイント」を熟読する
- (10時間)Udemyの「Certified Kubernetes Administrator (CKA) with Practice Tests」を視聴・模擬テストを実施する
- (3時間)上記に並行して、kubernetes.ioを極める&自分用のbookmarkを整理する
- (7時間)Kubernetes Hard Wayを実施する(実際に手を動かす)
これで、かなりイイ線いくはずです!
特に重要なのが、「4.」と「5.」です。Kubernetesをある程度触ったことがあれば「3.」はスキップしてもいいくらいです。
あ、あと、絶対「1.」と「2.」は飛ばしちゃダメです。
詳細は後述します。
では、いよいよ詳しく説明していきます。
(1.)試験の概要に目を通す
(所有時間:1時間ほど)
IT試験で最も重要なのに、見過ごされがちなプロセスです。
必ず試験の概要に目を通して「どんな試験か」を把握しましょう。
これを忘れると非効率な勉強方法になって、結果的に遠回りになります。
CKAの場合は、以下に目を通してください(2019年6月時点)。
他の方の受験期にも目を通しましょう。
特に重要な点は、以下です。
- 試験時間:3時間
- 問題数:約24問
- 試験場所:任意(ウェブカメラで試験官が監視)
- 出題形式:ハンズオンによる回答形式
- 受験料:$300(再試験は1回できる)
試験時間や問題数については後ほど細かく紹介します。
最も重要なのは「ハンズオン形式」だって事。つまり「4択」とか「Yes/Noのどちらか選べ」とかではありません。
実際のKubernetes環境にログインして、課題を解決していく問題が出てきます。
なので、単純に知識を詰め込むだけの勉強方法では、効果は薄いです。
受験料の中にに再試験1回が入ってるのも重要です。その点では、精神的に楽ですね。
(2.)Curriculum Overviewに目を通す
(所有時間:1時間ほど)
非常に非常に重要です。
ここに「試験範囲」の「全て」が記載されています。
逆に言うと、これ以外のトピックを勉強しても、CKAに合格するという意味では非効率です。
なんでこんな事を言ってるかといいますと、後述する「Kubernetes完全ガイド」です。
この書籍は素晴らしい。素晴らしすぎるんです。詳細すぎるんです。
なので、この書籍を読破するのは(CKAに合格する意味では)効率が良くないのです。
その辺は後述します。
とにかくCurriculum Overviewで「試験範囲」を把握することは超重要。
勉強中も、何度か戻って「現在自分が勉強している内容は、Carriculum Overviewのここだな」って感じで理解できるようにしましょう。
(3.)「Kubernetes完全ガイド」の「重要なポイント」を熟読する
(所有時間:8時間ほど)
さて、Curriculum Overviewで「試験範囲」を、ざっくりと把握できました。
いよいよ勉強に入ります。
まずは「Kubernetes完全ガイド」です。こちらはKindleだろうが物理本だろうが構いません。
買いましょう。CKAだけではなく将来のKubernetesプロジェクトにも必須の書籍です。
以下の記事でもレビューしてます。
さて、読み始める前に、お伝えしておきたいことがあります。
今回この本を読む理由は、、、「CKAに合格すること」ですよね?
読破することが目的じゃないのです。
まずは「CKA試験に合格するポイント」を「かいつまんで」読むことが大事。
CKA合格のための読み方(ポイント)
はじめに、Kubernetesの全体像を把握する
Kubernetesが「何なのか」。これがわからなければ話になりませんね。
なので、Kubernetesのコンセプトについては頭にしっかり入れましょう。
(Kuberneteのコンポーネント、Kubernetesで何ができるか?など)
リソースの種類を把握する
Deployment、ReplicaSet、Pod、Services、などなど・・・
「Kubernetes完全ガイド」にはCKAで学ぶべきリソースが、基本的に全て説明されています。
全てのリソースについて「何なのか」・「何のためにあるのか」・「他のリソースとの関連」について把握しましょう。
(例えば「Deployment」->「ReplicaSet」->「Pod」など)
これも理解していないと、CKAを受験する土俵に立てません。
でも勘違いしてはいけないポイントがあります・・・それは
記述(syntax)を覚える必要はない!
効率的に合格する上で超重要です!!
私はこれで無駄に時間を浪費しました!
例えば、Deploymentなどのリソースを作るには「kubectl apply -f」でyamlを指定するのが一般的です。
で、そのyamlには
- apiVersion
- kind
- metadata
- spec
を最低限記述する必要があります。
なので、私ははじめ「apiVersion、kind、metadata、spec・・・」と、何もない状態でDeploymentのyamlを作れるように記憶しようとしていました。
こんな勉強方法は完全に不毛です。
というのも、これらはkubernetes.ioに記載されています。実際の試験で参照できるのでコピペで一発です。
>>Deploymentのページ(kubernetes.io)
重要なのは「全てのリソースの意味・目的を把握すること」で、「リソースを作る記述を記憶すること」ではありません。これを理解していないと、一気に無駄な勉強時間が増えてしまいます。
読むべき章
では、実際にCKA学習と目的として、読むべき章を「重要度を添えて」紹介します。
2章
重要度:高
(但し、Kubernetesに触ったことがある人は流し読みで良い)
Kubernetesのコンセプトが紹介されています。
コンセプトを理解していないと、後の「リソース」とか「コンポーネント(kube-apiとか)」が頭に入ってこないので、熟読して理解を深めておきましょう。
コマンドなどの記憶系が少ない章なので、それなりに楽しめるはず。
3章
重要度:中
「こんな環境の選択肢がある」ってのをざっくり把握するだけでいいかと。
4章
重要度:高
「リソース」について概要が紹介されています。ここで「リソース」という単語に慣れること。これから何度も何度も出てきます。
kubectlの箇所は何度も読み返しましょう。
試験では「ひたすらkubectl」を叩く事になります。
kubectlについて理解していないとお話になりません。
個人的には「alias k=’kubectl’」を習慣づけておいたほうが良いと思います。これだけでも無駄な時間を省けます。(侮ってはいけません)
kubectlでできることを把握しておくことは非常に重要です。
5章-8章
重要度:高
Kubernetesのリソースが解説されています。
それぞれのリソースのコンセプトは絶対に抑えておきましょう。
- どんな時にDeploymentを使って、どんな時にJobを使うか?
- PVの種類、PVCとは?
などなど。
何度も言いますが、こんな問題は出てきません。
RollingUpdateができるリソースは、次のうちどれか?
- Pod
- ReplicaSet
- Deployment
こんな問題が出てきます。
nginxのコンテナで構成されるreplicaが4つあるDeploymentを作ってください。
なので、「それぞれのリソースでできること」・「それぞれのリソースの関連性」の把握が最重要なのです。
8章ではNameSpaceの概念が紹介されています。短い章ですが、重要ですので熟読してください。
9章-13章
重要度:中
Kubernetesで実現可能な機能が紹介されています。
例えば「Podのリソース制限」や「モニタリング」など・・・・
非常に重要なのですが、ここでも記述を全て覚える必要はありません。
あくまでも「こんな機能があるのね。この機能の名前はXXなのね」程度で大丈夫です。
でも、少なくとも目を通してください。
14章-18章
重要度:小
時間がある時に目を通す程度でOK。
19章
重要度:高
非常に非常に重要です。
見過ごされがちですが、重要です。
この試験の名前をもう一度考えてみてください。
Certified Kubernetes Administrator、つまり「管理者」試験です。
Kubernetesの内部コンポーネントを理解している必要があるのです。
- kubelet、etcd、kube-apiなどなど
- kubeadmで構築したとき、systemdで構築したときなど
この辺の理解も必要です。でもこの書籍には詳細が書いていません。
なので、正直、このトピックは「この書籍では内容足りない」と思っています。
その為、後述のUdemyの「Certified Kubernetes Administrator (CKA) with Practice Tests」を強くオススメしているのです。
20章
暇がある時に読めば良い。
ここまでのまとめ
ここまで読み進んだら「Kubernetesのコンセプト」と「各リソースの概念」について把握できたかと思います。
逆に言うと、このレベルを既に理解されてる方は、このステップは飛ばしてもらっても大丈夫です。
でも、次は(私の勉強方法では)必須のステップです。
(4.)Udemyの「Certified Kubernetes Administrator (CKA) with Practice Tests」を視聴・模擬テストを実施
(所有時間:10時間ほど)
これです。
>>Udemyの「Certified Kubernetes Administrator (CKA) with Practice Tests」
なぜこれが重要か?理由を先に述べておきます。
なぜ、Udemyのコースを推奨するか
値段が安い!「Kubernetes完全ガイド」より安い!
1年の半分くらいはキャンペーンをやってます。
私は「Kubernetes完全ガイド」よりも安く購入できました。当然ながらキャンペーン後も利用できます。
なので勉強教材の中でコスパが抜群に良い。
Curriculum Overview(出題範囲)をほぼ網羅している
最高です。神です。
「Kubernetes完全ガイド」はCKAの出題範囲に沿った流れで解説されていません(当然です)。なので、毎回「今勉強している内容は、出題範囲のこれかな・・・」と、推測しながら勉強を進める必要があります。
一方、こちらを見てください。
こちらはUdemyコースのOverviewですが、出題範囲とほぼ100%マッチしているのです。
つまり、このコースはCKA合格に向けた専門コースであり、このコースに目を通せば出題範囲をほぼカバーできる。超効率的なのです。
例えばバックアップのセクションですが、しっかりetcdのバックアップまで解説してくれています。
模擬試験が沢山ある
最高です。神です。
以下を見てください。
これはコース内容をもう少し詳細にした画面です。
まず、「Image Security」の項目がある点に着目してください。出題範囲の内容と完全一致しています。Carriculum Overviewで「Image Securityって何を指してるの?」と思った人も多いかと思いますが、それも一発です。「Kubernetes完全ガイド」だけだとわからない。
そして「Practice Test」があるのが素晴らしい。
実際の画面はこんな感じです。
本番さながらのハンズオンができる。
エミュレータではなく、実際のKubernetes環境のようで、実際の問題を回答する以外にも、壊したり試したりできる。
当然回答も用意されてるし、自分の回答が正解かも判定してくれる。
それが沢山用意されている。
しかも、何度でもリトライ可能!
Kubernetes Hard Wayの解説まである
以下を見てください。
後ほど紹介する「Kubernetes Hard Way」の解説まであります。
Kubernetesの主要コンポーネントはクライアント・サーバ証明書での暗号化通信が基本になるのですが、その辺の内容はTLS証明書の知識がないととっつきにくい。その辺もじっくり解説してくれています。
トラブルシュートのセクションまである
前項にて、この試験は「管理者」として把握すべき知識範囲を問われると説明しました。
トラブルシュートも同様です。「・・・を直せ」という問題も出てきます。
これは「Kubernetes完全ガイド」ではカバーできません。
以下を見てください。
しっかりTshoot専用のセクションがあります。素晴らしい。
ただ、障害は多種多様なので、このセクションと同じ問題が出るとは限りません。しかし、障害箇所に応じた初期確認方法を丁寧に説明してくれているので、非常に汎用的な知識を得ることができます。
特にkubeadmで構築した環境のT-shootは「Kubernetes the Hard Way」でも出来ない経験なので、非常に貴重です。例えば/etc/kubernetes/manifestsの内容とか、非常に重要です。この辺抑えておかないと合格はキツイと思います。
テスト本番で本当に救われました。
「Kubernetes完全ガイド」で得た知識を、Udemyで補う
これがCKA対策としての最短方法だと思います。
まずは「Kubernetes完全ガイド」でKubernetesそのものを理解し、UdemyでCKAの範囲を網羅する。
ぶっちゃけ、「Kubernetes完全ガイド」を飛ばしてUdemyに行っても良い
もしKubernetesに触ったことがある人は、Udemyから初めても良いと思います。
そのくらいUdemyのコースは完成度が高い。
(5.)Udemyと並行して、kubernetes.ioを極める&自分用のbookmarkを整理する
(所有時間:3時間ほど)
実は、これがCKA試験対策の「核」です。
これまでの勉強は、このプロセスのための準備と言っても過言ではありません!
試験中は、Chromeの1タブを使用して「kubernetes.io」のドキュメントを参照することが許されています。
このドキュメントの「どこに何が記載されてるか」を理解してるかしてないかで、この試験の難易度が一気に変わります。
古い話ですが、ドラクエ3のゾーマを倒すシチュエーションを想像してください。
- 光の玉=Udemyコース
- ベホマ=kubernetes.ioの内容把握
そのくらい重要な要素だと理解してください。
何度も言いますが、この作業は極めて重要です。
ただ、闇雲に読もうとしても時間がかかりすぎます。試験は1分を争う状態になるので、試験で初めて真面目にkubernetes.ioを開いても手遅れです。
試験時間は3時間、問題数は24問ほどです。単純計算して1問に付き7.5分です。
この7.5分をもう少し分解してみると。
- 実際にコマンドを打つ(3分)
- 結果が正しいか、確認の為にコマンドを打つ(2分)
こんな感じだと思います。本番ではChromeブラウザでのターミナルなので、使い勝手が非常に悪い。コピペも難しい。tmuxなどがなければ、1コンソールしか開けない劣悪な状況です。なのでこのくらいかかるはず。
となるとkubernetes.ioに避ける時間は2分程度です。事前に参考の箇所を把握していないと、実質無理です。
なので、勉強時に重要なポイントを解説します。
まずは、慣れる
まず、kubernetes.ioを開いてみてください。
はじめは、どこに何が記載されてるのか、一切わからないですよね。
なので、30分くらいかけて、とりあえず感覚を養ってください。
30分くらいすると、以下を感覚で理解できたはずです。
- 「Learn Concepts」が有用だ
- 「View Tasks」が有用だ
- 検索もできるようだ
検索はできますが、kubernetes.io以外もヒットしています。そちらを表示すると違反になるので注意してください。
まずは「Concepts」・「Tasks」と検索をざっくり使用してみて、サイトに慣れましょう。
Udemyのコースを参照しながらkubernetes.ioを使う
非常に重要です。
前述の通り、Udemyコースは「試験範囲に沿って解説がされてる」のです。
なので、Udemyコースを進めながら、kubernetes.ioのどこに該当トピックが記載されているかを把握することで、試験時に効率的にピンポイントで回答に導くことができます。
時間がない方はUdemyの全てを見てられないかもしれません。
そんな時は、少なくとも「模擬テスト時に、kubernetes.ioを使用する」事だけはしてください。
これだけで試験さながらのシミュレーションができます。
Bookmarkする
私が確認した時点では、kubernetes.ioのセクションをbookmarkしても良いと事前回答がありました。
なので、上記の作業を行っているときに、自分でわかりやすいBookmarkを作成しました。
例えば「etcdでetcdctlの使用」とか「opensslでの証明書の確認方法」など、全部kubernetes.ioに書いてます。
それらを試験本番中に探すのは至難の技です。
ひたすらひたすらBookmarkです。
(6.)Kubernetes Hard Wayを実施する(実際に手を動かす)
(所有時間:7時間ほど)
最後の仕上げです。
Kubernetes Hard Wayとは「kubeadmを使用せずに、ゼロからkubernetes環境を作るチュートリアル」です。
GoogleのGCP環境の使用を前提に書かれています。GCPは無料枠があるので、実質無料でできます。
絶対にやりましょう。上述の通り、Udemyのコースで同じ作業の解説がされているのですが、実際に手を動かすことが大事です。体に染み込ませる作業です。
解説がとても良くできていて、コピペするだけでも出来てしまうのですが、内容の把握が大事です。クライアント証明書・各種設定コンフィグの内容など、意味をしっかり把握しましょう。
これで、いい線いくはず
書いていると熱くなって・・・長々と書いちゃいました。。
一言で言うと「試験範囲把握して、Udemyコースで勉強して、kubernetes.io対策しておけばいい感じ」って事です。
逆に言うと、Udemyコースを参照していなければ、落ちていたと感じています。
余談ですが、CKAに合格した後に、CKAに合格した人たちとセッションの場がありました。イタリア・UK・USなど、様々なリージョンの人達です。
そこで「CKA勉強で最も参考になった教材」についても話したのですが、最も多かったのが、上記のUdemyコースです。決して事前口裏合わせはしていません。結局たどり着くところは一緒なのです。
以上、これが実際に合格した後に考えた、効率の良い勉強方法です。
何度も言いますが、この試験は「Administrator」試験です。リソース作成とかだけではなく、Kubernetesの内部コンポーネントの把握も大事です。
ひたすらkubectlを叩いて(実際はalias k=’kubectl’するのでkだけ)、頑張ってください!
コメント