我試著參加了 Kubernetes 認證考試 (CKA)
我尝试参加了 Certified Kubernetes Administrator (CKA) 的考试。
今回は、Japan Container DaysやKubeCon開催の中でも必ず1セッションはあるCKAについてとりあげさせてもらう。すでにQiitaや企業のエンジニアブログなどで事例紹介はされているが、直近うけた最新情報として紹介させてもらおうかと思う。
动力
-
- 今年の春ごろからKubeConやCNCFの活動を知り、Cloud Native Meetup Tokyoなどのコミュニティに参加しはじめたときに知り合った人らで、Kubernetesを実運用して詳しい人らがその学習していった過程でこの資格をオススメしていた。
-
- 個人的にはKubernetesに興味があり、学習したアウトプットの目安に利用できないかとしたときにわかりやい基準になるとおもった。
- 実際に自分のまわりの環境変化により、Kubernetesを利用した実運用している環境で開発する機会がありそのまま活かせる見込みが多くあった。
假设
自分自身のバックグラウンドについて簡単に前提として紹介させてもらう。
– 今までオンプレミス、パブリッククラウドを利用した環境でのサービス開発・運用経験は10年ほどある。
– 直近は、パブリッククラウド(GCP,AWS)、Kubernetesを利用した環境でのサービス開発をメインでしている。
– 受験準備開始は、2018/10月上旬〜12月中旬。当初はKubernetesの運用経験ない状態でハンズオンやチュートリアルを試しに触った程度の理解度。
考试概述
-
- Certified Kubernetes Administrator (CKA) Programの詳細はこちら
Cost $300 : オンライン試験
3時間 : 24問 (合格ライン:74%)
試験関連資料
公式に公開されている資料は以下の通り。
– 受験者向けハンドブック
– カリキュラム
– Certified Kubernetes Administrator (CKA) Exam Curriculum 1.11.0
– 試験Tips
题目范围
-
- Application Lifecycle Management 8%
-
- Installation, Configuration & Validation 12%
-
- Core Concepts 19%
-
- Networking 11%
-
- Scheduling 5%
-
- Security 12%
-
- Cluster Maintenance 11%
-
- Logging / Monitoring 5%
-
- Storage 7%
-
- Troubleshooting 10%
- ※ 2018/12/12時点
考试前所做的事情和做出的努力。
这次准备主要是基于以下教材。
Kubernetes Fundamentals(LFS258)
Linux Foundationの公式のオンライン学習教材。個人的には、各カテゴリについてのインプットとしては良かったが、試験のリハーサル用の演習はすくなかったため、Linux academyの後述の教材をオススメしたい。試験のバウチャーチケットとバンドルされたものを購入した。
Certified Kubernetes Administrator (CKA)@Linu Academy
各カテゴリ別に学習できるのに加え、範囲を網羅した試験想定の予想問題もあり、オペレーションを中心に学習できるのがオススメ。初回の1週間は無料で利用可能。
kubernetes-the-hard-way
周りで調べてみた限り一番オススメされるチュートリアル(kubernetesのインストールからsmoke test,cleanup)
やることはたくさんあるが通して覚えられるので一番良い。
kubernetes 公式ドキュメント
試験中に唯一、参照可能なドキュメント。何がどこに書いてあるかを把握してあると良い。
トレーニング用にGCPのアカウントを新設した初回は約30000円分のクレジットがついってくるため便利。
バウチャーチケットは2回受験可能。1回落ちたとしても、1年以内ならもう1回リテイクの受験が可能。自分の場合、1回目は64%で落ちており、2回目のリテイクで84%この試験をパスすることができた。
备战阶段
-
- 2018/10月〜 12月中旬頃
2018/10月上旬〜11月中旬: インプット中心の学習 (1.5ヶ月)
各出題範囲の概要理解のインプットをしたりオペレーションを試しに実行してみたりした。
2018/11月上旬〜12月中旬:アウトプット中心の学習(1.5ヶ月)
試験問題にでてきそうなオペレーションを中心に。
時間計測して最初は公式ドキュメントだけ。わからなければ調べて復習。
自分の苦手なカテゴリは、SecurityやTroubleShootingまわりだったため、そこは重点的にTutorialなど手を動かすことを中心に。
在考试中的改进之处
-
- 全ての問題はオペレーションが必要となる問題であるため、コマンドの実行が手に馴染んでいないと想像以上に時間が取られる
kubectl explainコマンドによる各パラメータ内容の把握
kubectl explain — #HeptioProTip
$ kubectl explain deployment
KIND: Deployment
VERSION: extensions/v1beta1
DESCRIPTION:
DEPRECATED - This group version of Deployment is deprecated by
apps/v1beta2/Deployment. See the release notes for more information.
Deployment enables declarative updates for Pods and ReplicaSets.
FIELDS:
apiVersion <string>
APIVersion defines the versioned schema of this representation of an
object. Servers should convert recognized schemas to the latest internal
value, and may reject unrecognized values. More info:
https://git.k8s.io/community/contributors/devel/api-conventions.md#resources
kind <string>
Kind is a string value representing the REST resource this object
represents. Servers may infer this from the endpoint the client submits
requests to. Cannot be updated. In CamelCase. More info:
https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
metadata <Object>
Standard object metadata.
spec <Object>
Specification of the desired behavior of the Deployment.
status <Object>
Most recently observed status of the Deployment.
可以对每个参数进行深入探究,找到参数的含义、设置方式以及参考链接的位置。
$ kubectl explain deployment.kind
KIND: Deployment
VERSION: extensions/v1beta1
FIELD: kind <string>
DESCRIPTION:
Kind is a string value representing the REST resource this object
represents. Servers may infer this from the endpoint the client submits
requests to. Cannot be updated. In CamelCase. More info:
https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
kubectl run –dry-run -o yamlによるyamlの雛形作成方法を覚える
deployment, pod, job などyamlが用意できるようにしておくと試験中にyamlを用意する時間短縮できる。
Using kubectl to jumpstart a YAML file — #HeptioProTip
Kubernetes Tips: kubectl でマニフェストの雛形を作る
kubernetes.io内のブックマークリスト(kubectl cheatsheetなど)
cheatsheetはもちろんのこと、すぐに探せるようにして整理しておく。
辛苦的地方
-
- 知識よりも実際のオペレーションが問われる内容のため、ひたすら手を動かす訓練が必要。一通り覚えるためには、そこそこの学習時間は必要となる。
-
- terminalがwebベースの慣れが必要。思っていたよりも慣れるまでに時間かかる。
- 会場の手配。会社の集中ルームのような個室の部屋があるのであれば、それで済むが、レンタルスペースを探すとなかなか手頃な価格の場所が見つかりにくい。
总结
這次我想分享一下在準備CKA考試時我自己努力和困難點的一些心得。即便真正能在實際環境中發揮能力是另一個階段,但通過這個考試可以證明我已經在基礎和系統性學習方面取得了一些成果。我認為這也使得可以更容易地以日語進行考試。未來,我希望將運用和開發方面的經驗和驗證結果作為寶貴的技術知識保留下來。
请参考
博客
-
- Tips to crack Certified Kubernetes Administrator (CKA) Exam
-
- Certified Kubernetes Administrator (CKA) を取得してみた
-
- Certified Kubernetes Administrator(CKA) を取得しました
-
- Certified Kubernetes Administrator 試験に挑戦してみた。
-
- CKA (Certified Kubernetes Administrator) に受かったので所感とか
-
- Certified Kubernetes Administrator (CKA) 取得した
-
- Things to know before taking Certified Kubernetes Administrator (CKA) Exam
-
- Certified Kubernetes Administrator (CKA) 受験ログ
- Certified Kubernetes Administrator(CKA)を取得した
GitHub – 代码托管平台
-
- kelseyhightower/kubernetes-the-hard-way
-
- walidshaari/Kubernetes-Certified-Administrator
-
- Kubernauts – Kubernetes Learning Resources
- ahmetb/kubernetes-network-policy-recipes
书籍
-
- Managing Kubernetes
- Kubernetes: Up and Running