K8S 全局架构图 —— 筑梦之路

119 篇文章 7 订阅
108 篇文章 3 订阅

  • kube-apiserver:

    Kubernetes API 服务器验证并配置 API 对象的数据, 这些对象包括 pods、services、replicationcontrollers 等。API 服务器为 REST 操作提供服务,并为集群的共享状态提供前端, 所有其他组件都通过该前端进行交互。

  • kube-scheduler:

    调度器通过 Kubernetes 的监测(Watch)机制来发现集群中新创建且尚未被调度到节点上的 Pod。调度器会将所发现的每一个未调度的 Pod 调度到一个合适的节点上来运行。调度器会依据下文的调度原则来做出调度选择。

  • kube-controller-manager:

    Kubernetes 控制器管理器是一个守护进程,内嵌随 Kubernetes 一起发布的核心控制回路。在机器人和自动化的应用中,控制回路是一个永不休止的循环,用于调节系统状态。在 Kubernetes 中,每个控制器是一个控制回路,通过 API 服务器监视集群的共享状态, 并尝试进行更改以将当前状态转为期望状态。目前,Kubernetes 自带的控制器例子包括副本控制器、节点控制器、命名空间控制器和服务账号控制器等。

  • etcd:存储kube-apiserver处理过的持久化数据。

  • kubelet:

    • 容器运行时(Container Runtime)是在节点上的守护进程, 被配置用来为 kubelet 提供 CRI 服务。kubelet负责与容器运行时(如Docker、containerd)交互。这种交互依赖于容器运行时接口(CRI,Container Runtime Interface)对容器创建、启动、停止等操作。

    • kubelet还通过gRPC协议同设备插件进行交互。设备插件允许一个节点发现新的 Node 设施(除了 cpu 和 memory 等内置的节点资源之外), 并向请求资源的 Pod 提供了这些自定义的节点本地设施。

    • 容器存储接口(CSI,Container Storage Interface)提供了一种扩展 Kubernetes 的方式使其支持新类别的卷。这些卷可以由持久的外部存储提供支持,可以提供临时存储,还可以使用文件系统范型为信息提供只读接口。

    • 容器网络接口(CNI,Container networking Interface)可以让 Kubernetes 使用不同的网络拓扑和技术。你的 Kubernetes 集群需要一个 网络插件 才能拥有一个正常工作的 Pod 网络, 才能支持 Kubernetes 网络模型的其他方面。

在 Kubernetes 1.24 之前,CNI 插件也可以由 kubelet 使用命令行参数 cni-bin-dir和 network-plugin 管理。Kubernetes 1.24 移除了这些命令行参数, CNI 的管理不再是 kubelet 的工作。

  • kube-proxy:

    kube-proxy 是集群中每个节点(node)上所运行的网络代理, 实现 Kubernetes 服务(Service) 概念的一部分。kube-proxy 维护节点上的一些网络规则, 这些网络规则会允许从集群内部或外部的网络会话与 Pod 进行网络通信。

  • 7
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Kubernetes(简称k8s)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。基于k8s的系统架构图可以描述出Kubernetes的整体组成和工作原理。 首先,k8s的系统架构图通常包含以下几个主要组件: 1. 主节点(Master Node):主节点是k8s集群的控制中心,负责管理和监控整个集群的状态。其中核心组件包括: - API Server:负责接收和处理来自用户、外部系统和节点的请求,并将它们转化为内部操作。 - Scheduler:负责将容器化应用程序的Pod调度到可用的工作节点上,根据资源需求和节点的状态进行智能调度。 - Controller Manager:负责监控集群状态的各种控制器,并按需调整集群的配置。 2. 工作节点(Worker Node):工作节点是运行容器的实际主机,用于执行应用程序的实际工作。其中关键组件包括: - Kubelet:负责与主节点的API Server进行通信,接收和执行任务,保持节点与主节点同步。 - Container Runtime:负责管理和运行容器,如Docker或rkt。 - Kube Proxy:负责为Pod提供网络代理和负载均衡功能。 3. 存储:Kubernetes提供多种持久化存储的解决方案,例如: - Persistent Volume(PV):抽象出存储资源并提供给Pod使用。 - Persistent Volume Claim(PVC):声明式地请求可用的存储资源。 - Storage Class:动态地提供持久化存储的模板。 4. 服务发现和负载均衡:k8s通过Service和Ingress组件提供集群内外的服务发现和负载均衡功能。 在k8s系统架构图中,各个组件之间通过API、RPC等方式进行通信,实现了集群的高可用、高可伸缩和自动化部署管理。通过k8s系统架构图,可以清晰地了解到k8s集群的组成以及各组件之间的关系与作用,帮助开发人员和运维人员更好地理解和使用k8s提供的强大功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值