Skip to content
章节导航

K8s介绍、集群架构组件

Kubernetes 是什么

Kubernetes 是 Google 在 2014 年开源的一个容器集群管理系统,Kubernetes 简称 K8s。 Kubernetes 旨在简化容器化应用程序的部署和管理,它提供了许多功能,例如自动上线与回滚、容器自我修复、水平扩展、存储编排、配置管理等,以满足应用程序容器化管理多方面需求。Kubernetes拥有庞大的社区和生态系统,支持各种插件和工具的扩展,包括监控、日志、CI/CD 等,这些功能和工具使得Kubernetes成为一种强大的容器编排平台。随着容器化技术的不断发展,Kubernetes 在容器编排和容器管理领域成为领头羊,在全球一线互联网公司得到广泛应用,例如国内阿里、腾讯、百度、华为、京东、奇虎360 等公司,越来越多的企业也都在向 Kubernetes 迁移。

Kubernetes 架构

Kubernetes 架构由管理节点和工作节点,以及一个键值存储系统(Etcd)组成,如图所示

  • 管理节点: 集群的控制中心,负责监控整个集群的状态、资源调度和处理请求时间等。
  • 工作节点:负责提供运行容器所需的资源和环境。

管理节点

管理节点(Master Node,以下简称 Master)是 Kubernetes 集群的控制中心,负责监控整个集群的状态、资源调度和响应集群事件等。其主要组件包括:

  • kube-apiserver:提供 Kubernetes API 服务,负责处理外部和内部组件的请求,并将这些操作存储到 etcd。

  • etcd:一个分布式键值存储系统,用于存储 Kubernetes 集群的数据。etcd 由 CoreOS 开源,它并不属于 Kubernetes 集群自身,因此 etcd 可以在集群之外独立部署。

  • kube-controller-manager:负责管理多个控制器的程序。这些控制器包括但不限于:

    控制器描述
    Node Controller(节点控制器)负责监控节点状态,当节点出现故障时进行响应。
    Replication Controller(副本控制器)负责确保特定数量的 Pod 副本在集群中运行。
    Job Controller(任务控制器)负责监控 Job 对象,并生成相应 Pod 来执行任务。
    Endpoint Controller(端点控制器)负责管理 Service 相应的 Endpoint 对象中关联正确的 Pod IP地址。等等,这些控制器负责维护集群中的不同方面,确保整个集群的状态符合预期。
  • kube-scheduler:根据预定的算法,将未指定节点的 Pod 分配到合适的节点上。

工作节点

工作节点(Worker Node,以下简称 Node)是 Kubernetes 集群的工作节点,提供运行容器所需的资源和环境。其主要组件包括:

  • kubelet:kubelet运行在每个节点上,负责管理Pod和容器的生命周期,例如启动容器、挂载数据卷、获取容器状态并向管理节点汇报等。
  • kube-proxy:kube-proxy也是运行在每个节点上,负责实现集群内部的网络代理和负载均衡器功能。
  • container-runtime(容器运行时):实际运行和管理容器的服务。Kubernetes 支持多种容器运行时,例如 docker、containerd、cri-o 等,以及其他支持 Kubernetes CRI(容器运行时接口)的实现。