系统架构

核心组件
2.1 Master节点
API Server 用于提供API的主要接口,管理和处理集群操作。 etcd 分布式键值存储,用于保存集群的配置信息和状态。 Scheduler 负责监控新创建的Pod,并选择一个节点来运行它们。 Controller Manager 负责管理控制器,确保系统中各种资源的期望状态。
2.2 Node节点
Kubelet 在每个节点上运行,负责维护节点的运行状态,并与Master节点通信。 Kube Proxy 用于网络代理,维护节点上的网络规则,并实现服务的负载均衡。 Container Runtime Kubernetes支持多种容器运行时,如Docker、containerd等,用于运行容器。
2.3 Pod
Controller 包括ReplicaSet、Deployment、StatefulSet等,用于管理Pod的副本和状态,确保系统的可扩展性和高可用性。
2.4 Service
2.5 Namespace
这些组件协同工作,使Kubernetes能够管理和编排容器化应用程序,提供可伸缩性、高可用性和自动化的部署和运维。它的分布式架构和强大的功能使其成为容器编排的首选解决方案之一。
Pod的调度过程
3.1 创建Pod Spec
3.2 提交Pod Spec
3.3 Scheduler评估
3.4 节点选择
3.5 调度决策
3.6 节点分配
3.7 Kubelet执行
3.8 监控和反馈
3.9 持续监控
容器编排 Kubernetes可以自动管理和编排大量容器,确保它们在集群中的正确位置运行。 自动化部署 K8s允许用户定义容器化应用程序的配置,包括容器镜像、资源需求、环境变量等,并负责将这些应用程序部署到适当的节点上。 容器生命周期管理 Kubernetes负责监控容器的状态,确保它们持续运行,可以进行自动恢复和扩展。 资源调度 K8s可以智能地将容器调度到集群中的节点上,根据资源需求和可用性来分配资源。 自动伸缩 Kubernetes支持自动伸缩,根据负载自动扩展或缩小应用程序的副本数量。 服务发现和负载均衡 K8s提供服务发现机制,允许容器相互发现并通过负载均衡器进行通信。 自我修复 Kubernetes可以自动检测和处理节点和容器的故障,确保应用程序的高可用性。

本文作者:臧二飞(上海新炬中北团队)
本文来源:“IT那活儿”公众号

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




