14
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

CKAD合格ログ~事前学習/申し込み/試験~

Posted at

はじめに

本記事の内容

Certified Kubernetes Application Developerに合格しました(CKAD-1900-001515-0100)ので、
自身の事前学習/申し込み/受験の流れをまとめました。
これから受験される方のお役に立てば幸いです。

CKADとは

https://training.linuxfoundation.org/certified-kubernetes-application-developer-ckad-jp/ より抜粋

Certified Kubernetes Application Developer (CKAD) プログラムは、The Linux FoundationとCloud Native Computing Foundation(CNCF:Kubernetesのホスト プロジェクト)により、標準化されたトレーニングと認定を通してKubernetesエコシステムを拡充するために開発されました。

事前学習

学習開始時点の状況

筆者のスキルレベルは下記の通りです

  • v1.7くらいから趣味でちょこっと触っていた
  • 本格的に触りはじめたのが今年入ってから

ある程度は触っていたので、本番にあわせて公式ドキュメントを読みつつkubectlを叩くことに集中しました。

学習環境

  • Kubernetes
    • Minikube
      • 試験環境はv1.15だったので、それに合わせて構築
  • エディタ
    • Vim
      • 試験中はVimで操作するため
      • ~/.vimrcのカスタマイズも一旦消して初期状態のVimで練習

CKADではクラスタ自体を作成するような問題はでないためMinikubeでサクッと構築しました。
minikube start--kubernetes-versionオプションでK8sのバージョンを指定できますので、自分が受験するバージョンで構築すると良いです。

学習コンテンツ

CKAD Curriculm

試験の出題範囲ですが、CNCFよりCKADのカリキュラムが公開されています。
https://github.com/cncf/curriculum

LinuxFoundationの研修やUdemyの研修もありますが、自分は上記カリキュラムから試験内容をイメージして勉強をしました。
試験に向けた勉強としては10時間程度です。

大項目 小項目 試験に向けてやったこと
赤:コマンド系
青:Resouceの設定項目系
CoreConcepts
(13%)
Understand Kubernetes API primitives (なし)
" Create and configure basic Pods ・Podを作る
 ・kubectl run --restart=Never
・特定のPortを公開するPodを作る
 ・kubectl run --port=8080 --restart=Never
・特定のコマンドを実行するPodを作る
 ・kubectl run --restart=Never --command
Configuration
(18%)
Understand ConfigMaps ・ConfigMapを作る
 ・kubectl create configmap --from-literal/--from-file
