由于在短时间内成功完成了Kubernetes的CKA、CKAD和CKS认证,现在分享攻略方法(学习方式和诀窍)
首先
我在2022年8月至11月期间的大约3个月时间里成功获得了Kubernetes的CKA、CKAD和CKS三项认证,特此记录。
由于强迫期限太短,我认为最好不要去模仿,但如果参考本文的话,在五个月内拿下三冠是可以实现的。希望除了学习时间之外的部分能够对你有所帮助。虽然这是关于考试备考的内容,但是这将确实提升你的实力。相反,如果没有实力,就不可能通过考试,所以说通过考试等于提高实力并不夸张。(像穆斯卡大佐一样,拥有资格证书后会变成“我可以读了,我可以读了!”状态)。”Pod永不灭亡!无论多少次都会复苏!”
笔者和读者的目标
我在没有Kubernetes实际工作经验的情况下获得了认证。
(例如,在工作场所有Kubernetes环境但没有实际操作经验的人,稍微接触过minikube的人,以及对Kubernetes并不了解的人等)
对于已经在工作中使用Kubernetes的人来说,我希望你们能够认为资格证书的难度会减少一半甚至更多。
Kubernetes的氛围
我觉得有点复杂,理解起来很困难,但确实如此。
一旦获得资格,我就能完全理解这些图表。
這個句子的中文翻譯如下:
取得資格的那天和考試的感受。
-
- CKA 9月30日
問題数は17問あり、想定通りの問題がいくつかありつつ、捻った問題が4問ほど合ったので苦戦した。
一周して見直しする時間は合ったのでよかった。
CKAD 10月4日
問題数は17か18問で、CKAと同じような問題があったので比較的楽にできた。
Pod操作メインだったので、楽にクリアできたような気がしました。
十分見直す時間があったので、最後は落ち着いてできました。
CKS 11月9日
超難しかった。一つ一つの問題が重すぎて大変だった。
最後の問題がボーナス問題で確実に点が取れたが、なんと時間切れで、最後の問題が途中で終わった。
当然、見直し無しだった。この後、話で出てくるkiller.sh並に難しかった。
刻苦学习时间
工作日每天需要工作3-4个小时,休息日约定需要工作8个小时。
某些愉悦的基础知识和经验
-
- Linuxの基本コマンドとネットワーク、プロセス周りのコマンド (netstatやpsコマンドなどバリバリ試験で使います。)
ここはMUSTでした。必ず基本コマンドは慣れておくようにしてください。
Dockerなどのコンテナ知識 (DockerFileに書き慣れていると、マニフェストが読めるようになりやすい)
何かしらのサービス開発やサービス運用の実務経験でサービスの流れがわかっていること(なんでこの機能がいるのか?と言う疑問が沸きにくくなるのと、その経験とKubernetesの機能が合致した時に完全に理解した!!状態になれる)
关于资格考试的预备知识
关于每个资格的简要说明
各資格は試験範囲については下記のgithubで管理しています。
ではそれぞれの資格を私なりに解説して行きます
CKA (Certified Kubernetes Administrator) 這個詞組的中文可以翻譯為”Kubernetes 認證管理員”。
Kubernetes管理者と言うだけあり、Kubernetes自体について知ることができる資格になります。
ですので、Kubernetesの基本操作から始まり、Kubernetesのコントロールプレーンと呼ばれる核となるシステムの動作、設定方法、バックアップ、リストアなどを扱います。
管理者側としてどのようにサービスを動作させるかを考え、もしサービスが止まったらどうやって対処するかなど、サービス保守運用の基礎の基礎を学べる良い資格になります。
CKAD
アプリケーション開発者として、Kubernetes上でどうやってデプロイするかを重点的に学ぶことができます。
Kubernetesの基本操作から始まり、アプリケーションの色々なデプロイやマニフェストをメインに学びます。デプロイする種類がいくつかあるので、それらの特徴を学びます。Kubernetes自体の構造に関しては浅めに学ぶので、開発者目線でどのようなマニフェストを描くかなどを多く学びますので、結果的にPod操作も多くなってきます。
幸か不幸かCKAと8割ほど試験範囲が被っていますのでCKA、CKADはほぼセットで取得すると良いかと思います。
孙中山
※CKAを取得しないと受験資格すらないため、実質CKAの上位資格の位置付けになります。CKSを目指すならまずCKAを取得することを目指しましょう。
セキュリティスペシャリストと言う名前の如く、Kubernetesを運用していくためのセキュリティノウハウをこれでもか!ってぐらい学ぶことになります。
この資格の大きな特徴はセキュリティノウハウであるが故に半分以上はKubernetesの範囲を超えています。誤解を恐れずに言うと、正直もうKubernetesとは関係ないです。
なぜなら、セキュリティにおける有名なサードパーティ製のOSSツールを使った問題が大半を占めているからです。そのツールをKubernetesに設定することになりますので、別ツールとKubernetesを紐づけるために設定を行なっていくイメージです。めちゃ根気がいる箇所になります。(Kuberntesと、興味もない複数の知らないツールを同時に勉強している状況のため、私は短期間で何回も心が折れております。ええ、折れましたとも何回も?)
考试的难度如何?
中央銀行家股票比中央銀行行員股票高于等于中央銀行駐外辦事處派駐人員股票。
合格的要求是什么?
CKA,CKAD 66スコア以上で合格
CKS 67スコア以上で合格
各試験には重み付があるので、配点が多いものはできれば取っておきたい。
幸運なことに、部分点があるため、難しいと感じながらもやれるところまでやると、合格率がかなり上昇します。
我应该从哪个资格开始取得?
どの資格から取れば良いかわからない方はまずCKAをお勧めします。
Kubernetesそのものがどのように動いているかがかなり細かく学べますので、ここでしっかりと基礎を身につけておくと楽になります。
在那之后,我将挑战CKAD。由于CKA和CKAD之间只有一些差异,如CronJob、Job和部分清单等,所以学习的工作量相当少。通过先学习CKA的基础知识,然后再考CKAD,可以相对容易地获得资格认证。一旦获得这个资格,就可以说对Kubernetes已经有了相当的了解。
が、セキュリティはサービス運用において切っても切り離せないほど重要な項目ですので、CKSの受験有無問わず、試験勉強することで、今まで見えていなかったセキュリティに対する意識や目線、ノウハウを身につけることができます。このノウハウはKubernetes以外でも使えるので、今は学んで良かったと本当に思っています。
CKSはある種、苦行、修行モードのようなものに入るので、腹落ちするまで理解するには十分に時間をかけて勉強する必要があります。それを乗り越えた先は、明るいです。
所以,以上就是前言。我们将逐一解释如何攻克Kubernetes的认证考试。
在进行资格考试准备之前,先对教材进行补充说明。
基本的にudemyをお勧めしていますが、定価が24000円などかなり高いので、セールの日を狙って購入するようにしましょう。
いつのセールでも良いのですが、おおよそ1900-2300円前後まで安くなるので、90%以上のセールならいつでも購入して良さそうです。
CKA
教材 – 教材
基本udemyで完結します。こちらのコースを購入することで無料のKodeKloudと言うシミュレーターを使って手を動かしながら、学べます。先日、完全日本語化したので今の人は学びやすいです。
udemyでわからなかったことがあったら原則公式ドキュメントを見る。暇な時も公式ドキュメントを読む。
※この行為は超重要です。なぜなら、基本的に資格試験の答えが公式ドキュメントにサンプルコード付きで載っているからです。
なので公式ドキュメントをある程度どんなところにほしいサンプルコードがあるかを体に染み込ませるぐらい、必要です。
公式サイトに検索機能があるので、原則検索機能を使ってページ移動するようにしてください。
バウチャーを買うと2回分の模擬試験が使えます。試験直前の仕上げに使うことをお勧めします。
1回使うことで、特定の環境を36時間使えるようになり、36時間経過するまでは何回でも模擬試験を受けることができます。
またこの模擬試験は本番試験よりも遥かに難しくかつ問題数も多いあるため、絶対に試験時間2時間以内に終わることはありません。
ここで心を折れる必要はないです。時間切れになってもいいので、何回も問題を解くようにて理解に努めてください。
本番は簡単に見えてきます。
あと忘れてはいけないのが、リモートデスクトップという超やりづらい環境をkiller.shで体験できることです。
特にブラウザ、ターミナル間のコピペのショートカットが全く違うので、killer.shでスムーズにコピペできるように練習は絶対にしてください!絶対にしてください!
本番試験の合否に関わってきます。
作为补充,青山的《Kubernetes》这本书非常出色。但由于该书内容真的非常全面,我认为与其作为资格考试的学习材料,不如将其用作字典工具。由于这本书非常详细地解释了各个细节,理解全部内容将让你变成超人。
勉强的趋势
-
- udemyの解説動画を一語一句ちゃんと聞いて理解する。
バックミュージックがないので、私は延々とBGMを流しながら、udemyを勉強してました。
モチベ維持と、この曲を聴くと勉強モードに切り替わるような習慣化につながるのでお勧めです。
kodekloudで小テストをやって8〜10割理解できたら次に進む。
小テスト中もわからないところは、必ず公式ドキュメントを読む癖をつける。
udemy, kodecloudが一通り終わったら、kodecloudにある、「トラブルシューティング」、「Lightning Labs」、「exam mock1-3」は、かなり時間の余裕を残しつつ、満点近く取れることまで行う。
暗記ではなく、理解しながらコマンドを打っているし、そのConfigを修正しているなど腹落ちを意識して解くようにする。
熱が冷めないうちに試験日を2週間先ほどに設定しておく。(試験日は平日木曜日あたりとかが良いかもしれないです。)
試験の前の週までには仕上がったという自信がついていれば、その週の土日を使ってKiller.shの一回を使う。
豆知識として、模擬試験の有効時間は36時間なので、土曜日の12時に開始したら、日曜日の24時にちょうど終われるので、自分に合ったペースで行う
ここで余りの難易度の高さに、試験の半分も解けずに時間切れになるため、心が一回折れます。
あとは時間切れのまま、解説ページを見つつ、解けなかった問題を解きます。
そして環境をリセットして、再度模擬試験に挑戦して、1回目より少し進めばOKです。
そして解説なしでどこまで解けるか挑戦します。
感覚としては2時間で5、6割解ければOKです。
土日、ずっとkiller.shをやっているんで心を2,3回以上折られますが、何回か解いていくと、急に見えてくるようになります。
killer.shの戦いが終わった余韻として、月曜日から水曜日はudemy, kodecloudにある、「トラブルシューティング」、「Lightning Labs」、「exam mock1-3」あたりを解いて自信を取り戻します。
本番に挑戦します。
試験のちょうど24時間後の翌日に試験結果が出ます。
以下是我在通过考试之前采取的行动。
在我这种情况下,即使没有通过考试,也有一次免费的重考机会“killer.sh”,所以我预计可以从步骤3左右重新开始并成功通过考试。
作为重要的补充说明,如果在考试前大约两天内觉得完全没有通过的把握,建议毫不犹豫地推迟考试。推迟考试的期限是离考试开始时间不到24小时时无法再进行推迟(我在CKS考试前一周就判断我现在的理解程度无法通过,所以将考试日期推迟到两周后)。
CNCF认证Kubernetes应用开发工程师
教材 -> 学习资料
通过购买这门课程,您可以使用名为KodeKloud的模拟器进行实践操作,这个课程基本上是在Udemy上完成的。最近它已经完全日语化了,所以现在的学生学起来更加容易。
阅读公式文件。※这个行为非常重要。省略
試験内容が数回心を折ってきますが、踏ん張る!内容割愛
リモートデスクトップ上のブラウザ、ターミナル間のコピペのショートカットのコピペの練習は絶対にしてください!絶対にしてください!
本番試験の合否に関わってきます。
努力的趋势
-
- 在CKA和CKAD的考试中,使用几乎相同的策略是没有问题的,但由于涵盖的范围重叠,所以在CKAD课程中可能会播放完全相同的视频内容,因此可以跳过那些已经重叠的部分,只需看未被涵盖的内容即可。
由于Cron Job、Job、2021年新增功能以及容器相关的部分有差异,所以需要学习一下。
不过,我建议在复习的同时,完成KodeKloud网站上的所有任务。另外,在考试前的那个周末,可以按照之前的流程进行killer.sh的练习,我觉得那样应该没问题。
中正先生
教材 – Textbook
基本上,這次課程將在Udemy上完成。由於講師不同,我們將使用名為KillerCoda的模擬器來進行實踐操作並學習。雖然它不支援日語,但您可以在影片右側顯示對話字幕並使用Chrome的翻譯功能,以實際上以日語字幕觀看並學習。
学習内容はサードバーティのOSSのfalcoやtrivy、OPA、gatekeeper、seccomp、cis-benchmarkなど色々学ぶ必要があります。習得する項目が多くて大変ですが、焦らず少しずつ時間をかけて理解していきましょう。udemyを繰り返し見れば、いずれ理解できるようになります。
CKSのみfalcoやOPAなどの公式サイトを見れるように配慮されていますので、少し覗くといいと思います。
特にfalcoのここは必須級で使いますので、ここのページの存在意義がわかるタイミングで思い出してもらえればと思います。
udemyが終わって満足の方が唯一満足できないのが、小テスト数と難しさかと思います。なので、ここでもう一押しした人向けには、CKA時代からお世話になった人のサービスのCKSコースを使うことをお勧めします。こちらは無料コードはないので、月額35ドル払って一ヶ月で仕上げる気持ちでやれば問題ありません。(その他色々コースが見れたりするので、もう少し払い込んで、色々なコースを学ぶのも良さそうです。)
実際に私も1ヶ月払ってやりました。mock examの難易度も高くポイントが絞られていてよかったです。お勧めです。
文件公式。省略
今まで一番試験内容が心を折ってきますが、踏ん張る!内容割愛
リモートデスクトップ上のブラウザ、ターミナル間のコピペのショートカットのコピペの練習は絶対にしてください!絶対にしてください!
本番試験の合否に関わってきます。
勉強の流れ
-
- CKSを学んでいると、Kubernetesを勉強していないような錯覚になるので、辛い感じがしますが、だんだんわかってくると、「これって今の仕事で使えそうだ」とか、そういった別観点でのモチベーションが湧いてきますので、そのモチベーションが湧くか、自身で何かしらモチベを上げるようにすることをお勧めします。
-
- udemyが終わった後、KillerCodaでCKSの練習問題があるのでそれらを一通り解いてみてください。
-
- そして試験の前の週の土日でkiller.shやって〜の流れは同じなので、それでいけるかと思います。
- (冒頭でも書きましたが、CKSは非常に難しかったです。killer.shに並ぶ難しさでした。なのでkiller.shの練習問題の理解が最重要になります。)
填补
CKSで直近の注意点としては1.24バージョンではPSPという機能を使えていますが、すでに非推奨になっており、1.25バージョンでは機能が削除されて別の機能を代用するようになっています。
CKA,CKADはすでに1.25バージョンに対応しているが、2022年11月12日時点ではまだCKSは1.24バージョンですので、非推奨のPSPが試験範囲になります。実際受験する際にPSPの試験が出題されました。
バージョンアップによるカリキュラムの変更があるため、CKSの受験時期は少し注意したほうが良いかもしれないです。
在考试中表现出色的个人必备命令集
多すぎて書ききれませんでしたが、よく使っているコマンドをいくつか並べました。
あとは、勉強していく際にここに書いてあるコマンドは出てくるので、それは手癖のように打てるようにした方が良いです。(出ないと、時間切れで詰みます。)
※ 出现在命令中的 k 是 kubectl 的快捷别名。在实际的测试中也可以使用。
由于在“チートシート”页面上,您可以学习各种快捷方式,因此这个页面是必看的。
当我们想要确认某个资源时,这会很方便使用。
k get all -A # 全てのネームスペースのリソース全表示
k get all -n hogehoge #特定のネームスペースのリソース全表示
k get all --show-label # ラベル使うことが多いので、ラベル確認した時
k get po --all-namespaces # 全てのネームスペースで特定のリソースを表示したい時
何かpodを作れと言われた時
#一番簡単にpod名はhogeで中身はnginxというpodを作る
k run hoge --image nginx
#最重要 ドライランでpodを作らず、マニフェストを作るだけのコマンドでそれをpod.yamlに出力する。
#ドライランは一番多用するので慣れておくこと。
#理由は、細かい設定を記載する際に簡単なテンプレートをドライランコマンドで作ってから作業するため。
k run fuga --image nginx --dry-run=client --oyaml > pod.yaml
当希望发布特定的pod服务时
# pod同士で通信する際はserviceというリソースを介して通信するのが慣わし。
$ k expose pod hoge --port 80
$ k get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
hoge ClusterIP 10.106.184.118 <none> 80/TCP 21s
当被要求除了Pod和服务之外创建其他东西时
# パッとdeploymentを作りたい時、しかもpodは3つの例
k create deployment hoge --image nginx --replicas 3
# パッとdeploymentを作りたい時、しかもpodは3つの例 だけどもっと細かく修正したい場合、
k create deployment hoge --image nginx --replicas 3 --dry-run=client -oyaml > deploy.yaml
我希望删除pod。
# 通常の削除
k delete pod hoge
# 待ち時間すら惜しいので一瞬で削除したい場合。(試験時の時間節約に役立つ)
k delete pod hoge --force --grace-period 0
如果需要编辑pod中需要重新制作的部分。
# editコマンドで直接修正します。
k edit po hoge
# 修正できない旨があるがそれでも保存します。そうすると、以下のtmpファイルが作成されます。
$ k edit pod
error: pods "hoge" is invalid
A copy of your changes has been stored to "/tmp/kubectl-edit-132148342.yaml"
error: Edit cancelled, no valid changes were saved.
# この状態でリプレイスコマンドで差し替えます。
$ k replace --force -f /tmp/kubectl-edit-132148342.yaml
pod "hoge" deleted
pod/hoge replaced
#この方法で hogeをdeleteする時間が長い場合は、下記のようにすることで高速でpodを起動することができる
k delete pod hoge --force --grace-period 0
k create -f /tmp/kubectl-edit-132148342.yaml
查看错误内容和状态信息
k describe [po/deployment/svc/secret/などなど] [リソース名]
总结
这次怎么样呢?希望通过这个能够增加一些Kubernetes的资格获得者和工程师。
可能由于急于表达,所以如果有错误的话,希望能够给予评论,我会非常感激!
如果有类似”这个命令也很方便”之类的,请给予评论,我会很高兴的。
對於沒有實務經驗的我來說,我終於完成了CKA、CKAD和CKS的教程考試。
現在我要開始了,所以讓我們大家作為Kubernetes工程師來創造出優質的服務吧。
twitterでもKubernetesについて発信などしていますので、興味があったらフォローをお願いいたします。
非常感谢您看到这里。