网站首页 > 文章精选 正文
一、核心设计理念
1、声明式API
用户通过YAML/JSON定义资源期望状态(如Deployment副本数3),系统通过控制器持续比对实际状态与期望状态差异,驱动集群向目标收敛。
示例:当Pod意外终止时,ReplicaSet控制器检测到实际副本数不足,立即创建新Pod补齐数量。
2、分层架构
采用控制平面(决策层)与数据平面(执行层)分离设计,通过APIServer作为唯一通信枢纽,实现组件松耦合。
二、架构组件详解
1、控制平面(Control Plane)
APIServer:集群网关,处理所有REST请求并写入etcd,支持认证/授权(如RBAC)。
Scheduler:基于资源需求、亲和性等策略选择节点,调度过程分为预选(Filter)和优选(Score)两阶段。
Controller Manager:包含Deployment/Node等控制器,通过List-Watch机制监听资源变化。
etcd:分布式键值库,存储集群所有配置和状态数据,采用Raft协议保证一致性。
2、工作节点(Node)
Kubelet:节点代理,管理Pod生命周期(如挂载存储卷、执行健康检查)。
Kube-Proxy:维护iptables/IPVS规则,实现Service的负载均衡。
容器运行时:Docker/containerd负责镜像拉取和容器启停。
三、关键工作流程示例
案例:应用部署的全链路
1、提交Deployment
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx
spec:
replicas: 2
template:
spec:
containers:
- name: nginx
image: nginx:1.14
kubectl apply提交后,APIServer校验并存入etcd。
2、控制器响应
Deployment Controller创建ReplicaSet,ReplicaSet Controller确保存在2个Pod副本。
3、调度执行
Scheduler选择满足条件的Node,更新Pod的nodeName字段至etcd,目标节点Kubelet调用容器运行时启动容器。
4、服务暴露
创建Service时,Kube-Proxy自动配置iptables规则,将请求轮询转发至后端Pod(如172.17.0.3:80→172.17.0.4:80)。
四、网络通信模型
1、Pod内部:共享网络命名空间,容器通过localhost直接通信。
2、跨节点Pod:通过CNI插件(如Calico)建立Overlay网络,Pod IP全局可达。
3、Service到Pod:ClusterIP通过kube-proxy转换为Pod IP,默认使用iptables DNAT规则。
五、生产环境优化建议
1、高可用部署
APIServer:3节点负载均衡,启用
--enable-aggregator-routing。
etcd:SSD存储+定期快照备份(ETCDCTL_API=3 etcdctl snapshot save)。
2、性能调优
控制器:调整
--concurrent-deployment-syncs提高并发处理能力。
调度器:自定义优先级函数实现拓扑感知调度。
猜你喜欢
- 2025-07-09 别被云原生忽悠了:接地气的 K8s 生产落地长这样
- 2025-07-09 简单了解下Kubernetes网络通信(kubernetes网络模型)
- 2025-07-09 pod结构说明-运行容器的容器(容器中pod是什么意思)
- 2025-07-09 佚名运维 k8s 训练营 - 第1天(k8s运维是什么)
- 2025-07-09 k8s实践(三):pod常用操作(k8s pod service deployment)
- 2025-07-09 Kubernetes 核心概念全景图:Pod、Node、Cluster、Control Plane 等
- 2025-07-09 K8S之调度器-精细控制Pod分布(k8s pod调度过程详解)
- 2025-07-09 【超融合云计算中心】核心K8S容器实践应用指南
- 2025-07-09 Kubernetes从零到精通(01-简介)(kubernetes入门教程)
- 2025-07-09 service详解(service理解)
- 最近发表
-
- 五分钟轻松熟悉一个k8s Operator应用制作
- iLogtail 使用入门 - K8S 环境日志采集到 SLS
- k8s之配置CNI网络(k8s 网络配置)
- Linux系统K8S集群架构及常用操作命令之K9S安装及使用
- Centos 安装部署Kubernetes(K8s)(k8s环境搭建 centos)
- 集群外部署Prometheus+Grafana监控K8S解析
- k8s安装UI管理工具Kuboard安装(k8s安装步骤)
- k8s中使用Helm安装生产级别redis集群
- K8s集群(K8s集群添加新节点更新步骤)
- Kubernetes (k8s) 基本命令速查(k8s kubernetes教程)
- 标签列表
-
- newcoder (56)
- 字符串的长度是指 (45)
- drawcontours()参数说明 (60)
- unsignedshortint (59)
- postman并发请求 (47)
- python列表删除 (50)
- 左程云什么水平 (56)
- 计算机网络的拓扑结构是指() (45)
- 编程题 (64)
- postgresql默认端口 (66)
- 数据库的概念模型独立于 (48)
- 产生系统死锁的原因可能是由于 (51)
- 数据库中只存放视图的 (62)
- 在vi中退出不保存的命令是 (53)
- 哪个命令可以将普通用户转换成超级用户 (49)
- noscript标签的作用 (48)
- 联合利华网申 (49)
- swagger和postman (46)
- 结构化程序设计主要强调 (53)
- 172.1 (57)
- apipostwebsocket (47)
- 唯品会后台 (61)
- 简历助手 (56)
- offshow (61)
- mysql数据库面试题 (57)