云原生:10分钟了解一下Kubernetes架构

时间:2024-04-24 22:20:53

Kubernetes,作为当今容器编排技术的事实标准,以其强大的功能和灵活的架构设计,在全球范围内得到了广泛的应用和认可。本文将深入简出地探讨Kubernetes的核心架构,帮助大家了解Kubernetes,为今后的高效的学习打下良好的基础。


本文是系列的第2期,欢迎大家阅读往期,并关注后续更新~
????《云原生:5分钟了解一下Kubernetes是什么》
????《云原生:10分钟了解一下Kubernetes架构》
????《云原生:15分钟了解一下Kubernetes的核心概念》
????《云原生:20分钟体验一下Kubernetes》


k8s架构.png

Kubernetes集群包含 Master节点(控制面/控制节点)和 Node节点(计算节点/工作节点),应用自动调度部署在Node节点上,且可以通过配置选择应用部署在某些特定的节点上。


Master节点(控制面)

Master节点是集群的控制节点,主要由API Server、Scheduler、Controller Manager和ETCD四个组件构成(云上还需cloud-control-manager)。在生产环境中,为了保障集群的高可用,通常会部署多个Master节点。

组件 说明
etcd 一个分布式key-value数据存储组件,为Kubernetes提供原数据的存储,它保存了整个集群的状态。支持watch机制,这样组件很容易得到系统状态的变化,从而快速响应和协调工作。
kube-api-server 主要提供Kubernetes API,提供对Pods,Services,RC等对象的CRUD处理REST操作各组件互相通讯的中转站,接受外部请求,并将信息更新到ETCD中。
kube-scheduler 负责应用调度的组件,根据各种条件(如可用的资源、节点的亲和性等)将容器调度到Node上运行。
kube-controller-manager 执行集群级功能,例如复制组件,跟踪Node节点,处理节点故障等等。例如:节点控制器、任务控制器、端点分片控制器等。
cloud-control-manager 云控制器管理器是指嵌入特定云的控制逻辑的控制平面组件。 云控制器管理器允许您链接聚合到云提供商的应用编程接口中, 并分离出相互作用的组件与您的集群交互的组件。



Node节点(worker)

Node节点是集群的计算节点,即运行容器化应用的节点。

组件 说明
kubelet kubelet主要负责同Container Runtime打交道,并与API Server交互,管理节点上的容器。
kube-proxy 应用组件间的访问代理,解决节点上应用的访问问题。
Container Runtime 容器运行时,最主要的功能是下载镜像和运行容器。
例如:Docker、Containerd(1.24后默认)

k8s架构思维导图.png


工作流程简介

image.png


  1. 用户通过 kubectl 等工具与 API 服务器交互,提交应用部署的请求。
  2. API 服务器将请求存储在 etcd 中,并通知调度器。
  3. 调度器根据资源需求和节点状况,决定 Pod 应该在哪个节点上运行。
  4. API 服务器将 Pod 的分配结果通知对应的节点上的 kubelet。
  5. kubelet 与容器运行时通信,创建和启动 Pod 中的容器。
  6. kube-proxy 在节点上设置网络规则,确保服务的网络请求可以转发到正确的 Pod。
  7. 控制器管理器监控集群状态,确保实际状态与用户的期望状态一致,并在必要时进行调整。



更多信息可访问官网:https://kubernetes.io/zh-cn/docs/concepts/architecture/
或关注后续相关博文。



往期精彩内容推荐

云原生:5分钟了解一下Kubernetes是什么
云原生:应用敏捷,华为视角下的应用现代化
云原生:为企业带来的7大价值
云原生:重塑未来应用的基石
「快速部署」第一期清单