試験について

今回受験した資格は Certified Kubernetes Application Developer (CKAD) です。

The Linux Foundation と協力して Cloud Native Computing Foundation (CNCF)  が開発した 認定試験です。

CKADのほかにも k8s を取り扱った 資格試験は存在していますが、私は サーバサイド/バックエンドエンジニア なので、アプリ開発者目線のCKADを受験しました。

※ その他の k8s 関連の 資格たち

どんな学習をしたか

学習 開始 時点のスキルレベル

まず、学習開始時点での私の k8s スキルを書いておきます。

  • k8s のざっくりした仕組みは知っている
  • kubectl は get 系 のみ業務で使ったりする
  • 各リソースの振る舞いや細かな設定値はほぼわからない

まず絵本を読もう

CNCF では k8s に親しみをもってもらおうと 絵本がいくつか公開されてます。

また、その絵本に登場するキャラクターたちの紹介page があったりします。

Goldie くんは Gopher くんのパクリにみえ。。。

まずは、The Illustrated Children’s Guide to Kubernetes という絵本を読むことをお勧めします。

k8s の主要なサービスについて、 Phippy と一緒に学ぶことができます。

どんなサービスが存在していて、どんな役割と機能を持っているかを改めてこの絵本で復習しました。

Udemy の講座を受講

絵本を読んだ後、本格的に 勉強 をはじめます。

私は Udemy の  Mumshad さん の講座を受講しました。

当講座はMumshad さんによる 講義 と KodeKloud での演習がついてきます。

k8s の仕組みを講義で 学ぶこともできますし、 web ブラウザ経由で 演習用の k8s clusterにアクセスして手を動かしながら k8s の操作に 慣れることもできます。

基本的には この講座の内容以上のことは試験で問われなかったので、この講座を受講すれば完結しそうです。

個人的な肌感覚では  すべての Mock Test を 制限時間以内に合格できるくらいのレベルがついていれば合格ラインにのれているのかなと思います。

Udemy の講座は よくセールをやっているので、安くなったタイミングで購入することをお勧めします。

リファレンス先として kubernetes.io に慣れておく

CKADの試験では  kubernetes.ioドメインの page のみ閲覧しながら受験することを許可されています。

そのため、学習段階でも マニフェストファイルを 引用したり、トラブルシュートする場合は kubernetes.io で完結できるように慣れておくとよいと思います。

試験に関わらず k8s に関することを調査する際は kubernetes.io に立ち戻るよう癖付けておけば情報のキャッチアップを正確にすることができるはずです。

kubectl でリソースを 作ることに慣れておく

k8s のリソースを作成する方法は2種類存在します。

  • kubectl ワンライナーで作成する
  • マニフェストファイルに起こしてから作成する

普段の業務ではリソースをコードで宣言的に管理することがほとんどのため、 前者のコマンドワンライナーで作成する機会はあまりないと思います。

しかし、 kubernetes.io からマニフェストファイルのサンプルをCopy してファイルを作って~~などしていると時間がかかります。CKAD の試験は 2h で 約20問くらいの大問を解く必要があり、かなり時間的にはカツカツです。

そのため、kubectl ワンライナーで 完結できると時間短縮になります。

ただ、要求される仕様をすべてコマンドで作成しきるのは難しいので、私はマニフェストファイルの下地を kubectl でできる限り作成し、必要なところのみマニフェストファイルを編集してリソースを作るようにしていました。

リソース作成の例

私が 試験を想定して リソースの作成をしていたやりかたを簡単に書いておきたいと思います。

※ 例として今回は なんらかの pod 作成を求められた場合を想定しています。

kubectl で 作りたいリソース の土台を作り、 マニフェストファイルに出力

kubectl run hoge-pod --image=hoge:x.y.z --namespace=hoge-space  --dry-run=client -o yaml > hoge-pod-def.yaml

問題で指定されているリソースの仕様をkubectl 上でできるだけ満たせるようコマンドを叩いてください。また、 --dry-run=client -o yamlとすることで k8s に リソース作成せずに yaml で マニフェストファイルを出力してくれます。

※ 満たしたい仕様がすべて kubectl 上で設定できる場合は  --dry-run=server --restart=Never  をつけてワンライナーで作成してください。

マニフェストファイルを編集し、リソースを作成

kubectl で出力したマニフェストファイルを編集し、設定が必要なものを追加してください。

試験では vim しか使えなかったはず??なので、学習時は vim での編集に慣れておくとよいと思います。

kubectl apply -f hoge-pod-def.yaml

編集が終わったら、kubectl apply で 指定したマニフェストファイルのリソースの作成を行います。

バウチャー購入~試験予約の注意点

ここからはバウチャ購入~試験予約までの注意点を書いておきます。

私自身どこから申し込めばよいのか少々混乱したので、私が申し込んだ際に注意した点などを記載しておきます。

