CKA合格後に考えた、CKAの効率的な勉強方法!!

PAK85_desk15215645_TP_V

先日、CKA(Certified Kubernetes Administrator)に合格したことを報告しました。

今回は、CKA合格後に感じた「効果的・効率的な勉強方法」について紹介します。

この方法を採用した場合、学習時間の目安は「30時間」です。

(この方法で合格できなくても責任はとれません・・・)

Contents

スポンサーリンク
レクタングル大

最初に、、この試験、けっこう難しいよ!

最初に言っておきます。

CKAの試験を舐めてかかると足元をすくわれます!

私は足元をすくわれそうになりました!

ネットでは「別タブでkubernetes.ioを見れるから、想像以上に簡単」とか「思ったより時間が余った」とか記載されてる方もいらっしゃいますが、私は本当に最後の数十秒まで気が抜けませんでした

結果的に84%で合格したので余裕があったのですが、最後の数十秒のコマンドを打ち間違えていたらFailしたかもしれません。そのくらいシビアな試験でした。

ちなみに私はIT試験に慣れてない訳ではありません。CCIEやCISSPも一発合格しています。

なのに、なぜ、CKAはヒヤリとしたか。

試験合格後に色々考察したのですが、結局、私が実施していた「試験対策」が若干ズレていた事が原因だという結論に至りました。

今後受験される方には同様の戦略ミスをしてもらいたくない。そんな思いもあり、この記事を書いています。

実際に合格したあとに考えたものなので、かなり効率がいい勉強方法のはずです。

CKAの勉強戦略、概要

ざっくり、こんな感じです。

  1. (1時間)試験の概要(Handbook)に目を通す
  2. (1時間)Curriculum Overviewに目を通す
  3. (8時間)「Kubernetes完全ガイド」の「重要なポイント」を熟読する
  4. (10時間)Udemyの「Certified Kubernetes Administrator (CKA) with Practice Tests」を視聴・模擬テストを実施する
  5. (3時間)上記に並行して、kubernetes.ioを極める&自分用のbookmarkを整理する
  6. (7時間)Kubernetes Hard Wayを実施する(実際に手を動かす)

これで、かなりイイ線いくはずです!

特に重要なのが、「4.」と「5.」です。Kubernetesをある程度触ったことがあれば「3.」はスキップしてもいいくらいです。

あ、あと、絶対「1.」と「2.」は飛ばしちゃダメです

詳細は後述します。

では、いよいよ詳しく説明していきます。

(1.)試験の概要に目を通す

(所有時間:1時間ほど)

IT試験で最も重要なのに、見過ごされがちなプロセスです。

必ず試験の概要に目を通して「どんな試験か」を把握しましょう。

これを忘れると非効率な勉強方法になって、結果的に遠回りになります。

CKAの場合は、以下に目を通してください(2019年6月時点)。

https://training.linuxfoundation.org/wp-content/uploads/2019/05/CKA-CKAD-Candidate-Handbook-v1.2-.pdf

他の方の受験期にも目を通しましょう。

特に重要な点は、以下です。

  1. 試験時間:3時間
  2. 問題数:約24問
  3. 試験場所:任意(ウェブカメラで試験官が監視)
  4. 出題形式:ハンズオンによる回答形式
  5. 受験料:$300(再試験は1回できる)

試験時間や問題数については後ほど細かく紹介します。

最も重要なのは「ハンズオン形式」だって事。つまり「4択」とか「Yes/Noのどちらか選べ」とかではありません。

実際のKubernetes環境にログインして、課題を解決していく問題が出てきます。

なので、単純に知識を詰め込むだけの勉強方法では、効果は薄いです。

受験料の中にに再試験1回が入ってるのも重要です。その点では、精神的に楽ですね。

(2.)Curriculum Overviewに目を通す

(所有時間:1時間ほど)

非常に非常に重要です。

https://github.com/cncf/curriculum

ここに「試験範囲」の「全て」が記載されています。

逆に言うと、これ以外のトピックを勉強しても、CKAに合格するという意味では非効率です。

なんでこんな事を言ってるかといいますと、後述する「Kubernetes完全ガイド」です。

この書籍は素晴らしい。素晴らしすぎるんです。詳細すぎるんです。

なので、この書籍を読破するのは(CKAに合格する意味では)効率が良くないのです。

その辺は後述します。

とにかくCurriculum Overviewで「試験範囲」を把握することは超重要。

勉強中も、何度か戻って「現在自分が勉強している内容は、Carriculum Overviewのここだな」って感じで理解できるようにしましょう。

(3.)「Kubernetes完全ガイド」の「重要なポイント」を熟読する

