由于通过了CKAD考试,所以我打算考虑制定学习路线图

首先

無題.png

关于考试内容我们无法提及,但回顾起来,我有一个想法是如果我在意学习的顺序和要点的话,可能会更快进步。所以我决定将以前学习的内容整理成一张路线图,或许这个做法有些片面,但希望对即将开始学习的人有所帮助。

前面所说的条件

    • 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考試吧!!