容器 E08:从容器交付到平台,还增加哪些责任
用一个最小控制/数据面案例划线
选择一份固定的 probe-app digest,在专用 kind 集群中声明 Deployment/Service。控制面根据声明维持副本,节点 kubelet 经 CRI 建立 sandbox 与进程,服务入口把真实请求发往 Ready 后端;如果加一条 Operator 自定义策略或服务网格流量规则,就要分别核对其 controller 是否改变对象,以及数据面是否实际对请求作了转发/拒绝。只存在 CRD 或策略 YAML 并不说明该 controller 已运行,也不说明路由规则已经生效。多租户还要求 RBAC、namespace、网络与节点权限一起审视;Kubernetes Namespace 是 API 组织维度,不等于 Linux user namespace 的安全边界。
正例先只用标准 Deployment/Service 把请求关联到 Pod UID 和 PID,再加入一项经过版本核查的策略并观察请求变化;反例让自定义资源存在但控制器停止,仅在独立实验集群中测试“声明被接受、执行无变化”的可观测区别。实验入口与控制面清理和同一制品素材不实现任意 Operator。本云端缺 kind/服务网格/独立租户环境,端到端控制/数据面案例 NOT_RUN,本篇不扩写 Kubernetes 通论。
| 现象 | 控制面证据 | 数据面证据 |
|---|---|---|
| 副本声明成功 | Deployment/Pod UID | 真实 HTTP 响应 |
| 策略对象存在 | controller/reconcile 状态 | 流量被允许或拒绝 |
| namespace 隔开名称 | RBAC 与请求对象 | 网络/内核隔离另验 |
练习
- 预测 controller 未运行时提交一条有效 CRD 对象会否改变请求路径,在独立实验集群保存对象/事件与实际响应。
- 预测同一个 probe-app digest 部署到两个 namespace 就能否形成完整多租户隔离,按 API 权限、网络、节点资源与内核边界逐层核验。
先修:26:Pod 节点执行、33:制品可信、36:交付。相关阅读:Kubernetes 核心概念,不是本篇实验结果。
系列总目录:从进程隔离到运行时与编排。
参考资料
All articles on this blog are licensed under CC BY-NC-SA 4.0 unless otherwise stated.