CKAD以外の 試験でも同様の手順で問題ないはずなので、参考にしてください。

LPI Japan の申し込み page に沿って申し込みを行う前提での情報になります

EDUCO-IDの取得と受験用クーポンの購入

まず、LPI Japan の申し込み page にアクセスし、 EDUCO-ID : LPI Japan のアカウントを作成します。

過去にLPI Japan の資格を受験したことのある方はその時に作成した EDUCO-IDを使用してください。

次に、ストアから バウチャを購入します。受験したい試験の 試験のバウチャを購入してください。

バウチャを購入すると、1週間程度で 受験用 クーポンが届きます。

私の場合、受験用クーポンが送付されたメールがスパムボックスに入ってしまっており気が付かなくて問い合わせてしまいました。

もし、1週間経ってもメールを確認できない場合は スパムに入ってしまっているかもしれません。

The Linux Foundation ID(LFID)の取得と確認方法

The Linux Foundationのアカウントを作成します。アカウント作成さえすれば  LFID は自動的に作られるみたいです。過去に作成したことのある方は、既存のアカウントを使用してください。

LFID の確認方法ですが Linux Foundation ID の view page で自分のアカウントで  login すると 確認が可能です。

黄色で塗りつぶしている個所に LFID が表示されます。

次に、LPI-Japan: LF認定試験の受験結果を共有するための承諾にアクセスし、試験結果をLPI-Japanと Linux Foundation で共有することを承諾してください。この時に 「EDUCO-ID」「LF ID」「購入された受験用クーポン」「住所、氏名、メールアドレス」の入力が必要となります。

※ LFID の確認方法がLPI Japan の申し込み pageに書かれていなかったので不安でした。一応この方法で 受験まで行けたので合っているはずです。。。

受験の予約

Linux Foudation(マイポータル)から、受験の予約を行ってください。

試験環境の システム要件の確認 なども事前にできるようになっています。

当日はwebカメラが必要になるなどルールがあります。

直前で 困らないように、試験環境が整い次第、確認 することをお勧めします。

試験当日の注意点

試験前の事前確認に約30 分かかる

試験開始前に 身分証明書の提示、 試験環境の 確認、受験用のブラウザのインストールなどやることが地味にたくさんあります。

私は自宅で受験したのですが、部屋のすべての壁やデスクの下などをwebカメラで映すことを求められます。

受験前にデスク周辺を片付けておくことをお勧めします。

また、Webの様々な記事を見ると この段階で トラブルが発生することがけっこうあるようです。

試験当日は時間に余裕をもっておくことをお勧めします。

私の場合、スムーズに確認が進んだ方だと思いますが  約30 分かかりました。

身分証明書はパスポートがスムーズ

私の場合、最初は 運転免許証とクレジットカードを見せたのですが 試験監督にパスポートはないか?と聞かれました。

自宅で受験したのですぐ対応でき、パスポートをwebカメラに見せて身分証明書の確認はパスしました。

試験監督曰く、パスポートのほうが身分証明書の確認がスムーズに行えるそうです。

これから受験する方はパスポートを用意しておくことをお勧めします。

受験用のブラウザをインストール

試験では専用のwebブラウザをインストールし、そのブラウザ上で  受験することになります。

例えば、社用のPC で受験しようとした場合に、事前に許可されたソフトウェアしかインストールできない などの規定があったりすると

この時点で躓くため 事前にインストールしてよいか確認しておくことをお勧めします。

拡張モニターはNG

試験では主に下記3つのタブを操作して問題を解いていきます。

  • 問題文を表示するタブ
  • kubernetes.io のwebページ参照用のタブ
  • 実際に問題を解くターミナル

試験の仕様上、拡張モニターをつけて受験することができない(受験前のシステムチェックでNGが出る)ため、

できるだけ大きめのモニターで受験したほうがストレスないと思います。

ノートPC だと画面が小さかったりするのでできればデスクトップPCで受験することをお勧めします。

kubectl に alias  を設定しておく

試験では何をするにしても kubectl による操作をする必要があります。

ただ、”kubectl” はタイプ数がそこそこ多く、都度ターミナルで 叩くには 地味に時間的なコストがかかります。

そこで、 kubectl のalias として “k” 一文字を 設定しておくと 生産性が向上します。

kubernetes.io のチートシートに設定の仕方が書いてあります。

試験を開始したらまずこの設定を.bashrc辺りに入れてから試験をスタートすることをお勧めします。

終わりに

k8s のアプリ開発者をターゲットとした 資格である CKAD を受験しました。結果無事合格することができました。

アプリのデプロイプラットフォームとして近年 k8sが台頭しています。

個人的にはアプリ開発者こそ使い倒したいツールだと感じていますので これからも k8s のエンジニアリングスキル を高めていきたいと思います。