一个应用程序工程师尝试参加 CKA 和 CKAD 考试
首先
我是一名应用程序工程师,为了在工作中使用Kubernetes,我决定参加CKA和CKAD的资格考试。
Kubernetes是一项对于基础设施工程师和应用程序工程师都必要的技术,要精通它,需要同时具备基础设施和应用程序开发的技能。因此,为了提升自己的能力,我决定同时拥有CKA和CKAD的资格认证。
我首先參加了CKA考試,然後是CKAD。我本來打算連續考取這兩個證書,但由於工作繁忙的原因,CKA和CKAD的考試日期相隔了約兩個月。
我考了CKA和CKAD考试,以下是我的感受。
CKA和CKAD考试概要
CKA(认证的Kubernetes管理员)
对于系统管理员的资格证书来说,范围非常广泛,包括集群构建、运维和集群故障排除等多方面的问题。
如果没有理解故障排除的情况分析和问题解决的模式,可能会遇到相当棘手的情况。对于应用程序工程师来说,尤其要记住与设置和调查相关的命令。
另外,在AWS EKS、GCP GKS等托管服务中,不需要进行构建和运维工作,但在CKA中需要先了解原生的Kubernetes。
CKAD(认证的Kubernetes应用开发者)
这个资格是专为应用开发者而设的,它主要考察创建应用发布所需资源的问题。
虽然CKAD考试中会涉及一些只有CKAD才会被问到的资源,但只要事先做好这方面的准备,作为CKA合格者应该不算太困难。
在先前听过已经参加过考试的人的经验分享中告诉我时间不够用的情况后,我在考试时特别注意时间分配。对于花时间较多或者不懂的问题,我选择将它们放在后面回答;而对于我能够理解的问题,我选择先回答。这样,我就能在后半部分不慌不忙地按照我的节奏回答问题。
考试的过程
-
- 受験した場所
-
- 試験会場でなく、条件を満たす場所であればどこでもOKとのことだったので、私は自宅で受験しました。
-
- なるべく物が少ない部屋を選び、事前に室内の物を別の部屋に片付けるくらいで、特に問題なく受験ができました。
-
- Webコンソール画面の操作感
-
- Webのコンソール画面で受験するとのことで、レスポンスや操作感が気になりしたが、レスポンスも素早く、操作感も問題ありませんでした。
-
- 問題文に作成対象の名称をコピーするボタンがあるので、とても便利ですよ。(先に受けたCKAの受験時にはなかったので改善されたんだと思います。)
-
- 受験結果の連絡
-
- 36時間以内に通知が来ます。2回とも30時間ぐらい後にメールが来ました。
- 日本時間の真夜中でもメールは来ます。
在CKA和CKAD考试的学习过程中,你做了些什么?
用书籍理解
-
- Kubernetes完全ガイド
- 出題されるほとんどリソースを網羅されています。ひと通り読み試して覚えましょう。
通过网站上的信息进行理解
-
- Kubernetes公式サイトのDocumentation
-
- https://kubernetes.io/docs/home/
-
- 受験中に唯一検索してよいサイトです。どこに何が書いてあるのかを把握しておきましょう。
-
- Kubernetes Hard Way
-
- https://github.com/kelseyhightower/kubernetes-the-hard-way
-
- GCP上にすべて手動でkubernetes環境を構築するチュートリアルです。参考までにやってみました。
-
- Installing kubeadm
-
- https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/
- Kubeadmを利用したセットアップ方法のチュートリアルも試しておきました。
学会更快地掌握回答技巧。
考虑到考试时间有限,我们需要更快地执行命令并快速创建资源。因此,建议我们提前掌握一些考试准备的技巧。
- kubectlコマンドをエイリアスで短縮化、コード補完を設定
alias k=kubectl
complete -F __start_kubectl k
- コマンドでリソースを作成
为了能够在短时间内创建资源,原本应该编写YAML来创建资源,但我们尽量通过命令来创建。
然而,由于不同的命令可以创建不同类型的资源,且命令对可设置的参数有限制,所以需要提前了解如何创建。
此外,无法在命令上指定的参数,可以通过命令选项–dry-run -o yaml指定输出到文件,然后使用vim编辑文件并执行。
(1)使用kubectl run命令创建
下面是一个示例图像。
kubectl run (pod-name) --restart=Never --image=(image-name) --dry-run -o yaml
kubectl run (deployment-name) --image=(image-name) --replicas=3
kubectl run (pod-name) --restart=OnFailure --image=(image-name)
kubectl run (cronjob-name) --restart=OnFailure --schedule="*/1 * * * *" --image=(image-name)
(2)使用kubectl create命令进行创建
是以下图像的样子。
kubectl create configmap (configmap-name) --from-literal=key=value
kubectl create secret generic (secret-name) --from-literal=key=value
(3)使用kubectl expose命令创建
如下所示的图像。
k expose deployment (deployment-name) --name=(service-name) --type=ClusterIP --port=80
kubectl expose deployment deployment-name --name=service-name --type=NodePort --port=80
(4)从Kubernetes官方网站的Documentation中复制yaml源代码并创建
用模拟测试进行练习
为了熟悉考试,我购买了附带模拟测试的Udemy Kubernetes课程,并一直重复练习模拟测试。通过模拟测试,我可以在规定时间内快速创建资源,并熟悉故障排除问题。
-
- Udemy 「Certified Kubernetes Administrator (CKA) with Practice Tests」
-
- https://www.udemy.com/course/certified-kubernetes-administrator-with-practice-tests/
-
- Udemy 「Kubernetes Certified Application Developer (CKAD) with Tests」
-
- https://www.udemy.com/course/certified-kubernetes-application-developer/
-
- CKAD-exercises
-
- https://github.com/dgkanatsios/CKAD-exercises
- CKAD向けですが、CKA向けでも使えます
对于通过考试的感受
虽然取得了资格并不意味着实际上可以运用,也需要掌握取得资格的技巧,但这是一个好机会,可以整体理解和再确认包括自己不擅长的部分。
CKA和CKAD所涵盖的范围只是Kubernetes世界最基础的部分而已。我希望能够牢固掌握基础知识,更好地利用Kubernetes。