《Kubernetes修炼手册》读书笔记

《Kubernetes修炼手册》读书笔记

💡 原文中文,约5200字,阅读约需13分钟。
📝

内容提要

本文介绍了Kubernetes系统的主节点和工作节点组成,以及Pod/Deployment/Service的概念和使用方式,还讲解了服务发现、存储、ConfigMap和集群运维等内容。

🔎

延伸解读

从理论到实践:Flink on Kubernetes 的部署示例

文章以 Native Flink on Kubernetes 为例,具体展示了 JobManager 和 TaskManager 的部署方式。JobManager 通过 Deployment 部署并定义 replicas=1,TaskManager 通过 Pod 部署,两者都使用 Label 进行标识。Service 通过 selector 匹配这些 Label,为 JobManager 提供 RestEndpoint 服务。这一示例帮助读者理解抽象概念在实际场景中的应用。

服务发现机制:DNS 与 kube-proxy 的协作

Kubernetes 使用集群 DNS 作为服务注册中心,CoreDNS 管理 Pod,kube-dns Service 监听 53 端口。每个 Service 维护 Endpoint 对象,kube-proxy 创建 IPVS 规则实现流量转发。Pod 的 /etc/resolv.conf 被修改,包含 search 域和 nameserver 指向 kube-dns 的 ClusterIP,使得集群内可通过 FQDN 访问服务,如 ent.prod.svc.cluster.local。

ConfigMap 的使用:解耦配置与镜像

ConfigMap 用于应用和配置解耦,支持可重用的应用镜像、更容易测试和更少破坏性改动。文章展示了通过卷导入 ConfigMap 的方式:创建 ConfigMap 后,定义卷引用它,并挂载到容器目录。在 Flink JobManager 中,ConfigMap 被挂载到 /opt/flink/conf,包含 logback-console.xml 等文件。当 ConfigMap 更新时,挂载的文件内容会异步更新,但挂载点是只读的。

集群运维的复杂性

文章指出集群运维是 Kubernetes 管理中最复杂和考验熟悉程度的部分,但未展开具体细节。这提醒读者,在掌握基本概念后,需要投入更多精力学习运维实践,以应对生产环境中的挑战。

❓

Q&A

Kubernetes集群的主要组成部分是什么?

Kubernetes集群由主节点和工作节点组成,主节点负责控制平面,工作节点负责运行容器。

什么是Pod,它在Kubernetes中的作用是什么?

Pod是Kubernetes调度的基本单位,主要用于部署微服务应用,可以在一个Pod中运行一个或多个容器。

Deployment在Kubernetes中有什么特性?

Deployment提供扩缩容、自愈和滚动升级等特性,允许用户通过更高层的控制器来管理Pod的部署。

Kubernetes中的Service对象有什么作用?

Service对象为动态Pod提供稳定的网络管理能力,通过Label匹配Pod,确保网络访问的可靠性。

如何在Kubernetes中实现服务发现?

Kubernetes使用集群DNS作为服务注册中心,每个Service对象维护一个Endpoint对象,kube-proxy为Service和Endpoint创建IPVS规则。

ConfigMap在Kubernetes中有什么用途?

ConfigMap用于应用和配置解耦,支持重用应用镜像和简化测试,可以通过卷导入ConfigMap来使用。

🏷️

标签

➡️

继续阅读