CKA　合格体験記

# はじめに
先日CKA(Certified Kubernetes Administrator)を受験し、合格しました。

2021年9月に受験し不合格、11月に２度目の受験で合格となりました。
この記事では１度落ちた時の反省点含め、私がCKA合格までに行ったことを共有します。

# 対象読者
私がKubernetesの事前知識０からの受験ということもあり、これからKubernetesを触る予定、
もしくは触りたての初学者でCKAの受験を考えている方に役立つ内容になっていると思います。

# CKAとは
Kubernetes管理者としてのスキルを証明する資格です。
試験はハンズオン形式になっていて、実際にコマンドラインの操作を行いながら問題を解きます。
[Certified Kubernetes Administrator (CKA)](https://training.linuxfoundation.org/ja/certification/certified-kubernetes-administrator-cka/)

# 学習開始時点での知識

学習開始時点での知識・経歴は以下のような状態でした。 
・インフラ業務(システムの運用・保守)に携わって４ヶ月。
・Kubernetes及びDocker等のコンテナ技術に関してはほぼ触ったことがない。
・２年ほどシステム開発業務に携わっており、ある程度のlinuxコマンドについては扱える。


# 学習期間
2021年5月から学習を開始し、合格までは半年ほどかかりました。
学習時間は決めてなかったですが、基本的に休日を中心に1日あたり3、４時間くらいのペースで取り組んでいました。
詳しくは後述しますが、２ヶ月ほどはコンテナへの学習に費やしているので試験対策のみならかなり短縮できると思います。

# 学習内容
学習としては主に以下の２つのことをやりました。　　
・Docker/Kubernetesの学習
・試験対策
### Docker/Kubernetesの学習(5~6月)
まずコンテナへの知識が乏しかったため、試験対策の前にコンテナ技術に触れてみるところから
始めました。

#### 使用教材：[Docker/Kubernetes 実践コンテナ開発入門](https://www.amazon.co.jp/Docker-Kubernetes-%E5%AE%9F%E8%B7%B5%E3%82%B3%E3%83%B3%E3%83%86%E3%83%8A%E9%96%8B%E7%99%BA%E5%85%A5%E9%96%80-%E5%B1%B1%E7%94%B0-%E6%98%8E%E6%86%B2-ebook/dp/B07GP1Q3VT/ref=sr_1_5?adgrpid=103805099216&gclid=CjwKCAiAtdGNBhAmEiwAWxGcUpbTs02xZKeqREto6v8JYraPVi3A68jJbGU6gj_FY2UiTqUF_jmULxoChMUQAvD_BwE&hvadid=553837654995&hvdev=c&hvlocphy=1009310&hvnetw=g&hvqmt=e&hvrand=8986481377449583065&hvtargid=kwd-960733910284&hydadcr=4081_13159834&jp-ad-ap=0&keywords=docker+kubernetes+%E6%9C%AC&qid=1639291335&sr=8-5)
この本ではまずDockerとは何か？から始まり、実際にDockerを使ってのアプリケーション構築まで確認できました。実際に手を動かして学ぶことで知識が定着していった気がします。
本の後半ではKubernetesについても書かれています。
この段階では正直書いてある概念は難しく、あまり理解できなかったのでとりあえず書いてある通りに手を動かしてクラスターの操作を行ってました。
何となくKubernetes全体の概要が分かる程度の習得度だったと思います。

CKAには直接Dockerの知識は問われませんが、コンテナ技術への理解がないと学習を進めていく上で詰まる点が多いのでまずはここから学習を始めたのは良かったです。


### 試験対策(7月~)
上記の学習を一通り終えた後、本格的に試験対策に入りました。


#### 使用教材：[Certified Kubernetes Administrator (CKA) with Practice Tests](https://www.udemy.com/course/certified-kubernetes-administrator-with-practice-tests/)
CKA講座として有名なUdemyの動画です。試験対策は主にこちらを使用しました。
教材は大まかに以下の２部構成となっています。
・ 講義
・ 模擬試験

講義はKubernetesの概要について図を使った説明があり、模擬試験はCKAの試験を想定したハンズオン形式です。
講義は英語ということもあり、正直聞いているだけだと理解するのは難しいと感じました。
なので講義はスライドを見てある程度概要をおさえる程度に確認し、メインは模擬試験を解くことに集中しました。
模擬試験は３回分あるのですがこちらの内容が理解できていれば本番の試験でも問題ないと思います。
私の場合、3回の講義を各3回ずつ

知識の補足として以下の本も使用しました。
#### 使用教材:[Kubernetes完全ガイド 第2版 impress top gearシリーズ](https://www.amazon.co.jp/Kubernetes%E5%AE%8C%E5%85%A8%E3%82%AC%E3%82%A4%E3%83%89-%E7%AC%AC2%E7%89%88-impress-top-gear%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA-ebook/dp/B08FZX8PYW/ref=sr_1_6?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=3C1GJ7O5SIXV2&keywords=kubernetes&qid=1640100152&sprefix=kubernete%2Caps%2C224&sr=8-6)
この本はKubernetesの概要について詳しくまとまってます。
CKAの学習範囲外のことも書かれているので試験の対策として使うなら単体で読み込むより、
模擬試験を解く->本を見て関連知識を得る
といった流れで使うのがおすすめです。

## １度目の受験の反省点

なぜ不合格だったのかを振り返り、合格するために何が必要だったかを書いていきます。

#### 事前に公式ドキュメントを読み込む
CKAは試験中に公式ドキュメントを確認することを許可されています。
[Kubernetesドキュメント](https://kubernetes.io/ja/docs/home/)
私の場合本を使って知識を入れていたため、公式ドキュメントを読み込むことをあまり行っていませんでした。
そのため試験中に分からないことが出ても上手くドキュメントから情報を得ることができなかったです。
最初に目を通すと情報量が多くて苦手意識を持つかもしれませんが、試験前には必ずある程度公式ドキュメントの構成について確認することをお勧めします。
また公式ドキュメントであればブラウザブックマークも許可されているため、必要なページは事前にブックマークしておくと良いです。

####  コマンドラインツールに関してある程度は暗記しておく
kubectlコマンドを通して操作をしていくことになりますが、こちらも操作方法はドキュメントに記載されています。
[kubectl Cheat Sheet](https://kubernetes.io/docs/reference/kubectl/cheatsheet/)
暗記をする必要はないですが、完全にドキュメントに頼りきりだと確実に時間が足りなくなります。私の場合、模擬試験を解いていたのである程度の操作方法は頭に入っていましたがそれでもオプションを確認するのに時間を取られてしまいました。問題に集中できる時間を確保する上でも覚えておいた方がいいです。
また--helpコマンドなども覚えておくと指定方法が確認できます。

#### 問題に取り掛かる順番を意識する
問題はリソースの作成などの簡単なものから、トラブルシュートまで様々です。
特に問題に取り掛かる順番は意識せず解いていたのですが、序盤の重めの問題で詰まってしまい、後半の問題に全く時間をかけられませんでした。ある程度確実に解ける問題に先に取り掛かるのが良いと思います。

## 感想
試験を通して大きく、以下のような知識が身についたと思います。
・Kubernetesの各種リソースに関する知識
・Kubernetesクラスターの各コンポーネントに関する知識

また試験対策としてコマンドラインを通してリソースを操作することを何度も行なったので実際に
手を動かして作業する際にも自信がつきました。
Kubernetes構成技術といった内部的な知識はまだまだ理解できていないことが多いですが、
実用的で最初にKubernetesを学ぶきっかけとしては非常に良い試験でした。