从零开始的Linux经验,直到通过CKAD(认证的Kubernetes应用开发人员)考试

关于这篇文章

这次我成功地通过了基于云原生计算基金会认证的Kubernetes开发者资格考试——”认证Kubernetes应用开发者(CKAD)”!

合格证

IMG_2826.jpg

在这篇文章中,我想要分享有关准备资格考试的学习方法等内容。

由于保密义务,关于出现了什么问题我们没有写出来。

我的先验知识

我的職業生涯始於Java開發者,之後長期以來一直擔任Java相關培訓講師。我負責的培訓主要是應用開發方面,如Spring和Java EE等,實務和培訓都幾乎沒有基礎設施方面的經驗。

    • Linuxにはほぼ触れたことが無い

個人・業務ともMacなのでbashコマンドなどは多少分かる
viエディタによるテキストの編集・保存はできる

普段からDockerは使っている

データベースなどのミドルウェアはすべてローカルのDockerで動かしている

ネットワーク系の知識は多少ある

「マスタリングTCP/IP」読破

CompTIA Network+(ネットワークの入門資格)所持
ネットワーク入門研修を担当経験あり

Cloud Foundryの知識は多少ある

Pivotal Cloud Foundry(今で言うPivotal Application Service)の開発者向け資格所持、およびその認定講師

为什么你想要参加考试?

最近我负责Kubernetes的培训。因此,为了这个原因,我希望给自己增加自信心。

今年参加了Pivotal SpringOne Platform会议,深切感受到了Kubernetes的主导趋势,这让我意识到了必须下定决心全力以赴的契机。

备考学习

首先是通过书籍进行学习。在各种日本书籍和西方书籍中阅读后,我找到了适合自己的两本书。

Kubernetes实践指南

这本书的特点是图示丰富。我看了很多本书也没有理解Kubernetes的机制(尤其是Service),但是通过读这本书终于能理解了。

CKAD考试中最重要的是第1部分(第1章至第5章)。

Kubernetes完全指南

这本书的特点是包罗性和深入解释。更倾向于是一本类似参考书的印象。

在CKAD考试中,以下章节是重要的。

    • 第4章 APIリソースとkubectl

 

    • 第5章 Workloadsリソース

 

    • 第6章 Discovery & LBリソース

 

    • 第7章 Config & Storageリソース

 

    • 第9章 リソース管理とオートスケーリング

 

    • 第10章 ヘルスチェックとコンテナのライフサイクル

 

    • 第13章 セキュリティ

 

    第16章 コンテナログの集約

实际操作Kubernetes

我不仅仅阅读了上述的书籍,还进行了Kubernetes的实际操作学习。

由于CKAD考试并不是面向管理人员的资格认证,因此您不需要自行安装Kubernetes。

对于管理者来说,还有一个称为Certified Kubernetes Administrator(CKA)的资格认证。

我使用的Kubernetes环境包括以下三个选项。

    • Docker for Mac

Docker内でKubernetesを動かす環境
ローカルマシンで動かすのでとにかくお手軽
反面、シングルノードなのでネットワーク通信の仕組みなどが想像しづらかった

Google Kubernetes Engine (GKE)

Google Cloud上のKubernetes環境
クラウドでのKubernetes環境の中では、環境構築手順などが比較的お手軽
Kubernetesのバージョンがやや古いのが難点

2019年11月時点では、CKAD試験で使われるKubernetes 1.15に対応していなかった

Azure Kubernetes Service (AKS)

Microsoft AzureのKubernetes環境
2019年11月時点ではプレビュー扱いだが、Kubernetes 1.15を利用できた
GKEよりはちょっと環境構築手順が難しかった

無料体験の範囲だと2ノード(正確には4 CPU)までしか使えないが、AKSのデフォルトでは3ノードになってて最初の構築に失敗した、などなど

最开始我们使用的是Docker for Mac,然后一段时间使用了GKE,只在考试前的几天使用了AKS…未来可能会主要使用AKS。

由于GKE的免费试用期已过,所以我以付费方式继续使用它。不过,仅针对学习目的,每天只需要花大约100日元。

实际上,最初的云环境我们尝试了Amazon EKS,但由于某些配置不当无法正常运行,所以我们转而使用了GKE…

2020年1月23日追記:今天重新尝试了一下EKS,正常运行了。真不知道刚才是怎么回事…

CKAD练习

在CKAD考试备考中,这是最重要的。