・Podから利用する
 ・環境変数として利用する(env
 ・ファイルとして利用する(volumes/volumeMounts
" Understand SecurityContexts ・ユーザIDを固定する(securityContext
・SELinuxオプションを変更する
capabilityを変更する
" Define an application's resource requirements ・コンテナごとにリソースを割り当てる(request/limit
・Namespace内のリソースを制限する(ResourceQuota/LimitRange)
" Create & consume Secrets ・Secretを作る
 ・kubectl create secret
・Podから利用する
 ・環境変数として利用する(env
 ・ファイルとして利用する(volumes/volumeMounts
" Understand ServiceAccounts ・ServiceAccountを作る
 ・kubectl create serviceaccount)
・PodにServiceAccountを設定する(serviceAccountName
Multi-ContainerPods
(10%)
Understand Multi-Container Pod design patterns(e.g.ambassador,adapter,sidecar) ・複数のコンテナを含むPodを作成する
initContainerで初期化処理を行う
Observability
(18%)
Understand LivenessProbes and ReadinessProbes ・コンテナに対してProbeを設定する(livenessProbe/readinessProbe
" Understand container logging ・コンテナのログを見る
 ・kubectl logs
・直前に稼動していたコンテナのログを見る
 ・kubectl logs -p
" Understand how to monitor applications in Kubernetes ・イベントを見る
 ・kubectl get event
・詳細を見る
 ・kubectl describe
・出力形式を変更する
 ・kubectl get -o json
" Understand debugging in Kubernetes ・(同上)
PodDesign (20%) Understand how to use Labels, Selectors, and Annotations ・ラベルをつける
 ・kubectl label
・アノテーションをつける
 ・kubectl annotate
" Understand Deployments and how to perform rollingupdates ・Deploymentを作る
 ・kubectl run
・Deploymentを更新する
 ・kubectl edit deployment
・更新状況を確認する
 ・kubectl rollout status
" Understand Deployments and how to perform rollback ・Deploymentを前回の状態に戻す
 ・kubectl rollout undo
・Deploymentの履歴を確認する
 ・kubectl rollout history
" Understand Jobs and CronJobs ・Jobを作る
 ・kubectl run --restart=OnFailure
・CronJobを作る
 ・kubectl run --schedule
StatePersistence (8%) Understand PersistentVolumeClaims for storage ・PersistentVolumeを作る
・StorageClassを作る
・PersistentVolumeClaimsを作る
・PodからPVCを利用する
・StatefulSetからPVを利用する
Services&Networking (13%) Understand Services ・Serviceを作る
 ・ClusterIP
 ・NodePort
 ・LoadBalancer
・labelを付け替えてBlue/Greenをやってみる
" Demonstrate basic understanding of NetworkPolicies ・NetworkPolicyを作る

<参考>研修等

研修などもいくつかあります。お財布&時間と相談して受けてみるのも良いかと。

Certified Kubernetes Application Developer (CKAD-JP)(個別だと$300。試験とセットだと$199)
Kubernetes Certified Application Developer (CKAD) with Tests(24,000円だけど定期的に90%近くオフに)
dgkanatsios/CKAD-exercises(無料)

申し込み

試験の申し込み

公式サイトから申し込みます。特に要望がなければCKAD-JPで。試験官とのやりとりが(多分)日本語になります。
https://training.linuxfoundation.org/certified-kubernetes-application-developer-ckad-jp/

時間帯について、自分が申し込んだ際は平日08:00~16:00の間でいくつか枠が用意されていました。
休日には枠がなかったようにみえましたが、もともとないのか埋まっていたのかは不明です。

試験会場の準備

貸し会議室を借りたり会社の会議室をおさえておきましょう。カフェのようなオープンな場はNG。
試験は2時間ですが、事前準備等あるので前後30分くらい余裕をもっておさえておくと良いです。

端末の準備

  • Chromeブラウザ
    • 受験用のExtensionを事前にインストール
    • Kubernetesのサイトをブックマークしておくと◎
  • Webカメラ
    • 自分はUSBで接続するカメラを利用しましたが、ノートPCのカメラでも可能です。

試験

試験直前の準備

  • ブラウザの確認
    • 試験官の指示に従って確認作業を行います。会話の必要はなく、チャットでのやりとりとなります
      • CKAD-JPで申し込んだためか、日本語でのやりとりでした。
  • 受験者の確認
    • 国が発行する写真つきの証明書が必要となります。
      • 自分はパスポートを利用しました。
  • 周囲の確認
    • 机の周りや下などをチェックされます
      • このとき外付けカメラだと取り回しやすいです。

試験

時間は結構短いです。自分は下記を意識しつつ&使いつつ進めました。

  • kubectl --dry-run -o yamlなどでベースを作る
    • 時間を節約するために。残りはvimで手直し
  • kubectl -hでオプションを確認
    • ちょっとしたオプションであれば、公式サイトを検索するより早い
  • はじめにsource <(kubectl completion bash)を叩いて補間を使えるようにしておく
    • Pod名などの補間が効くので便利
  • ctl+c/ctl+v(コピペ)はブラウザ上では使えないのでマウスでコピペ
    • Ins+特定のキーでコピペ可能なようですが、変な操作をしてしまいそうだったのでマウスに

tmuxが使えるといったことをどこかで見た気がしたのですが、自分は必要ありませんでしたので利用できるか確認していません。必要に応じて利用しましょう。ブラウザ上で起動するNotepadも利用できます。
あとはvimになれておくと◎。

結果&おわりに

試験終了から36時間以内に結果が届くとのことで、自分の場合は32時間後くらいに届きました。
結果はスコア89%で合格でした。(66%が合格ライン)
手も足も出ない問題はなかったのですが、単純にYAMLの記述ミスで時間がかかってしまったところはありました。
ほぼ手ごたえ通りのスコアかなと思います。

基本的なところから実践的な問題までいろいろあって楽しかったです。
(「K8sのあのコンセプトをこの問題で説明させたいんだな」的な)

1回は無料で再受験できるので、受けてみるのをオススメします。
次はCKAをがんばりたい。

14
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?