以前发个版本,得盯着运维大哥排队,改配置、等部署,一出问题就得回滚重来。现在公司上了 ref="/tag/2020/" style="color:#E3A3CF;font-weight:bold;">Kubernetes + DevOps 那套流程,开发提交代码后,自动测试、打包、推镜像、更新服务,整个过程二十分钟搞定,比点个外卖还快。
为啥要搞 Kubernetes 和 DevOps 集成?
说白了,就是让开发和运维不再互相甩锅。过去开发说‘我本地跑得好好的’,运维说‘你这环境配得不对’,扯皮半天。现在用 Kubernetes 统一运行环境,配合 CI/CD 流水线,代码一合并,自动走完所有流程,谁也赖不掉。
典型工作流长啥样?
比如你在 GitHub 提交了新代码,触发 GitHub Actions 或 Jenkins 开始干活:
- 拉代码,跑单元测试
- 用 Dockerfile 打包成镜像
- 推送到私有镜像仓库(如 Harbor)
- Kubernetes 拉新镜像,滚动更新 Pod
- 健康检查通过,旧版本下线
全程没人手动干预,有问题自动告警,还能快速回退到上一版。
给个简单的部署示例
这是个典型的 Kubernetes 部署文件,描述你想跑什么服务:
apiVersion: apps/v1
kind: Deployment
metadata:
name: myapp
spec:
replicas: 3
selector:
matchLabels:
app: myapp
template:
metadata:
labels:
app: myapp
spec:
containers:
- name: app
image: harbor.example.com/myteam/myapp:v1.2
ports:
- containerPort: 8080
配合 Helm 这类工具,连数据库、中间件都能一键部署,开发自己就能搞定整套环境。
监控也不能少
光部署快没用,出了问题得马上知道。一般会接 Prometheus 做指标采集,Grafana 看图表,再配上 Alertmanager,服务一卡立马钉钉报警。之前有次数据库连接池爆了,还没收到消息,值班的已经收到告警去查了。
小团队也能玩得转
别以为只有大厂才搞得动。现在 Minikube、k3s 这些轻量级方案,笔记本上都能跑 Kubernetes。搭配 GitLab CI 或 GitHub Actions,五人小团队也能搭出自动化流水线。我们最开始就在一台云服务器上跑 k3s,省了买多台机器的钱。
把 Kubernetes 和 DevOps 搭在一起,不是为了炫技,而是真能减少重复劳动,让开发专注写业务,而不是天天盯着部署日志。