通过建立Kubernetes集群,加深对每个组件的理解-介绍 Kubernetes The Hard Way-
この記事は Z Lab Advent Calendar 2018 の 25日目の記事となります。
こんにちは、ゼットラボ株式会社の @ryysud です。メリークリスマス
この記事では GCP 上に Kubernetes クラスタを0から構築するチュートリアルである Kubernetes The Hard Way の紹介をします。
Kubernetes The Hard Way 是什么?
简而言之
Kubernetes The Hard Way是Kelsey Hightower先生在GitHub上发布的一个教程,该教程演示了从零开始构建Kubernetes集群的过程。
正如标题所示,使用GCP创建实例,构建网络和安装各种组件(如etcd、kube-apiserver、kube-scheduler、kubelet等),并且需要自己执行命令,因此稍微有些困难。但是,教程的说明对于像我这样的初学者来说非常易懂,给我留下的印象并不难。过去可能会出现教程无法正常运行的情况,但现在没有这样的问题了。
接下来,让我们介绍一下从这里开始进行“Kubernetes The Hard Way”教程的步骤。
集群组成
-
- クラスタはインスタンス6台で構成
Controller Node * 3 ( Master Node )
Worker Node * 3
OS は Ubuntu 18.04 を利用
containerd のサポートが強いという理由から採用とのこと
各種コンポーネントは systemd で稼働
使用版本
以下是用于教程的软件版本,但与最新版本相比似乎没有太大的差异。
-
- Kubernetes 1.12.0(2018年12月時点の最新バージョンは 1.13.0)
-
- containerd Container Runtime 1.2.0-rc.0(2018年12月時点の最新バージョンは 1.2.1)
-
- gVisor 50c283b9f56bb7200938d9e207355f05f79f0d17(2018年12月時点の最新バージョンは こちら)
-
- CNI Container Networking 0.6.0(2018年12月時点の最新バージョンは 0.6.0)
-
- etcd v3.3.9(2018年12月時点の最新バージョンは 3.3.10)
- CoreDNS v1.2.2(2018年12月時点の最新バージョンは 1.2.6)
教程的步骤
总共有14个项目可供选择,您可以按照顺序逐个进行。
正如前面提到的,每个教程都会附带详细的说明和命令,非常易懂。
-
- GCP 设置
-
- 安装所需的 CLI 来构建集群
-
- 创建实例和网络结构
-
- 创建和分发证书颁发机构、TLS 证书和密钥
-
- 创建和分发 Kubernetes 集群所需的配置文件
-
- 创建和分发用于数据加密的配置文件和密钥
-
- 构建 etcd 集群
-
- 设置控制节点
-
- 设置工作节点
-
- 准备远程操作 Kubernetes 集群
-
- 构建与 Pod 相关的网络结构
-
- 部署 CoreDNS
-
- 使用 kubectl 操作 Kubernetes 集群
- 清理工作
完成 Kubernetes 的困难之路。
挂起的时间和成本
由于我尝试了各种方法,所以花费了4到5个小时,但如果有基本知识并且按照正常速度进行,似乎只需要2到3个小时就可以完成。至于费用方面,就像教程中所述的一样,我自己的花费大约是每小时0.22美元(每天5.39美元)左右。
在教程中,假定使用GCP进行解释,但如果满足了实例和网络要求,也可以在AWS或OpenStack上实施。如果确实担心费用等问题,也可以参考Vagrant,利用它在本地环境中轻松实施Kubernetes The Hard Way。
亲身实践后,我对进展方式的理解更加深入。
在我同时进行以下工作的情况下,我觉得跟着教程一起进行最终是受益的。
Kubernetes: 構成コンポーネント一覧 を参照して各種コンポーネントの役割と関係を把握
実際に進めていく作業1つ1つがなぜ必要なのかが明らかになります
各種コンポーネントのログを jounrald で垂れ流しながら kubectl で Kubernetes クラスタの基本的な制御を実行
コンポーネント1つずつに注目してログを確認していくことで中身の細かな処理を知ることが出来て非常に面白いです
更に詳しく知りたい人はログレベルを調整しても面白いかも
Kubernetes クラスタを稼働させている最中に特定のコンポーネントを停止したり起動したり
壊し方(壊れ方)を知ることでトラブルシューティングにも役立つという経験からやってみました
经过教程后的感想
通过创建实例、构建网络、创建和分发认证机构、证书和密钥以进行TLS通信,然后下载官方提供的二进制文件来构建Kubernetes群集,最后实际运行和控制应用程序,这一系列的工作全部由自己完成,极大地加深了对Kubernetes的理解,这是非常有价值的教程。
此外,透過”Kubernetes The Hard Way”,您可以全面瞭解各種組件的角色以及必要的操作,以確保其正常運作。因此,即使您使用像GKE、AKS、EKS這樣的Kubernetes即服務平台,也能了解背後運作的組件和方式,對於工程師來說非常有趣。
最后
这篇文章介绍了一个在 GCP 上从零开始构建 Kubernetes 集群的教程《Kubernetes The Hard Way》。我推荐有兴趣的人实际操作一下,所获得的收获非常大!
此外,Z Lab Advent Calendar 2018中也投稿了许多与Kubernetes相关的文章,所以如果您在工作或兴趣开发中使用Kubernetes的话,请务必务必去查看一下!
本篇文章是由我们公司Z Lab的成员在工作时间编写的Z Lab Advent Calendar 2018的第25天。