Java 开发工程师的 K8s 职责清单:八项必修、三类免学、五个专属坑
开发背一半运维:你的 K8s 职责边界在哪 云原生时代,开发工程师的职责边界变了。以前是"写完代码扔给运维",现在是"应用怎么跑也写进代码"——Dockerfile、探针、资源申请、优雅停机,这些曾经属于运维的东西,现在都是开发要交付的代码的一部分。 但反过来,开发也不该全包运维:集群的节点、证书、网络插件,那不是你的活。这篇给 Java 开发工程师一张清单——必须会什么、不用学什么、Java 专属的坑有哪些、边界到底划在哪。本系列的十篇文章是这个清单的展开,这篇是入口。 1. 一句话框架:开发背一半运维 判断职责归属,用一条标准就够: “我写的这个应用,在集群里能不能健康地跑起来、出问题我自己能不能查”——这是开发的活;“集群本身能不能稳定运转”——这是平台的活。 应用的健康 = 镜像、探针、资源配置、优雅停机、指标暴露——开发用代码负责; 集群的稳定 = 节点、etcd、CNI、证书、升级——平台/运维负责,开发只需要知道它们存在。 至于中小公司没有专职运维、开发被迫全包——那是资源约束下的现实,不是理想的职责划分。能力可以全栈,但边界心里要有数:“运维的事"永远会挤占开发时间,不清边界就会被无限稀释。 2. 必须会:八项清单 每一项都标注了"怎么算会了”——能独立完成才算过关。 # 技能 一句话原理 验证标准 对应文章 1 镜像构建 多阶段 Dockerfile 把构建与运行分离,体积从 500MB 级压到 300MB 级 能写出 JRE 运行镜像,知道层缓存 课1:镜像构建 2 Deployment 声明式滚动更新,改清单而不是手工 docker run 能改镜像滚动升级、回滚 课1:Deployment 实战 3 配置注入 ConfigMap/Secret 让配置外部化,改配置不重建镜像 能注入环境变量和文件,知道 Secret 只是 base64 课3:配置注入 4 Service/Ingress ClusterIP 内部调用、NodePort/LB 对外暴露、Ingress 管域名路由 能说清三种类型各给谁用 课2:Service/Ingress 5 探针 readiness 摘流量、liveness 重启、startup 保护慢启动 能给 Spring Boot 配齐三件套 课4:探针 6 资源申请 requests 管调度、limits 管上限,不设就是裸奔 能给应用填合理数值并解释依据 课5:资源管理 7 优雅停机 readiness 摘流 + preStop 缓冲 + graceful 处理在途 发版时在途请求不断连 课5:优雅停机 8 可观测性 应用暴露指标端点,监控才有意义 能说出 /actuator/prometheus 暴露了什么 课6:可观测性 贯穿八项的还有一个基本功:排障—— kubectl logs 、 kubectl describe 、 kubectl exec 是开发者的手电筒,遇到问题第一反应是"进 Pod 看一眼"而不是"重启试试"。 ...
