2022年10月にKubernetes技術者認定のうち、最も著名な認定「認定Kubernetes管理者(英記:Certified Kubernetes Administrator)」略して「CKA」の認定を取得しました。
本レポートでは、CKA認定の詳細、受験方法や受験を通じて感じたことなどをご紹介します。
目次
Kubernetesはクラウドを含めた仮想空間におけるオペレーティングシステムのような機能を果たす技術で、多くのパブリッククラウドがKubernetesのマネージドサービスを提供し、ベンダーのサービスと連携した使いやすい機能を提供しており、Kubernetesは業界のグローバルデファクトスタンダードになっています。
CKAはCertified Kubernetes Administratorの略称で、日本名は「認定Kubernetes管理者」となります。
試験を提供しているThe Linux Foundation(以下Linux Foundation)の公式サイトではCKAを以下のように説明しています。
CKAはKubernetes管理者の責任を遂行するスキル、知識、および能力を備えていることを保証する認定です。
CKA試験は、Kubernetesエコシステムの開発を支援するための継続的な取り組みの一環として、Linux FoundationとCloud Native Computing Foundation(CNCF)によって作成されました。
試験は監督官付きのオンラインのみ。日本語を話す監督官の下で試験を受けたい場合はCKA-JPを選択します。
CKA-JPの受験クーポンは日本におけるパートナーであるLPI-Japanからも提供されており日本円で決済が可能です。
以下、LPI-Japanの公式サイトから引用しますが、CKA-JAによって証明されるスキルは以下の通り。
「認定Kubernetes管理者 (CKA-JP)」の認定を保有することは、基本的なインストールを実行できるだけでなく、本番環境レベルのKubernetesクラスタを構成および管理する機能が扱えることの証明となります。具体的には、Kubernetesのネットワーキング、ストレージ、セキュリティ、メンテナンス、ロギングとモニタリング、アプリケーションのライフサイクル、トラブルシューティング、APIオブジェクトプリミティブ、エンドユーザーの基本的なユースケースを確立する機能などの主要な概念を理解していることの証明です。
対象者は以下の通り。LPI-Japanには情報がないので、Linux Foundationからの引用です。
Kubernetes管理者、クラウド管理者、およびKubernetesインスタンスを管理するその他のITプロフェッショナル
CKA認定試験突破に必要なのは、Kubernetesの主要な概念に加えて、管理者として本番環境での実践と問題解決能力です。
CKA日本語版(CKA-JP)の受験クーポンはLPI-Japanが運営する公式サイト経由で円建てで購入できます。
CKA認定のためのトレーニング(LFS-JP)も日本語化されて一緒に販売されています。
なお、受験者サポートを目的に受験結果はLinux FoundationからLPI-Japanに共有されます。この共有を了承できない場合は試験の受験ができませんのでご注意ください。
価格は以下の通り。
内容 | 価格 |
---|---|
受験用クーポン:認定Kubernetes管理者(CKA-JP/日本語監督版)試験 | 53,750円 |
トレーニング用クーポン:Kubernetes管理者(LFS258-JP)/KCNA/KCNA-JP準備 | 41,250円 |
パック用クーポン:CKA-JP受験+トレーニング(LFS258-JP) | 81,250円 |
受験用クーポンはLinux Foundationのサイト経由でも購入できますがドル建てで購入することになります。ドル建てでは430ドルです。
2022年10月31日現在の為替レートでは430ドルが64,000円弱ですので、LPI-Japanクーポンのほうが確実に割安なのですが、クーポンの価格は為替レートの変動を受けて予告なく変更される可能性があるので注意が必要です。ちなみに過去に2回値上げが実施されています。
2022/11/14追記:2022/11/1付で各種クーポンが値上げされているのを確認しました。価格は以下の通りです。今後も為替レートの変動で価格が改定されることが予想されます。にしても高いですよね…。
内容 | 価格 |
---|---|
受験用クーポン:認定Kubernetes管理者(CKA-JP/日本語監督版)試験 | 60,200円 |
トレーニング用クーポン:Kubernetes管理者(LFS258-JP)/KCNA/KCNA-JP準備 | 46,200円 |
パック用クーポン:CKA-JP受験+トレーニング(LFS258-JP) | 91,000円 |
以降の内容は、LPI-Japanが扱うCKA-JPを受験するという前提で書かれております。Linux Foundationで直接申し込んだ場合とは手続きが異なるところがあるのでその点はご承知おきください。
パソコンを使ったオンライン経由での受験のみとなります。
Linux Foundationの試験は米国のPSIが提供しているシステムを使用しており、Webカメラ経由で試験官に監視された状態で受験します。
受験場所に決まりはありませんが、受験可能な環境については前提条件があり、その条件が満たされていない場合は受験ができません。
受験にはPSIのシステムが問題なく利用できるスペックを満たしたWebカメラ付きのパソコン、またはパソコンと単体Webカメラの組み合わせ、そしてシステム配信に耐えうるネットワーク環境が必要です。
自分が受験する場所と使用する機材が決まったら、事前にチェックツールを使ったスペックチェックをしておきましょう。
WebDelivery Compatibility Check(PSI)
試験の形式については、LPI-JapanでもLinux Foundationでも「コマンドラインで問題に回答するパフォーマンスベース」と記載があります。
もう少しわかりやすく言い換えるとすれば、クラウド上に構築された仮想のクラスターをLinuxベースのリモートデスクトップ環境を実際に操作して課題をクリアしていく流れになります。
デスクトップはUbuntuベースで、大半の操作はターミナルになりますが、WebブラウザでのKubenetesの公式ドキュメント閲覧や、テキストエディタの使用も可能です。
問題数は15~20問程度とされております。ちなみに私の場合は17問でした。
試験時間は2時間です。
出題対象領域と出題率の割合は以下の通り。
- クラスタのアーキテクチャ、インストール、構成:25%
- サービスとネットワーク:20%
- トラブルシューティング:30%
- ワークロードとスケジューリング:15%
- ストレージ:10%
それぞれの領域に対する内容は以下の通り。出題率が高いトピックでソートしています。
トラブルシューティング 30%
- クラスタとノードのロギングを評価する
- アプリケーションの監視方法を理解する
- コンテナの標準出力と標準エラー ログを管理する
- アプリケーションの障害のトラブルシューティングを行う
- クラスタ コンポーネントの障害のトラブルシューティング
- ネットワークのトラブルシューティングを行う
クラスタのアーキテクチャ、インストール、構成 25%
- ロール ベース アクセス コントロール(RBAC)を管理する
- Kubeadmを使用して基本的なクラスタをインストールする
- 高可用性Kubernetesクラスターを管理する
- Kubernetesクラスタをデプロイするためのインフラをプロビジョニングする
- Kubeadmを使用してKubernetesクラスタでバージョン アップグレードを実行する
- etcdのバックアップと復元を実装する
サービスとネットワーキング 20%
- クラスタ ノードのホスト ネットワーク構成を理解する
- Pod間の接続を理解する
- ClusterIP、NodePort、LoadBalancerサービス タイプとエンドポイントを理解する
- IngressコントローラーとIngressリソースの使用方法を理解する
- CoreDNSの構成方法と使用方法を理解する
- 適切なコンテナ ネットワーク インターフェイス プラグインを選択する
ワークロードとスケジューリング 15%
- デプロイメント、およびローリング アップデートとロールバックの実行方法を理解する
- ConfigMapとSecretを使用してアプリケーションを構成する
- アプリケーションのスケーリング方法を知る
- 堅牢な自己修復アプリケーション デプロイメントの作成に使われるプリミティブを理解する
- リソース リミットがPodスケジューリングにどのように影響するかを理解する
- マニフェスト管理と一般的なテンプレートツールの認識
ストレージ 10%
- ストレージクラス、永続ボリュームを理解する
- ボリューム モード、アクセス モード、およびボリュームの再利用ポリシーを理解する
- 永続ボリューム要求プリミティブを理解する
- 永続ストレージを使用したアプリケーションの構成方法を知る
LPI-Japanでは、CKA受験の前提知識として、
Linuxシステムと基本的なアーキテクチャへの理解 (LinuCレベル2相当)
をあげています。ちなみに、LinuCレベル2は、
仮想環境を含むLinuxのシステム設計、ネットワーク構築において、アーキテクチャに基づいた設計、導入、保守、問題解決ができる技術者
の認定資格です。実務よりで問題解決能力が問われるという点では正しいと思います。CKAに限らず、Kubernetesの管理には特にネットワーク関連の知識が重要です。
さらに、ターミナルやテキストエディタ(vi/vim)をスピード感をもって使いこなせるかどうかも大きく左右する試験です。
ちなみに、Linux Foundationの公式には特に前提知識についての記載はありません。
受験クーポンを購入しただけでは受験はできません。受験クーポンの利用手続きが必要です。
クーポンの種類によって利用手続きが異なるので、以下のLPI-Japanの「申込手続き」ページで手順に従って手続きを進めましょう。
Kubernetes技術者認定(CKA-JP/CKAD-JP/CKS-JP/KCNA-JP)申込手続き
初めて受験する場合は、LPI-JapanのEDUCO-IDとLinux FoundationのThe Linux Foundation IDの取得が必要になります。
受験者ハンドブック(Candidate Handbook)を事前に読んだ上で試験に臨むようにとありますが、ハンドブックは英語版しかありませんので自動翻訳などの機能を利用しましょう。
もろもろの準備が終わったら、受験の予約をします。予約はLinux Foundationのマイポータルから行います。
マイポータルのメニューは英語です。「Exam Preparation Checklist」で順を追って確認作業を進めて受験日時を決めます。
項目名 | 内容 |
---|---|
Agree to Global Candidate Agreement | Linux Foundation グローバル認証および機密保持契約への同意 |
Verify Name | 名前の確認(日英どちらでも可能) |
Select Platform | 受験環境の選択 |
Schedule an Exam | 受験スケジュール(画面起動後、30分経過したら申込が可能になります) |
Check System Requirements | システムの要件確認(=PSIシステムチェック) |
Get Candidate Handbook | 受験者ハンドブックの確認 |
Read the Important Instructions | 重要な指示の確認 |
Take Exam | 受験開始(受験当日の予約時間30分前に有効になります) |
基本的にすべてが英文なのでブラウザの翻訳機能を活用して内容を確認しましょう。
機密保持契約で試験問題や解答を口外することは禁止されます。LPI-Japanの他の試験でも同様の機密保持契約が必要になります。
Verify Nameという項目で自分の名前を入力するのですが、ここを漢字表記にした場合は、試験当日に自分の名前が漢字表記になっている証明書を提示する必要がありますので注意してください。
受験日はScheduleボタンを押すと別ウインドウでPSIのサイトに飛ばされますので希望日時を指定しましょう。基本的には自分の都合で決められますが、対応できる監督官のスケジュールもあるようなので、希望日時で受験できるとは限りません。なお受験日は予約日時の24時間前までであれば変更やキャンセルが可能です。
システムチェックは事前に行えるものと同じです。何度でもチェックはできるので受験用のパソコンを変更した場合などに利用するとよいでしょう。なお、受験当日も試験開始前のもろもろの確認ステップの中でも再度システムチェックができます。
最後のTest Examは、その上までの項目の確認がすべて完了して初めて有効化され、試験当日の30分前に試験を開始するためのボタンが有効化されます。
オンライン受験は条件さえクリアできていればどこからでも受験できるメリットはあるのですが、条件がクリアできる場所を見つけるのは結構大変です。
今時は時間貸しの会議室やオフィスなども利用できますが、慣れない場所での受験はなにかとプレッシャーがかかるでしょう。また、ネット環境の確認のためには事前に利用する必要も出てくるでしょう。当然その分費用もねん出しないといけません。
ということで、自分の場合は自宅で受験することにしました。自分の部屋はモノであふれているので絶対に条件があわないので機械系のモノが最も少ない寝室で受験することにしました。それ以外に、KCNA受験で慣れたということもあります。
KCNA受験時同様、窓際にあるタンスを机代わりにしました。Webカメラに映る鏡台や衣服収納に使っている押し入れは、手持ちのリモート会議用グリーンスクリーンやタオルケットなどで隠しました。たんすの上のテレビも床に置いてタオルケットで覆っておきました。
壁や天井もチェックされるのでできるだけ何もない状態が望ましいです。ポスターなど貼ってある場合は外しておきましょう。
試験当日は、受験する部屋を密室にする必要があります。当然、試験中に自分以外の人が部屋に入ってこないようにする必要があります。同居している人がいる場合は協力してもらいましょう。ペットなどを家の中で飼っている場合も注意が必要です。
予約時間の1時間ほど前までに受験する部屋の環境を整えておきました。
30分前から試験が開始できます。厳密にはマイポータルのexam(試験)ボタンが有効化され、必須のソフトウェアでる「PSI Secure Browser」をダウンロードして起動するところから始まります。
PSI Secure Browserを起動すると英文の規約が表示されるので了承します。日本語試験でもローカライズされていない部分が多いので初めての方は戸惑うかもしれませんが、ハンドブックからしてローカライズされていない現状からして、受験する側が合わせるしかありません。
試験開始前に、有効期限の切れていない顔写真付きの身分証明書の提示が求められます。Webカメラを通じて自分で撮影ボタンを押します。撮影された画像はのちに試験監督官によって確認され、視認できない場合などは監督官に再度撮影するように促されます。
利用可能な証明書は以下の通り。
条件 | 内訳 |
---|---|
1点で済むもの | パスポート(日本国政府発行) |
2点の組み合わせとなるもの | 運転免許証(日本国政府発行) + 健康保険証 |
運転免許証(日本国政府発行) + クレジットカード等(有効期限内&ローマ字氏名印字あり&自筆署名あり) | |
マイナンバーカード + クレジットカード等(有効期限内&ローマ字氏名印字あり&自筆署名あり) | |
マイナンバーカード + 健康保険証 |
自分の場合は、以前受験したKCNAが漢字名登録で運転免許証がWebカメラのピントがうまく合わずにピンボケしてしまいパスポートに切り替えて事なきを得たこともあるので、CKAでははじめからローマ字名登録にしてパスポートを提示しました。
CKAの受験対策教材は定番と呼ばれるものがいくつか存在します。自分の場合、それら定番以外にも結構な数の教材を試しましたので厳選してご紹介します。
おススメ度は最大が★5とします。
Kubernetesドキュメント
Kubernetesドキュメント (おすすめ度:★★★★★)
これは絶対外せません。試験中に閲覧できるのがこの公式ドキュメントだからです。
日ごろからこのドキュメントを見る癖をつけておくことをおすすめします。
以下でご紹介しているオンライン教材でも、公式ドキュメントを参照し、テンプレートになるyamlファイルなどをコピペして利用することで課題をクリアするパターンがとても多いです。
出題範囲の内容に沿って、自分なりに公式ドキュメントの対応ページをピックアップするなりブックマークするなりしておくとよいと思います。
2022年6月以前の試験であれば、ブックマークの活用も可能だったのですが、今の試験ではそれができなくなりました。代わりに問題ごとに参考になる公式ドキュメントへのリンク情報が提供されるようになっています。
であればブックマークしておく意味はないのでは?と思うかもしれませんが、普段から公式ドキュメントを見慣れておくことが重要ですし、実試験で提供されるリンク先もおのずと見慣れたページになるはずです。
公式トレーニング
Linux Foundationが提供している日本語で利用できるCKA専用の公式オンライン教材です。
Kubernetes 基礎(LFS258-JP)(Linux Foundation)(おすすめ度:★★)
このコースでは受講者自身による実機環境の構築に加え、クラウド環境での演習テストも推奨しており、受講費用に加えてクラウドサービス利用料についても考慮する必要があります。コースはクーポンの登録日から12か月間、無制限にアクセスできます。
コースの学習目標
- Kubernetes の歴史と進化
- 高レベルのアーキテクチャとコンポーネント
- API、APIを構成するのに最も重要なリソースとその使い方
- アプリケーションのデプロイと管理の方法
- 今後提供される生産性を加速する機能
コースの活用には以下のトピックについて知っている必要があるとしています。
- Linuxに関する十分な理解
- コマンドラインについて精通していること
- パッケージマネージャについて精通していること
- GitとGitHubについて精通していること
- Linux サーバまたは Linux デスクトップ/ラップトップへのアクセス
- あなたのマシン上の VirtualBox もしくは Public クラウドへのアクセス
コースの内容
- Kubernetesの基本
- インストールと設定
- Kubernetesアーキテクチャ
- APIとアクセス
- OPIオブジェクト
- デプロイメントを使用した状態の管理
- ボリュームとデータ
- サービス
- イングレス
- スケジューリング
- ロギングとトラブルシューティング
- カスタムリソース定義
- ヘルム
- セキュリティ
個人的な感想
認定試験の開発チームとトレーニングの開発チームは強固なファイアウォールで分離されており、トレーニング開発チームが認定試験の開発、管理、採点に対して直接的に関わることはないとトレーニングの冒頭で明言しています。
こうした自発的なファイアウォール適用があるからこそ、第三者機関や組織が教材などを独自に開発できるということです。こうした理由からも、公式トレーニングだからといってこの教材だけで合格できると思わない方が良いです。
実際のところ、章のはじめの概要紹介動画やデモ動画はあるものの、大半が静的資料を読み進めていくスタイルです。Kubernetesを操作する演習もPDFによる指示にしたがうだけ。トレーニングのシステム上で動いているものは章末のナレッジチェックだけで、簡易な選択式の問題が出題されるだけです。
その演習はGoogle Cloudで動作するUbuntuインスタンスを使ってテストされています。内容的にはベンダーニュートラルをうたっており、AWSでもローカルハードウェアでも仮想マシン上でも動作するとしていますが、いずれにしてもKubernetes環境を自身で調達・構築する必要があります。
Linux未経験の初心者であれば、3章の演習、Kubernetesのインストール(=クラスタセットアップ)でつまずくでしょう。インストールについてはCKAで問われる内容ではあるのですが、序盤にしてこの課題はかなりハードワークです。学習のための環境を最優先したいとはわかるのですが、PDFの視認性が今一つで、コマンドのコピーも一苦労です。
個人的には、通常の学習はminikubeやkindなどのツールを使うか、Killercodaなどのクラウド環境を使って4章以降のカリキュラムを進め、余裕があれば3章つまりインストールの演習にチャレンジすればよいと思います。
教材のアップデートは適宜行われているようですが、2022年10月末の段階で2022年7月のタイムスタンプが付いていました。先述のインストール演習もv1.22.xを指定していたりします(2022/10末現在でv1.25.3が最新)。
内容的には出題範囲を網羅的にカバーはしているものの、CKAで最も重要となるトラブルシューティングの演習が用意されていない点が大きなデメリットになっています。
コースの最後の最後に高度なスキル練習があるのですが、正解の解説もなく、最後はトラブルシューティングを繰り返せと書かれているだけ。全体を通じて達成感が感じられない演習を強いられるだけという印象でした。
とはいえ、合格後に改めて教材を見直してみると、Kubernetesについてある程度の知識を身に着けたうえで利用するという前提に立てば、よい教材なんだろうなとは思います。出題範囲はもれなくカバーしているし、この教材の高度な演習を楽々こなせる実力が身につけば、CKAは難なく突破できると思います。
静的教材に加えてKodeKloudのようなオンライン演習機能が利用できればよりよい教材になると思います。他の教材に比べて段違いに高額な点からも、そうすべきなのではないかと感じた次第です。
ということで、おすすめ度的には★二つ程度。会社から補助が出るとかであれば目を通しておくに越したことはないですが、群を抜いて高額な教材なので予算に余裕がないのであれば無理に受講する必要はないと思います。
オンライン
CKA Certification Course – Certified Kubernetes Administrator
Certified Kubernetes Administrator (CKA) with Practice Tests(Udemy)(おすすめ度:★★★★★)
CKAやCKADの受験対策でもっとも支持されているKodeKloud Trainingが開発したハンズオン対応トレーニングコース。
KodeKloudはサブスク型で英文の翻訳機能がないため、定期的に開催されるUdemyのセールを利用してコースを買い切りで購入するとよいでしょう。
Udemyの一連のKubernetes関連コースの良いところは、動画解説に加えてKodeKloudのLinux環境にシームレスに接続して演習ができることです。
Kubectlコマンドに関する設問もあるため、Kubernetesが動作する環境でコマンド入力を試すことは重要になります。
もちろん、自分で学習環境が用意できれば問題ないのですが、Webブラウザだけで利用できるのでとにかくお手軽です。
Udemy版も全編英語ではありますが、自動翻訳機能が利用できるので英語が苦手という方でもあらかたの内容は把握できると思います。
CKA-JP試験は当然日本語対応なのですが、過去に受験したKCNAでは日本語の翻訳精度に難がある問題も見かけました。
Udemyのコースで英語による専門用語に慣れておくことのメリットがここにあります。実際の試験では問題の表示を英語に切り替える機能がありますので、日本語の意味がおかしいと感じた時に英語の記述を確認することで正しい回答が導きだせることがあります。
このトレーニングの評価が高いのはセクション内で利用できるハンズオンコンテンツの豊富さです。インターフェースこそ若干異なるものの、出題スタイルが実試験に近いので試験に慣れる体験ができることからも利用価値が高いです。加えて、ヒントや丁寧な解説動画は理解を深めるのに役立ちます。
最後に設けられたLightning LabsやMock Examは実際の試験でも出てくる内容が網羅されています。実試験では時間内に多くの課題をこなす必要があるので、試験のシミュレーションとしても利用価値があります。
各セクション内に設けられた練習問題は何度でも繰り返し利用できるので、苦手なセクションがあれば納得がゆくまでチャレンジできるのがありがたいです。
とにもかくにも、Kubernetesの実環境が無くてもWebブラウザだけで様々な演習に取り組めるのがこの教材の最大のメリットです。
個人的なおすすめ度はマックスの★★★★★です。ぶっちゃけ、この教材を何週かするだけでも実試験でよいスコアが得られるのではないでしょうか。それぐらいよくできた教材です。
Killer Shell(おすすめ度:★★★★)
Killer Shellが提供しているクラウドベースの模擬試験です。29.99ドル(税別)で2回の利用が可能。
CKAクーポンをLinux Foundationに登録すると、この模擬試験を2回受験できる権利が自動的に付与されます。
実際の試験とよく似たユーザーインターフェイスを採用した25問の課題(問題)が提供されます。2時間の試験時間が経過すると自動的にスコアが表示されます。模試環境へのアクセスは起動から36時間に制限されています。
実際の試験よりも難易度が高く設定されており、初見で時間内に25問全問正解するのはなかなかに大変なことのようです。
おすすめ度という点では微妙なのですが、試験を申し込めば自動的に2度の利用権が付与されるので、腕試しという意味で少なくとも1度はチャレンジすることをおすすめします。
ちなみに、2回とも模試の内容は同じなのですが、答えを知ったうえで2度目のチャレンジをしても時間内にクリアするには結構なスピード感で臨む必要があります。
いすれにしても、この模試を時間内に完ぺきにこなせるようになれば、CKAも楽々合格できると思います。
Killer ShellではCKA以外に、CKADやCKSの模擬試験も提供しています。
Killercoda(おすすめ度:★★★★★)
Webブラウザを利用したクラウドベースのインタラクティブな学習環境でトピック別に様々なシナリオが提供されています。シナリオは何度でも好きなだけ使用できます。
基本的には無料で利用できますが、システムのサポートを目的としたサブスクプラン(月額5ドル)も用意されています。
サービスが終了してしまったKatacodaに代わるサービスとしても注目してよいと思います。
CKA専用のシナリオがありますが、CKADのシナリオも学習に役立つので両方まとめてチャレンジするのが良いと思います。
シナリオにはヒントと解答が用意されており学習効果も高いのと、Kubernetesのクラスターを自由に使えるプレイグラウンドが1時間という時間制限はあるものの回数無制限で使えるという点でもおすすめ度は★★★★★です。
ちなみに、Kim Wüstkamp氏が提供する「CKS CKA CKAD Remote Desktop」では、2022年6月移行に提供されている実際の試験に近いRemote Desktop環境を何度でも試すことができるため、受験前に雰囲気をつかんておくという意味でも有効です。
https://killercoda.com/kimwuestkamp/scenario/cks-cka-ckad-remote-desktop
ちなみに、環境が起動するまでに約10分必要です。シミュレータの使用時間が1時間と決まっていますが、インストールの時間もその有効時間に含まれるため注意が必要です。
kubeAcademy(おすすめ度:★★★★)
VMWare社が提供しているKubernetes学習用オンラインコンテンツ。誰でも無償で利用できます。
概念の解説を含むデモ動画がメインコンテンツ。全編英語で一部のコンテンツは日本語の字幕に対応しています。
いずれのコースも内容は素晴らしいのですが、解説動画だけで演習がないのが残念。
CKA対策という意味では、「How to Prepare for the CKA Exam」というコースの受講をおススメ。受験にあたって役に立つ様々なTIPSを紹介してくれています。
効率が重視される試験で有効なvimエディターの設定やyamlファイルの編集方法、トラブルシューティングに必要な各種ステータスの確認方法などについて詳しく解説してくれます。
トータルでのおすすめ度は★★★ですが、「How to Prepare for the CKA Exam」だけは★5個で必見とさせてください。
edX(おすすめ度:★★)
Introduction to Kubernetes:Kubernetesをより良く理解するための入門編
無料なので一通り受講してみましたが、全編英語なのと章末にあるテストが有償版でしか使えないのが残念でした。
英語が堪能な方は入門編として受講する価値はあるかもしれませんが、内容的にはUdemyの教材で代用可能と思います。
YouTubeチャンネル(おすすめ度:★★★★)
YouTubeで検索するとわかるのですが、海外ではKubernetes技術者認定資格対策動画は本当にたくさん見つかります。しかも内容的に有益な動画が多いです。
個人的におススメなのが以下のシリーズ。実際に出題されそうな問題の解決方法を丁寧に解説してくれます。英語ではありますが、上のUdemyオンラインコースなどである程度学習を進めていれば十分理解できると思います。
Kubernetes CKA Exam Questions
https://www.youtube.com/playlist?list=PL6nVblW4NNAQrgSjhT8iK_v7ROIV2ikVu
Practice Certified Kubernetes Administrator Solutions 2022
https://youtube.com/playlist?list=PLTYt3kXV0MXj_JrhssXH6voHT2HjtWbBA
にしても、YouTubeのCKA対策動画をアップしている人たちってインド系が多くないですか?KodeKloudのMumshad Mannambethさんもしかり。
書籍
Kubernetes関連の書籍はかなりの数があるのですが、Kubernetesの進化のスピードが速すぎて、内容がすぐに古くなってしまうということも意識する必要があります。
Kubernetesそのもののバージョンもさることながら、APIのバージョンも変わるので、書籍に記載のyamlファイルだとうまく動作しないようなこともでてくるので注意が必要です。
Kubernetes完全ガイド 第2版(おすすめ度:★★★★)
著者はサイバーエージェントの青山真也氏。Kubernetesに関して、アプリケーション開発者およびインフラエンジニアが利用する機能を網羅的に取り上げている国内における定番書籍。CKA/CKAD取得に役立つ、さまざまな知識が得られるとの売り文句があるだけあって、合格者の多くが同書を活用し、対策本としても推薦するひとも多いです。
目次 第1章 Dockerの復習と「Hello, Kubernetes」 第2章 なぜKubernetesが必要なのか? 第3章 Kubernetes環境の選択肢 第4章 APIリソースとkubectl 第5章 Workloads APIsカテゴリ 第6章 Service APIsカテゴリ 第7章 Config&Storage APIsカテゴリ 第8章 Cluster APIsカテゴリとMetadata APIsカテゴリ 第9章 リソース管理とオートスケーリング 第10章 ヘルスチェックとコンテナのライフサイクル 第11章 メンテナンスとノードの停止 第12章 高度で柔軟なスケジューリング 第13章 セキュリティ 第14章 マニフェストの汎用化を行うオープンソースソフトウェア 第15章 モニタリング 第16章 コンテナログの集約 第17章 Kubernetes環境でのCI/CD 第18章 マイクロサービスアーキテクチャとサービスメッシュ 第19章 Kubernetesのアーキテクチャを知る 第20章 Kubernetesとこれから
個人的なおすすめ度は★★★★。公式ドキュメントを読み進めたりUdemyのトレーニングに取り組みながら、よくわからない内容が出てきたときに、リファレンスとして使うのがベスト。
ちなみに、2020年11月に開催された著者の青山氏が著作を紹介するセミナー「インフラエンジニアBooks#03 青山真也氏と読む「Kubernetes完全ガイド 第2版」」では、CKA対策として本書をある程度読んで、4-6章の基本的なところと、7-13章のいくつかのトピックが理解できていればOKと解説していました。それらに加えて、kubeadmによるクラスターの作成とKubernetes Hard Wayへの取り組みで必要十分とのことでした。
ただ、第2版が出版されたのが2020年8月なので、検証に使われているKubernetesやKubectlのバージョンや各種環境が今よりも古いということも常に考慮する必要があります。
15Stepで習得 Dockerから入るKubernetes コンテナ開発からK8s本番運用まで(おすすめ度:★★★★)
著者は日本アイ・ビー・エムの高良真穂氏。K8sのスキルが効率よく身に付くよう、段階的にレッスンを進めて行く構成。
本書は、前段の概要、15ステップの実習、学習環境構築方法を解説した付録の3つで構成されており、それぞれの紙の色を変えるあたりにもこだわりを感じます。
例題サンプルは、自分のPCにダウンロードしたり、クラウド上で再現できるほか、時間のない読者向けに、目を通すだけで擬似体験できるよう工夫されています。
例題サンプルはトラブルシューティングの要素も含まれるため、CKA取得に必要な問題解決能力を養うことができる点も注目です。
付録の学習環境の構築方法では、MacとWindows、シングルノードとマルチノード、様々な組み合わせで構築方法が紹介されているのが素晴らしいです。
CKA対策本としては、試験範囲すべてを網羅しているとは言えないので本書以外の教材との併用をおすすめします。
CKA対策本としての個人的なおすすめ度は★★★ですが、学習環境構築に関しては★★★★とさせていただきます。
ちなみに、YouTubeには高良氏が登壇したKubernetes紹介セミナー動画があるので初学者であればはじめにこちらを視聴してから学習をスタートするのが良いかもしれません。
DockerコンテナからKubernetesとOpenShiftまで要点解説
2022/6に試験のプラットフォームが変更された
2022年6月25日に出題内容と試験のシステムに変更がありました。CKA、CKAD、CKSプログラムをPSI ExamsLocal proctoringプラットフォームからPSI Bridgeに移行しました。なお、試験内容についての変更はありません。
プラットフォームの重要な変更点は、以下の通り。
- デスクトップを試験監督と共有する必要がない
- 試験監督を待たずにチェックインが可能
- アクティブなモニターは1つだけ(内蔵または外部、15インチ以上を推奨)
- Chromeの代わりにPSIセキュアブラウザを使用
これらの変更により、以前は、自分のPCのデスクトップを試験官と共有する必要がありましたが、全受験者に同じ環境を提供できるPSI Bridgeの導入により、その必要がなくなったこと。
Kubenetesの公式ドキュメント参照のために、Google Chromeブラウザをシングルタブだけで起動することが認められていましたが、PSI Bridgeによって問題ごとにアクセスが許可されるドキュメントへのリンクが提供されるようになったこと。
Linuxリモートデスクトップ機能により、以前のようにtmuxを使わずに複数のターミナルを利用できたり、ターミナルのフォントサイズや色も変更できる、などの恩恵が得られるようになったようです。
PSI Bridgeシステムの外観はLinux Foundationの重要な指示ページで確認できます。
キーボードショートカットはLinux
Linuxリモートデスクトップにおいては、受験者はLinuxのキーボードショートカットを使用する必要があります。受験者のマシンがWindowsでもMacでも、試験に使うのはPSI Bridgeが提供するLinux環境なので、WindowsやMacのではなくLinuxのショートカットを使ってねということです。
ちなみに、コピーは「CTRL+ SHIFT + C」でペーストは「CTRL+SHIFT + V」になります。右クリックのコンテキストメニューを使用して、[コピー]または[貼り付け]を選択することもできます。
WebブラウザはFirefox
Linuxリモートデスクトップで利用できるWebブラウザはFirefoxです。ChromeやSafariに慣れている方は事前にWindowsやMac版のFirefoxを使い、検索のインターフェースやショートカットを確認しておくことをおすすめします。
以前の試験までは可能だった、ブラウザのブックマークは、PSIセキュアブラウザ内からはアクセスできません。その代わりに「ドキュメントクイックリンク」が提供されます。試験問題の中でタスク解決に必要となるであろうトピックに関連する公式Kubernetesドキュメントへのリンクが提供されます。
基本的に提供されるのは公式Kubernetesドキュメントへのリンクなので、表示されたドキュメント上の検索窓からキーワードを入力して他の公式ドキュメントページにアクセスすることは可能でしたし特におとがめもありませんでした。チートシートを確認したい場合などにも有効です。
アプリケーションのバージョンに注意
FAQのページに試験で使われるアプリケーションのバージョンについての記述があります。Kubernetesのアップデートリリースから4~8週以内にマイナーバージョンに合わせるようなので、受験タイミングに合わせて把握するようにした方が良いです。自分の場合はv1.25.0でした。
KCNAは2回目で合格だったのですが、CKAも2回目で合格できればいいやと思っていたのですが、運よく一発合格できました。
時間配分
時間配分を考える。自分は見直しを含めて2時間びっちり使った。
いろいろなやり方はあるが、問題すべてに目を通してから取り組む順番を決める。
フラグを立てて後回しにするなどの工夫。
問題ごとにコンテキストを変更する必要があるため忘れないように。見直し時にも注意。
Linuxリモートデスクトップに慣れる
実試験ではUbuntu 20.04LTSベースのLinux仮想マシンを操作することになりますので、可能であれば事前に近い環境に触れておくとよいと思います。
すでに紹介していますが、KillercodaでKim Wüstkamp氏が提供する「CKS CKA CKAD Remote Desktop」で実試験に近い環境を何度でも試すことができます。
実試験ではクラウドサービス(たぶんAWS)のリモートデスクトップだからか、全体的にワンテンポ遅れて動作するような印象がありました。マウスカーソルの動きなどでそれが実感できると思います。
FirefoxもそれなりにCPUパワーを使うので、テキストサイズを小さくしてスクロールの頻度を落とすなど、試験が始まったタイミングで調整するのが良いかもしれません。
リモートデスクトップ環境ではMousepadという名前のメモ帳アプリも利用できるので、公式ドキュメントからのコピペしてきたテンプレの編集に利用できます。
私の場合は、試験中にある問題でターミナルの挙動がおかしくなったため、新規タブでターミナルを立ち上げなおして事なきを得ました。
ターミナル自体は、何個でも複数立ち上げが可能ですが、多くなってしまうとコンテキストの変更忘れにつながったり、CPUへの負荷の問題もあるので、数個程度にとどめておくほうが良いと思います。
kubectlコマンド
kubectl <command> –help(または-h)で各種ヘルプの呼び出しが可能です。
Kubernetesは扱っている内容が多岐にわたるため、すべての内容を暗記するのは不可能です。
たいがいはヘルプと公式ドキュメントの活用で解決できる内容です。
ショートカットと変数設定
k=kubectlは標準で設定済みなのでわざわざ設定する必要はありません。
人によっては以下のようなショートカットを試験開始直後に設定しているようです。
alias kk='kubectl get'
試験中も頻繁にポッドやノードの状態確認を行うので少しでも時間短縮したい場合はありですね。
alias do='--dryrun=client -o yaml'
こちらはコマンド入力した内容をyaml形式で表示するのによく使いますし、後に”>(大なり記号)”を使ってファイル出力するパターンが多いです。–dryrun=clientのくだりが結構文字数多いので省略したい気持ちもよくわかります。
多少でも時短につなげたいならアリの設定ですが、私は設定はしませんでした。実際、試験中に使いたいシチュエーションになったのは数回なので無理に設定する必要はないかなと感じました。
ちなみに、自分は-o yamlの入力は-oyamlとして途中のスペースはいれません。
vi/vim操作に慣れる
yamlファイルの編集に必須となるvi/vimの操作に習熟しておきましょう。
カーソルの移動方法になれておくだけでも時短につながります。
タブやスペースのインデントについてはあらかじめ設定されているので無理に設定する必要はありません。設定内容を確認したい場合はviで~/.vimrcの中身を確認しましょう。
編集モードへの切り替え
以下のコマンドの使い分け。
- i
- a
- o
取り消し
- U
カーソル移動
- hjkl:左下上右
- 0^:行の先頭
- $:行の最後
- w:単語の先頭
- gg:1行目に移動
- shift + g:最終行に移動
コピー、削除
- yy:カーソルがある行をコピー
- dd:カーソルがある行を削除
- wd:カーソル位置から単語単位で削除
- shift + d:カーソル位置から行末まで削除
- d + shift + g:カーソル位置から最終行まで一気に削除
保存と終了
- w:保存のみ
- q:終了
- q!:強制終了
- wq:保存して終了
- wq!:保存して強制終了
公式ドキュメントにおけるテンプレの把握
試験中に唯一閲覧できるのが公式ドキュメントですが、トピックによってはテンプレも膨大です。タスク解決に必要なテンプレにできるだけ早くアクセスするには普段から積極的に公式ドキュメントを活用してテンプレがある場所を把握しておきましょう。
永続ボリュームのページを例にとると、基本的なPVとPVCのテンプレは以下の二つです。
編集前にバックアップ
実試験ではyamlファイルが用意されている場合と、そうでない場合もありますが、いずれであっても編集する前にオリジナルとなるワークロードについてはバックアップを取る癖をつけておくほうが良いと思いました。
何度修正してもエラーが出てしまってどうにも原因がわからない、どこをどう修正したかもよくわからないなんてときに、復元して一からやり直すこともできますので。
ちなみに、yamlファイルがない場合は、k get <hoge> -oyaml > hoge.yamlでワークロードの書き出しができます。
押さえておきたいトピック
- etcdのバックアップとリストア
- 公式の「Operating etcd clusters for Kubernetes」で手順を確認しておく。
- クラスターのアップグレード手順(下のメンテナンスとも関連)
- 公式の「Upgrading kubeadm clusters」から手順を把握しておく。
- ノードマネジメント
- drain/cordon,uncordon
- taint/tolerationの確認手順
- DaemonSet
- 特定のノードへの設定(マニフェストファイルの場所に注意)
- ノードトラブルの解決手順
- kubeletの動作確認(sysytemctl status kubelet)
- 各種logの確認(k logs <Pod名>
- マニフェストファイルの確認(標準で/etc/kubernetes/manifest/)
- 設定ファイルの確認(.kube/config)
- Deploymentマネジメント
- 編集の手順(edit or scale)
- Podマネジメント
- マルチコンテナポッド
- 1つのポッドに複数のコンテナ
- init containerとの違い
- コンテナへのログインとコマンド実行
- k exec -it <pod> – shなど
- マルチコンテナポッド
- Serviceマネジメント
- Serviceの設定方法(runコマンド+expose、既存のワークロードをexposeするか)
- Ingress
- NetworkPolicy
- ingress/egress
- ServiceSccount,RBAC
- Role, RoleBinding,ClusterRole,ClusterRoleBindingの違い
- k auth can-iの使い方
- jsonPathを使った特定情報の抽出
- “-o json | jq”で見やすくできる
- -o=jsonpath='{.item[*].hoge.hoge.hoge}’など、いくつかの例がチートシートにも載っている
- Volumeマネジメント
- PVとPVCのテンプレ、ステータス確認(Bound)
- accessModes(RWX,RWO)
- hostPath
- emptyDir
- PVとPVCのテンプレ、ステータス確認(Bound)
CKAやCKAD、おそらくはCKSもそうだと思いますが、実践がメインの試験です。
知識があるに越したことはないのですが、公式ドキュメントやヘルプテキストで確認できる内容が多いので、なんでもかんでも覚える必要はありません。
重要なのは限られた時間の中で与えられた課題をできるだけ多くクリアすることです。操作のスピードに加え、正確性や判断力も問われることになります。
問題文を読んで、少しでも難しいと感じたら、フラグマークを付けて次の問題に取り組むなど、取り組み方は十人十色ですが、いずれにしてもタイムマネジメントが重要です。
自分の場合は最後の方の数問が特に簡単な問題でしたので、すべての問題を見渡して簡単そうな問題からチャレンジするというやり方もあったかなあと感じています。
YouTubeで検索するとわかるのですが、海外ではKubernetes技術者認定資格対策動画は本当にたくさん見つかります。しかも内容的に有益な動画が多いです。一方で、日本でそうした動画を公開している人は本当に少ないです(2022年11月現在)。
Udemyのコンテンツもしかり、Kubernetesそのものの解説プログラムはあっても日本人が提供する資格対策プログラムはほとんどないに等しいです。
テキストベースのCKA/CKADの受験レポート自体はそこそこありますが、2022/6以降の受験レポートはまだまだ少ないです。
ということで、この受験レポートがこれからCKAを受験される方の少しでもお役に立てるなら幸いです。
また個人的にも、LPI-Japanさんなどにもお声がけして、Kubernetes技術者資格取得を目指す人のためのセミナーや学習用コンテンツなどが提供できるような活動ができたらと考えております。
当サイトでは、LinuCだけでなくCKAにチャレンジして、新たなキャリアマップを切り開こうとされる方を応援していきます。