(所有時間:8時間ほど)

さて、Curriculum Overviewで「試験範囲」を、ざっくりと把握できました。

いよいよ勉強に入ります。

まずは「Kubernetes完全ガイド」です。こちらはKindleだろうが物理本だろうが構いません。

買いましょう。CKAだけではなく将来のKubernetesプロジェクトにも必須の書籍です。

以下の記事でもレビューしてます。

Kubernetes学習の神本。「Kubernetes完全ガイド」レビュー
Kubernetesを深掘りする為に「Kubernetes完全ガイド impress top gearシリーズ」を購入してみました。 ...

さて、読み始める前に、お伝えしておきたいことがあります。

今回この本を読む理由は、、、「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ができるリソースは、次のうちどれか?

  1. Pod
  2. ReplicaSet
  3. 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の出題範囲に沿った流れで解説されていません(当然です)。なので、毎回「今勉強している内容は、出題範囲のこれかな・・・」と、推測しながら勉強を進める必要があります。

一方、こちらを見てください。

cka6

こちらはUdemyコースのOverviewですが、出題範囲とほぼ100%マッチしているのです。

つまり、このコースはCKA合格に向けた専門コースであり、このコースに目を通せば出題範囲をほぼカバーできる。超効率的なのです。

例えばバックアップのセクションですが、しっかりetcdのバックアップまで解説してくれています。

模擬試験が沢山ある

最高です。神です。

以下を見てください。

cka7

これはコース内容をもう少し詳細にした画面です。

まず、「Image Security」の項目がある点に着目してください。出題範囲の内容と完全一致しています。Carriculum Overviewで「Image Securityって何を指してるの?」と思った人も多いかと思いますが、それも一発です。「Kubernetes完全ガイド」だけだとわからない。

そして「Practice Test」があるのが素晴らしい。

実際の画面はこんな感じです。

cka8

本番さながらのハンズオンができる。

エミュレータではなく、実際のKubernetes環境のようで、実際の問題を回答する以外にも、壊したり試したりできる。

当然回答も用意されてるし、自分の回答が正解かも判定してくれる。

それが沢山用意されている。

しかも、何度でもリトライ可能!

Kubernetes Hard Wayの解説まである

以下を見てください。

cka9

後ほど紹介する「Kubernetes Hard Way」の解説まであります。

Kubernetesの主要コンポーネントはクライアント・サーバ証明書での暗号化通信が基本になるのですが、その辺の内容はTLS証明書の知識がないととっつきにくい。その辺もじっくり解説してくれています。

トラブルシュートのセクションまである

前項にて、この試験は「管理者」として把握すべき知識範囲を問われると説明しました。

トラブルシュートも同様です。「・・・を直せ」という問題も出てきます。

これは「Kubernetes完全ガイド」ではカバーできません。

以下を見てください。

cka10

しっかり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」のドキュメントを参照することが許されています。

>>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を開いてみてください。

>>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環境を作るチュートリアル」です。

>>Kubernetes the hard way

GoogleのGCP環境の使用を前提に書かれています。GCPは無料枠があるので、実質無料でできます。

絶対にやりましょう。上述の通り、Udemyのコースで同じ作業の解説がされているのですが、実際に手を動かすことが大事です。体に染み込ませる作業です。

解説がとても良くできていて、コピペするだけでも出来てしまうのですが、内容の把握が大事です。クライアント証明書・各種設定コンフィグの内容など、意味をしっかり把握しましょう。

これで、いい線いくはず

書いていると熱くなって・・・長々と書いちゃいました。。

一言で言うと「試験範囲把握して、Udemyコースで勉強して、kubernetes.io対策しておけばいい感じ」って事です。

逆に言うと、Udemyコースを参照していなければ、落ちていたと感じています。

余談ですが、CKAに合格した後に、CKAに合格した人たちとセッションの場がありました。イタリア・UK・USなど、様々なリージョンの人達です。

そこで「CKA勉強で最も参考になった教材」についても話したのですが、最も多かったのが、上記のUdemyコースです。決して事前口裏合わせはしていません。結局たどり着くところは一緒なのです。

以上、これが実際に合格した後に考えた、効率の良い勉強方法です。

何度も言いますが、この試験は「Administrator」試験です。リソース作成とかだけではなく、Kubernetesの内部コンポーネントの把握も大事です。

ひたすらkubectlを叩いて(実際はalias k=’kubectl’するのでkだけ)、頑張ってください!

勉強を再会する方へ
スポンサーリンク
レクタングル大
  • このエントリーをはてなブックマークに追加

コメントをどうぞ

メールアドレスが公開されることはありません。

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">