这是一个由有志之士创建的仓库,可以练习CKAD考试中的重要命令。在正式考试中,应该使用的命令水平几乎和这个练习一样。只要掌握得好,就能顺利通过考试。我已经练习过两次了。

同时进行命令本身的练习

    • コマンドに -h を付けて出てくるヘルプを読む

kubectl explain で調べる

試験中もよくやります

Kubernetes公式ドキュメントの該当箇所を読む

試験中もこのサイトは見ることができます

前述の書籍の該当箇所を読み直す

我做了如下的事情。除了最后一本书外,其他的都是在考试期间检索时使用的,所以知道哪里有什么信息很重要。

考试的形式和报名方式

我会使用公司的会议室等地方,在我的笔记本电脑上进行考试。关于具体细节,有很多同样参加考试的人写了很多博客,请参考他们的博客。你可以在谷歌上搜索”CKAD”来找到很多日语博客。

考试问题可以选择用日语(JP)回答。但是,与考官的文字聊天似乎只能使用英语(请参阅下文)。

考场当天需要准备的物品

必须

    • パスポートなど、英語で書かれた身分証明書(ID)

Webカメラの向こう側にいる試験官さんは、どうも英語しか通じないようです。実は僕はパスポートを用意しておらず、免許証・マイナンバーカード・クレジットカードを見せてと言われたので、それで大丈夫でした。しかし、パスポートを用意するのが一番早いと思います

ノートPC

Google Chrome(Extensionの追加が必要)
Webカメラ必須
たまにブラウザ内で試験システムが固まるので、スペックが良いほうがいいです
僕が受験したとき(2019年11月時点)は、「macOS Catalinaは互換性に問題があります」と書いてありましたのでご注意を?

最好有这样的东西

    • 飲み物

ラベルを取った透明なペットボトルに入った透明な液体でなければならないようです

追加のモニター

kubernetes.io/docsを見る用。1画面ではキツイので、あったほうがいいです(試験官に確認したところOKと言ってくれました)

在解决问题时需要注意的要点

切换集群、别忘记指定命名空间哦!

无论如何时间都不够用。真的没有闲着犯错的时间。在这个考试中,准备了多个 Kubernetes 集群,并为每个集群准备了多个命名空间。

首先,在解答每个问题之前,让我们使用 “kubectl config use-context ” 命令来切换到相应的集群。

此外,在执行每个 kubectl 命令时,请务必记得指定 -n 命名空间名称。

我不小心忘记了一个namespace并且执行了一次,紧急进行了修正。

从分值较高的问题开始解答。

在我的经验中,在考试时间内完成所有问题相当困难。每个问题似乎都有分数百分比的分配,所以我们应该从分数高的问题开始解答。每个问题都被设计为没有依赖关系,例如集群或命名空间,所以解决问题的顺序并不重要。

在考试开始后的第一时间轻松阅读所有问题,并将问题编号、分值以及问题类型记录在NotePad中,这是一个推荐的方法。

画面上显示的剩余时间并不准确。

画面左上角显示着”剩余时间○分钟”,但这并不是准确的时间。

你可以通过聊天功能向考官确认正确的时间。当我检查时,它显示“剩余6分钟”,我感到绝望,但考官告诉我还有20分钟。接下来的20分钟里,我的专注力非常强哈哈。

尽量少写YAML。

写完整个YAML会花费太多时间。我们尽量通过CKAD练习中使用的命令来解决问题。

如果要修改现有的Pod等内容,请使用kubectl edit命令并仅修复必要的部分。

有些问题需要从零开始编写YAML文件,但您可以在kubernetes.io/docs上搜索并复制粘贴(在考试期间也可以),然后进行编辑。

考试结束了,合格名单公布。

考试结束后的36小时内,您将收到通过电子邮件发送的结果。似乎与工作日无关,我在周五参加了考试,但结果却在周日收到了。

当您合格后,您将收到一张包含在开头的合格证书。通过电子邮件中的链接访问Linux Foundation的网站,您还可以获得这样的电子徽章。

logo_ckad.png

很遗憾,如果考试不合格,可以免费再考一次(有效期为12个月以内)。

試試看考试。

虽然在Linux等基础设施方面的知识不是很丰富,但我设法通过了考试。

然而,在考试期间,掌握bash命令操作和vi编辑器操作是必要的,所以如果不熟悉的话最好事先练习一下。

如果能成为未来有志于取得资格的人的参考,我会很高兴。