我试着读了一本有关Docker的书籍 -第5章-

之前的复习

这本正在阅读的书在这里
《Docker/Kubernetes 实践容器开发入门》
已经读完了前四章(虽然第四章几乎都是实践部分,主要是实现)这次是第五章了。
第五章终于讲到了 Kubernetes 的相关内容。

文章的脉络

以下是大致的流程:

只需要一种选项:
① 创建本地的Kubernetes环境
② Kubernetes概念解释
③ 解释各个术语及其用法

用中文自然地改述以下句子:
就是这样的感觉。
按照上述的流程来总结一下。

第一步, 让我们在本地创建Kubernetes环境试试看。

这个不必阅读书籍,只需在网上搜索就能找到,我建议你去搜索。
※在书籍中也有Windows版本和Mac版本以及各种建设流程的照片和说明,所以购买并不是坏事
因此,我会省略关于在本地建设的部分。
顺便说一下,我个人认为与其在本地建设,不如尝试在AWS环境中建设Kubernetes。
(关于这方面,将在以后的另一篇文章中介绍)

步骤2:解释Kubernetes的概念

一开始是从”Kubernetes到底是什么?”的谈话开始的,资源名称和术语以表格形式进行了记录。
但由于只是用表格写了一串信息,难以理解,所以我决定将其制作成图表。接下来将进行说明。

第三步:解釋每個術語和使用方法。

在这里,主要记载了Step2中所示术语的详细说明。每个

Kubernetes集群是什么?/ 节点是什么?

每本书都试着写一下内容,

Kubernetes的集群是指管理Kubernetes各种资源的集合。
Node是指位于Kubernetes集群管理下的Docker主机。
而Node中必须存在一个称为Master Node的Node来统一管理整个集群。

虽然有如上所述的解释,但最终是什么意思?由于理解不深,以下用图示表示。
加入一些有关写作方式的注释,如下所示:
※本次假设是在AWS上建立Kubernetes。
※在Kubernetes上,“Pod是容器内放置应用程序和存储等内容的概念”,因此按照堆叠的概念进行堆叠。
※箭头是从下往上的,这表示云上如何访问Kubernetes的路径。
※另外,个人理解是,“一个Node等于在AWS中的一个EC2”。

Kubernetes図.png

“命名空间”是什么?

命名空间是指将”类集群”嵌套到另一个”类集群”中的功能。为什么会变得如此复杂?在类集群内部创建类集群是否有意义?这是有意义的。在书中举了一些权限限制的例子。例如,开发者属于名为”开发团队”的命名空间,而后端属于名为”后端团队”的命名空间。这样,开发者和后端可以具备不同的权限进行工作。

Pod是指什么?

容器的集合体。
请注意,Pod 内的容器必须遵守一个节点的规则,因此不能创建跨越两个节点的容器。

如何制作Pod?

制作方法很简单。只需创建一个文件并执行。

① 在yaml文件中定义要创建的Pod。
② 执行命令。

就像烹饪一样,需要根据食谱进行制作。如果没有咖喱的食谱,就不知道应该放多少咖喱块才合适。

同样地,我们需要先创建一个定义文件,并请求您在执行之前查看它。

不在此进行定义文件的详细说明,但执行命令如下。
另外,所创建的定义文件名为“simple-pod.yaml”。

# ----- Pod作成or更新時 ----- #
# kubectl apply -f simple-pod.yaml

怎么样操作Pod?

如果不知道如何操作创建的Pod,就无法管理。随后介绍了Pod的操作命令。

# ----- Podの状態取得 ----- #
# kubectl get pod
# ----- コンテナ内でコマンドを実行する ----- #
# 構文
# kubectl exec -i -t [Pod名] -c [コンテナ名] -- [コマンド]
# 例
# kubectl exec -it simple-echo sh -c nginx
# ----- コンテナを削除する ----- #
# 構文
# kubectl delete pod [Pod名]
# 例
# kubectl delete pod simple-echo

复制集(ReplicaSet)是什么。

从Pod的定义文件中,只能创建一个Pod。
因此,当需要保证冗余结构以确保可用性时,可以使用”ReplicaSet”进行管理。
“ReplicaSet”是用于生成和管理具有相同规格的多个Pod的资源的说明。

如何创建 ReplicaSet?

只需在先前设置的文件(定义了Pod规范的yaml文件)中追加配置,就可以构建ReplicaSet。无需创建新的yaml文件。

部署是指

Deployment的定义是“作为管理ReplicaSet的资源”,另外,由于Deployment还负责管理ReplicaSet的版本控制,因此建议以“每个Deployment对应一个应用程序”的方式进行运维。

# ----- ReplicaSet情報を取得----- #
# kubectl get rs

服务是什么

对于Pod集合,它提供了路由和服务发现的资源。此外,服务有三种不同类型存在。

– 服务 – 集群IP
– 服务 – 节点端口
– 服务 – 负载均衡器

服务的构建方式

通过将定义写入yaml文件,同样可以在Service上创建。
另外需要注意的是,基本上只能从Kubernetes集群内部访问Service。

服务 – 集群IP

Service的默认选项是ClusterIP功能。
这个功能是将IP公开给集群内部IP的功能。
因此,通过创建这个Service,可以实现对Pod之间的访问。

服务 – NodePort

这是用于从集群外访问的功能,它会为连接到ServicePort提供一个全局端口。

服务 – 负载均衡器 qì)

这个功能是用来与在云环境(如Azure/AWS/GCP等)中提供的负载均衡器进行协作的。需要注意的是,这个功能在本地的Kubernetes中无法使用。

Ingress是一款什么游戏?

为了在Kubernetes集群之外提供Service,可以使用能够通过NodePort将Service公开的API对象。
据说Ingress还具有负载均衡功能。

总结

就 Kubernetes 的术语理解而言,我认为将其绘制为图表更加方便快捷。
(虽然购买书籍并进行阅读当然也很重要,但我认为阅读官方文档上的记录会更快,这也有一定道理,虽然也有可能没有。)

非常感谢您阅读到最后!如果有任何意见、认识上的差异等,请在评论中指出,我将非常感激。

参考文献和参考网站

开始使用
复制集
服务
入口
kubectl备忘单