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

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

本文是系列的第2期,欢迎大家阅读往期,并关注后续更新~

🔥《云原生:5分钟了解一下Kubernetes是什么》

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

🖋《云原生:15分钟了解一下Kubernetes的核心概念》

🖋《云原生:20分钟体验一下Kubernetes》

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后默认)

工作流程简介

  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大价值
云原生:重塑未来应用的基石
「快速部署」第一期清单

相关推荐
牛角上的男孩20 分钟前
Istio Gateway发布服务
云原生·gateway·istio
JuiceFS2 小时前
好未来:多云环境下基于 JuiceFS 建设低运维模型仓库
运维·云原生
deephub2 小时前
Tokenformer:基于参数标记化的高效可扩展Transformer架构
人工智能·python·深度学习·架构·transformer
景天科技苑2 小时前
【云原生开发】K8S多集群资源管理平台架构设计
云原生·容器·kubernetes·k8s·云原生开发·k8s管理系统
架构师那点事儿3 小时前
golang 用unsafe 无所畏惧,但使用不得到会panic
架构·go·掘金技术征文
wclass-zhengge3 小时前
K8S篇(基本介绍)
云原生·容器·kubernetes
颜淡慕潇3 小时前
【K8S问题系列 |1 】Kubernetes 中 NodePort 类型的 Service 无法访问【已解决】
后端·云原生·容器·kubernetes·问题解决
W Y5 小时前
【架构-37】Spark和Flink
架构·flink·spark
Gemini19956 小时前
分布式和微服务的区别
分布式·微服务·架构
昌sit!11 小时前
K8S node节点没有相应的pod镜像运行故障处理办法
云原生·容器·kubernetes