【K8s】专题二:Kubernetes 相关概念

2024-09-02 12:32:21 浏览数 (3)

以下内容均来自个人笔记并重新梳理,如有错误欢迎指正!

如果对您有帮助,烦请点赞、关注、转发!如果您有其他想要了解的,欢迎私信联系我~

基本概念

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 来访问服务,而不需要了解后端应用程序的运行

0 人点赞