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

相关推荐
wuxingge7 小时前
k8s1.30.0高可用集群部署
云原生·容器·kubernetes
志凌海纳SmartX8 小时前
趋势洞察|AI 能否带动裸金属 K8s 强势崛起?
云原生·容器·kubernetes
锅总8 小时前
nacos与k8s service健康检查详解
云原生·容器·kubernetes
BUG弄潮儿8 小时前
k8s 集群安装
云原生·容器·kubernetes
Code_Artist9 小时前
Docker镜像加速解决方案:配置HTTP代理,让Docker学会科学上网!
docker·云原生·容器
何遇mirror9 小时前
云原生基础-云计算概览
后端·云原生·云计算
哔哥哔特商务网9 小时前
一文探究48V新型电气架构下的汽车连接器
架构·汽车
007php0079 小时前
GoZero 上传文件File到阿里云 OSS 报错及优化方案
服务器·开发语言·数据库·python·阿里云·架构·golang
颜淡慕潇10 小时前
【K8S系列】kubectl describe pod显示ImagePullBackOff,如何进一步排查?
后端·云原生·容器·kubernetes
Linux运维日记10 小时前
k8s1.31版本最新版本集群使用容器镜像仓库Harbor
linux·docker·云原生·容器·kubernetes