以下内容均来自个人笔记并重新梳理,如有错误欢迎指正!
如果对您有帮助,烦请点赞、关注、转发!如果您有其他想要了解的,欢迎私信联系我~
基本概念
1、Master 节点
Kubernetes 集群的管理节点,主要作用:
- 集中管理和控制整个 Kubernetes 集群
- 调度和分配容器应用程序到 Node 节点上
- 监控集群中的节点和应用程序的状态
- 提供 API 和命令行工具,用于管理和操作集群
2、Node 节点
Kubernetes 集群的资源节点,主要作用:
- 是运行容器应用程序的实际节点
- 运行容器运行时(如 Dockerd 或 Containerd)和 Kubernetes 代理(kubelet)
- 接收 Master 节点分配的应用程序任务,并启动、停止和监控容器的生命周期
- 执行容器网络和存储的配置和管理
- 提供资源(CPU、内存等)和服务(如服务发现和负载均衡)
3、API 对象
Kubernetes 集群的管理操作单元,包括 Pod、Deployment、Service、ConfigMap、Secrete 等。
每个 API 对象都有三大类属性:
- metedata:对象元数据
- spec:对象规范,用于描述对象的预期状态
- status:对象状态
Kubernetes 集群的管理操作都是声明式的,可以避免操作丢失或多次运行。
4、资源清单
Kubernetes 集群是一个完全以资源为中心的系统,所有对象都使用资源清单 manifest(YAML 或 JSON 格式) 来定义。
对象介绍(部分)
1、Namespace
命名空间,是对一组资源和对象的抽象集合,用于对 Kubernetes 集群中的资源进行隔离。
特殊的是,Node, PersistentVolume,StorageClass 等部分资源不属于任何 Namespace。
2、Pod
Kubernetes 集群调度的最小单位,是容器的二次封装。
- 每个 Pod 由一个根容器(Pause)和若干个业务容器组成,业务容器通过根容器共享网络和存储
- 每个 Pod 表示某个应用程序的一个实例
3、Label
标签,用于实现对象的分类和分组。
4、Deployment
无状态控制器,用于管理 Pod 副本。
创建 Deployment 时需要指定两个东西:
- Pod 模版:用于创建 Pod 副本
- Label 标签:用于监控 Pod 副本
5、ReplicaSet
副本集控制器,是 Pod 副本的抽象,用于对 Pod 副本进行伸缩和版本管理。
6、Service
Service 对象将背后的 Pod 聚合在一起,以单一入口的方式对外提供服务。
它定义了 Pod 的访问方式,使得其他应用程序通过 Service 对象即可访问到这些 Pod,而无需关心 Pod 的 IP 地址、端口号等。
- 匹配 Label 标签的 Pod IP 和端口列表组成 Endpoints(负载均衡列表),由 kube-proxy 将服务 IP 负载均衡到这些 Endpoints 上
- 每个 Service 都会自动分配一个 clusterIP(VIP)和 DNS 域名,其他容器可以通过该地址或 DNS 来访问服务,而不需要了解后端应用程序的运行