kubernetes

Certified Kubernetes Administrator (CKA) 受験ログ

Certified Kubernetes Administrator (CKA)を取得しました。試験の内容については書いてはいけないことになっているので、どんな準備をしたかを書いておきます。

受験時の試験のバージョンはカリキュラムがv1.11.0(October 2018)で、Handbookはv1.15でした。


経緯

2018年6月上旬、CKAという資格の存在を知り、いずれ受けてみたいと思う

7月上旬、kubeadmでKubernetesをインストールしてみる

8月下旬、「Docker/Kubernetes 実践コンテナ開発入門」を買う

9月上旬、CKAを受けることを決めて会社に受験料を出してもらうための社内プロセスを申請

9月下旬、「Kubernetes完全ガイド impress top gearシリーズ」を買う

11月上旬、Kubernetes The Hard Wayをやってみる

11月上旬、試験日を決める

11月中旬、Linux AcademyのCKA準備コースを実施

11月下旬、受験


自分のバックグラウンド


  • IT業界は10年以上

  • これまでの主な業務はアプリケーション・サーバー製品のテクニカルサポート

  • アプリケーションの開発経験はさほどなし

  • 2017年後半からIBM Cloud Private(IBMのオンプレKubernetes製品)に関わる

  • 2018年はIBM Cloud Privateのデリバリー案件に参画


試験に向けてやったこと


情報収集

以下の情報が特に参考になりました。

他にもググると複数の受験記があり参考にさせていただきました。「Kubernetes完全ガイド impress top gearシリーズ」の著者の方のもあります。


勉強

使用した主な教材は以下です。


書籍

日本語のKubernetes本は複数あり、その中でも「Docker/Kubernetes 実践コンテナ開発入門」と「Kubernetes完全ガイド impress top gearシリーズ」はとてもよい本と思います。前者はDockerに関する内容も多く実践的で終始面白く読めてとても勉強になります。後者はタイトルの通りKubernetesに関して網羅的に詳細に記載されていて情報量がすごい本です。

どちらの本もおすすめで、特に前者の本には個人的にとても感動したのですが、CKAの試験対策という意味では後者がよりおすすめと思います。既にKubernetesについてだいたいわかっている人は、本を読まなくてもこのあと紹介するKubernetes The Hard WayLinux AcademyのCKA準備コースをやっておけばよいと思います。


Kubernetes The Hard Way

いろいろなところでおすすめされている、名前の通りKubernetesをあえて難しい方法でインストールするチュートリアルです。GCP上に公式のバイナリからKubernetes環境を構築します。各コンポーネントはコンテナではなくSystemdサービスとして動かします。

チュートリアル自体はコマンドのコピペでサクサクと進んでしまうので、疑問に思ったところを調べつつ、繰り返しチュートリアルを実施した方がよいと思います。2回実施しました。

GCPを利用したことがなければトライアルで300ドル分が利用できるので、その範囲内で無料で実施できると思います。

以下は自分がやったときのメモです。


Linux AcademyのCKA準備コース

オンラインのコースとしては、Linux Academy意外にもCNCFが提供する公式のトレーニングコースや、UdemyにもたくさんKubernetesのコースがあるようでした。そちらの内容はやってないのでわかりませんが、Linux Academyのこのコースについてはやってみて結果的にはとてもよかったです。

内容は比較的ベーシックなところからなのでよい復習になります。先にKubernetes The Hard Wayをやってしまったけれど、こちらを先にやった方がよかったと思いました。チュートリアルで使う環境にはブラウザベースのターミナルでアクセスしますが(好きなSSHクライアントでもアクセスできます)、試験もブラウザベースのターミナルなので、ターミナルの使い勝手に慣れるのにも役に立ちました。また、特に役に立ったのはコースの最後にある模擬試験で、どんな問題が出るのかのイメージがわきました。手が早く動くように模擬試験は(同じ内容だけど)2回やり、1回目は2時間半かかりましたが2回目は50分くらいでできました。

コミュニティー内に試験を受けた人のフィードバックが書き込まれていたりして、そちらも参考になりました。例えば以下。

なお、上に書いたKubernetes The Hard Wayは最近Linux Academyのコースにもなったようです。オリジナル版しかやっていないので内容はわかりませんが、Linux Academy版の方が解説が聞けていいかもしれません。

