k8s工作原理

工作原理:

通过Deployment webcluster(Deployment不直接创建 Pod,只管理 ReplicaSet,kubectl apply -f deploy.yaml提交 Deployment 到 APIServer,apiserver 校验 yaml 格式,把 Deployment 资源存入 etcd 数据库,Deployment 控制器发现:期望副本replicas:2,当前没有ReplicaSet,创建一个 ReplicaSet 资源,RS 模板完全复制 Deployment 的 pod 模板,RS 控制器读取自己的配置:

spec.replicas:2 期望 2 个 Pod,spec.selector.matchLabels: app:webcluster 筛选属于自己的 Pod

查询 etcd:当前没有匹配标签的 Pod,于是 RS 按照 template,构造 2 个 Pod 对象,提交给 apiserver 存入 etcd。kube‑scheduler调度器发现一批 spec.nodeName(主机名) 为空的Pending Pod,调度算法选出节点,把节点名写入Pod.spec.nodeName,已经把 Pod 绑定到该节点,更新etcd。kubelet 监听 apiserver 的 Pod 资源变化,收到事件:有一个 Pod,spec.nodeName = 当前节点主机名,这个 Pod 归我管理。!!真正开始在节点构建 Pod!!kubelet 开始干活:①拉取镜像 myapp:v1②准备存储、环境变量③调用 CNI‑flannel 分配 PodIP,配置 veth‑pair 网络④调用容器运行时 (containerd/docker)

  

↓创建2个Pod

给每个Pod的 metadata.labels = app:webcluster

  ↓CNI(flannel)给每个Pod分配PodIP

Pod Ready=True

  ↓Endpoints控制器读取Service.spec.selector(app:webcluster)

筛选出这两个Pod,取出PodIP + targetPort(80)

  ↓存入同名Endpoints资源(webservice)

  ↓Service iptables/ipvs读取Endpoints列表做负载均衡

curl ClusterIP → 轮流转发到 10.244.2.8:80 / 10.244.5.95:80

相关推荐
wuminyu1 小时前
Kafka中sendfile与mmap实现机制解析
java·linux·c语言·jvm·c++
新时代牛马2 小时前
嵌入式网络完整篇:从LwIP/以太网驱动到 Linux netdev 与排障
linux·网络·php
猿与禅2 小时前
Linux(Ubuntu)入门到实战:系统管理、常用命令与权限体系完整指南
linux·ubuntu·apt·进程管理·系统运维·用户权限·vi/vim
前端世界2 小时前
Linux服务器实战:NTP时间同步、SELinux权限与rsyslog日志管理,一次搞懂三大运维问题
linux·运维·服务器
Android系统攻城狮2 小时前
Linux Gstreamer深度解析之gst_audio_converter_new调用流程与实战(二十)
linux·运维·服务器·gstreamer音视频·音视频进阶
海宇服务2 小时前
零信任架构实战:基于海宇对外投资历史查询服务构建自动化供应商准入网关
运维·人工智能·架构·自动化
上海云盾-小余2 小时前
BGP 高防底层原理:TCP 异常流量识别与清洗机制
运维·网络·tcp/ip
captain3762 小时前
▲网络原理(2)-TCP
java·服务器·网络·tcp/ip·java-ee
言乐63 小时前
Python加速器4跨境网络加速器
运维·服务器·开发语言·网络·python
蓝速科技6 小时前
医院导诊 AI 数字人一体机场景适配与落地指南丨蓝速科技
运维·数据库·人工智能·科技·自然语言处理·技术分享