由于通过了CKAD考试,所以我打算考虑制定学习路线图
首先
关于考试内容我们无法提及,但回顾起来,我有一个想法是如果我在意学习的顺序和要点的话,可能会更快进步。所以我决定将以前学习的内容整理成一张路线图,或许这个做法有些片面,但希望对即将开始学习的人有所帮助。
前面所说的条件
-
- Linuxコマンドが実行できる環境を準備できる
-
- Linuxの基本的なコマンドが手に馴染んでいる
-
- Docker/Kubernetesは聞いたことあるけど触ったことがない
- DockerとKubernetesについてそれぞれ2~30時間程度の勉強時間
路线图
让我们来理解Docker
首先,我們要從理解Kubernetes的主要容器執行環境開始。容器執行環境實際上有多種,但目前最主要的是Docker很適合。首先,讓我們輕輕地瀏覽共享的幻燈片資料,以便了解整個概念。例如,@zembutsu先生分享的幻燈片非常完整,我認為看P1~79可以很好地理解概念。
我认为作为下一个输入,购买一本书重视入门部分并试着阅读是一个好主意。
因为入门书籍大致上都有涵盖,所以选择您喜欢的那本就可以了。
我购买了《Docker实践指南》这本书,是一本很好的书。
在Twitter等社交媒体上,《Docker/Kubernetes实践容器开发入门》好像有很好的口碑。
如果优先理解Docker,建议考虑采用以下阅读方法。
-
- コマンド部分は後ほど写経するため、まずは説明を中心に一周読み進める
Kunbernetes部分は後ほどまとめて学習するため、眺める程度にする
准备Docker环境
让我们准备一个可以动手操作的环境吧。虽然我个人用的是Windows机器,但我推荐使用Katacoda的Docker Playground。因为在环境搭建方面往往容易遇到一些问题。可能会有类似于在河边堆石头的体验。如果你是Mac用户,也可以参考使用Dotinstall等准备好的资源。
让我们熟悉Docker命令吧。
尝试执行Web上的各种初学者资源或购买的书籍中提到的命令,并确认发生了什么。
虽然Kubernetes环境中要执行的kubectl命令与之不同,但有很多相似之处。
即使出现错误,通过查找错误消息并进行修改,积累解决错误的经验,使其变得熟悉。
如果你不能解决错误,感到沮丧,我建议你搜索相同的命令并复制粘贴,同时对比自己的命令和差异,这样会对学习更有帮助,比沮丧要好百倍。
让我们来理解CKAD
当我们理解了Docker的概念并熟悉了其语法时,就可以开始将内容迁移到Kubernetes上。
对于那些已经深入理解Kubernetes的人来说,他们希望轻松地获取资格是理想的,但实际上很多人在日常工作中都很忙,或者与工作直接相关的人可能很难保持动力。
在这里,我们将通过自信地学习来获得资格认证,确认CKAD的学习范围。
我认为可以参考Creation Line公司的页面说明来了解题目范围。关于CKAD的概述如下所述。
-
- 基本コンセプト
-
- 設定
-
- マルチコンテナPod
-
- ログなどによる確認
-
- Podの設計
-
- Serviceとネットワーク
- 状態の永続性
就CKA的概要来说,如下所述。虽然有一些共同之处,但也存在节点操作等的差异。
-
- アプリケーションのライフサイクルの管理
-
- インストール、設定および確認
-
- 基本コンセプト
-
- ネットワーク
-
- スケジューリング
-
- セキュリティ
-
- クラスタの管理
-
- ロギング/モニタリング
-
- ストレージ
- トラブルシューティング
也许你现在会觉得这是什么东西?但是我认为在寻找资源时,重点应该放在与CKAD课程相关的部分上。因为Kubernetes非常功能强大,还有许多方便的工具也已经发布了,这是它的魅力之一,随之而来的是可获得的资源范围也非常广泛。我自己也曾经绕了弯路。
来了解一下Kubernetes
首先,让我们快速浏览共享的幻灯片材料,以便形成一个大致的印象。我觉得@daebum_lee发布的幻灯片有很多图片,很容易理解。
为了更好地理解Kubernetes,不仅要了解其概念,还建议购买相关书籍。根据以下条件,我选择了《Kubernetes完全指南》并实际阅读了它,非常满意。
-
- 図が多く、新しい概念が連続してもとっつきやすい
-
- CKADに限らずKuberneteについて広く解説されていて、資格取得後も使える
- コマンドとマニュフェストの記述が多く、後述の演習に利用しやすい
作为希望你记住的一点,我认为在这个阶段你不需要完全记住手册的写作方式。原因将在后面解释。
准备Kubernetes环境
在Katacoda上,你可以像Docker一样尝试命令,但对于Kubernetes,请认真准备环境比较好。
由于CKAD是一个比CKA时间更短的练习形式的考试,因此最好在输入命令时有较少延迟的环境中进行学习。
对于构建方法,我们进行了各种尝试和试错,但我认为参考下面的Qiita文章,使用–vm-driver=none选项启动minikube环境可能是最方便的。
-
- CentOS7.5にminikubeをインストールする
- Minikubeを使ってローカルにkubernetes環境を構築
建议使用Docker for Windows的用户或在公司内使用代理环境的用户,可以考虑利用公共云等方式来准备Linux环境。这样做的原因是,如果构建过程出现问题,很难排查。
试试使用–dry-run来创建一个yaml文件。
這篇文章最重要的部分是:
環境也準備好了,現在是要跟著書上的指令進行操作的時候了。
在寫著Manifest的時候,也許會覺得必須要記住這麼多種不同的符號,可能會因為這些而有點灰心喪氣,如果是這樣的話,請稍微等一下。
參考《Kubernetes Tips: kubectl でマニフェストの雛形を作る》,使用 `kubectl run` 命令並帶上 `–dry-run -o yaml` 選項,以確認 yaml 檔案的內容和創建的內容。
$ kubectl run foo --restart=Never --image=nginx --dry-run -o yaml > foo.yaml
$ cat ./foo.yaml
我认为在上述示例中生成了如下文件。
通过使用kubectl run –help命令查看选项,并添加选项,可以生成更多项目。
apiVersion: v1
kind: Pod
metadata:
creationTimestamp: null
labels:
run: foo
name: foo
spec:
containers:
- image: nginx
name: foo
resources: {}
dnsPolicy: ClusterFirst
restartPolicy: Never
status: {}
这可能会让人觉得有些奇怪,但是–dry-run技巧本身在kubernetes.io上也有介绍。
通过以无法通过–dry-run生成的项目(比如volumeMount等)为重点进行后续练习,可以缩小需要自己记住和编写的项目范围,从而减少学习成本。
熟悉kubectl命令
让我们执行先前阅读的书中提到的kubectl命令,创建并执行清单文件。如果您使用的是minikube环境,可以在一个终端中运行minikube tunnel命令,以便利用LoadBalancer的ExternalIP。
$ minikube tunnel
Status:
machine: minikube
pid: XXXXXX
route: <Kubernetes内部ネットワーク> -> <ノードのIPアドレス>
minikube: Running
services: []
errors:
minikube: no errors
router: no errors
loadbalancer emulator: no errors
如果在运行时发生错误,请检查错误的内容并熟悉修正错误的步骤,这样即使在考试中遇到错误时也能节省时间。
如果无法解决错误,可以在kubernetes.io官方文档中搜索有关无法记住的选项和记法,其中包含了有用的示例清单。
由于这些文档可供在生产环境中参考,建议您提前熟悉它们。
就像大多数考试经历中所写的那样,CKAD-Exercise是一种很棒的练习资源,最好是重复地练习,直到可以轻松解决问题。
就像热身动作一样,对于建立基础力非常有用。
我也会介绍其他可能用于练习的资源。虽然我第一次考试就通过了,但如果不合格的话,我打算利用以下资源准备再次参加考试。
-
- [Linuc Academy] Certified Kubernetes Application Developer (CKAD)
-
- [Cloud Academy] Preparation Exam: Certified Kubernetes Application Developer (CKAD)
- [Udemy] Kubernetes Certified Application Developer (CKAD) with Tests
我想要報名考試。
终于到了安排考试时间的时候了。
虽然有两个申请地点可选择,但是只需要参考前面介绍的Creation Line公司的页面上就已经有说明了他们之间的区别。
對於減少考試前的不安感,我認為閱讀考生經驗記並進行考試想像訓練是一個不錯的策略。
由於我在第一次考試準備期間以來已經過了一段時間,所以可能會有新的考生經驗記被撰寫出來。
藉由閱讀這些考生經驗記,我們可能會發現自己遺漏了一些考試重點,或許還能找到一些新的小貼士。
事實上,我自己在考試前發現了這些考生經驗記,並且發現了一些自己之前忽略的部分,對我很有幫助。
最後去的时候 qù de
我想再次概括一下我特别想表达的事情。
-
- スライド→文章→演習の順で学習する
-
- マニュフェストファイルは見慣れるまで極力手で書かない。
- コマンドを手に馴染ませる。エラーの解消にも慣れる。
如果您閱讀了這篇文章,試著挑戰CKAD考試吧!!