Linux Academyはトライアルで7日間無料で利用できるはずで、その範囲でやろうかなと思っていたのですが、会員登録の仕方が悪かったのかいきなり課金されてしまいました。1ヶ月49ドル。自分は別に有料でもよかったのですが、トライアルだけやりたい人は会員登録の仕方に注意した方がよいかもしれません。


kubernenets.ioのドキュメント

この時点までにKubernetes本を何冊か読みましたし、実際にかなりKubernetesに触っていましたし、Kubernetesについてある程度はわかっているつもりになっていたのですが、改めて公式ドキュメントを読むと、読む度にいろいろと発見がありました。しかし、分量が多くとても全部に目を通すことはできませんでした。たぶん半分も読めていないです。試験中に参照できる唯一のリファレンスなので、どこに何があるかをだいたい把握しておくことが重要と思われます。CONCEPTS、TASKSといったカテゴリに分かれており、例えばsecurityContextについて調べようとするとCONCEPTSにもTASKSにも書いてあったりします。どこにあるか把握してないものは検索機能に頼ることになるので、検索の仕方も確認しておきました。


その他の細かい準備



  • Handbookなど公式に提供されている試験のドキュメントをちゃんと読んだ

  • 普段Firefoxを使っているが、試験で使うブラウザがChromeなのでChromeに慣れておいた

  • Chromeでkubernetes.ioの中でもよく見そうなページのブックマークを作っておいた

  • kubernetes.ioでの検索の仕方を確認しておいた

  • APIリファレンスのたどり方を確認しておいた


  • kubectl explainの使い方を確認しておいた




  • kubectl runkubectl exposekubectl createを使ったオブジェクトの作り方に慣れておいた



    • kubectl runではDeploymentだけでなく、--restart=NeverでPodが、--restart=OnFailureでJobが作れます



  • 上記のkubectl run--dry-run -o yamlの組み合わせでマニフェストの雛形を素早く作れるようにしておいた




  • source <(kubectl completion bash)を活用できるように慣れておいた



  • 普段RHELかCentOSを触ることが多かったが、試験の環境はUbuntuなのでUbuntuに慣れるようにした

  • Linux Academyで使われているブラウザベースのターミナルがきっと試験でも同じではないかと思い、使い方に慣れておいた


本番

会社の会議室を借りて早朝6:30から受験しました。リモートで監視されるためにWebカメラが必要ですが、MacBookにもともとついているもので大丈夫です。外部モニターも使いました。試験は3時間で24問。事前に読んだHandbookに問題文のみ日本語も利用可能と書いてあり、英語と日本語どちらで受験するか迷っていましたが、特に選択する場面があった記憶がなく、問題文は日本語でした(ブラウザの言語設定?)。日本語訳が変だと困るなと思っていましたが、特に違和感はなく困りませんでした。自分は集中すると無意識に手を口元に持っていく癖があるようで、試験中、試験官に一度注意を受けました。

こちらの方のように最初の1時間で10問を目標にし、結果的には1時間で12問解けました。後半に1問だけ極端に難しい問題があったのでそれは早々に回答を諦めました。その難しい問題以外を回答し、25分ほど見直しができる時間が残りました。


結果と感想

無事合格。1問を残して他は回答したのでもう少しいい点が取れていると思ったのですが、そうでもありませんでした。合格ラインは74%でした。

Congratulations!  You achieved a passing score on the CKA Exam that you took on 2018-11-20!

You scored 80% for this Exam. A score of at least 74% was required to pass.

この試験は、初期の頃は4時間で30問(好きなだけググってOK)だったようですが、現在は3時間で24問(タブ1つでkubernetes.io/docskubenetes.io/blogだけ見てもOK)というようにルールが変わっており、難易度も変わっているかもしれません。難易度についての感想としては、最初に参考リンクに挙げたこちらの方こちらの方とだいたい同じです。


その他


  • 公式ドキュメントでもLinux Academyのコースでも出てくるbusyboxを使ったDNSのデバッグが上手くいかず、しばらく悩んでいたがbusybox側の問題で1.28.4以下のバージョンなら上手くいった




  • tmuxをおすすめしている受験記が多かったが、使ったことがなく学習コストが高そうだったので諦めたが、特に問題なかった


その後

10日後にCKADも取得しました。