Kubernetes Deploying 是一份关于在 Kubernetes 上部署和管理应用的技能资料,内容以 YAML 清单示例和 kubectl 命令为主,适合作为部署配置的参考。
用途 该资料用于指导将应用部署到 Kubernetes,覆盖从核心资源定义到部署策略、健康检查、自动扩缩容和运维命令的完整流程。
主要能力 资料包含以下核心资源的配置示例:
- Deployment:定义副本数、标签选择器、Pod 模板、容器镜像、端口、资源请求与限制、存活探针(livenessProbe)、就绪探针(readinessProbe)以及通过 secretKeyRef 和 value 设置环境变量。
- Service:使用 ClusterIP 类型,通过 selector 匹配 Pod,并映射端口。
- Ingress:配置 TLS 主机与 secretName,以及基于主机和路径的路由规则,示例中包含 cert-manager 的注解。
- ConfigMap 与 Secret:ConfigMap 以键值对存储配置;Secret 使用 Opaque 类型和 stringData 存储数据库连接串与 API 密钥。
使用方式 资料列出了常用 kubectl 命令:
- kubectl apply -f k8s/ 应用清单
- kubectl rollout status deployment/my-app 查看发布状态
- kubectl get pods -l app=my-app 查看 Pod
- kubectl logs -f deployment/my-app 查看日志
- kubectl exec -it <pod-name> -- /bin/sh 进入容器
- kubectl scale deployment/my-app --replicas=5 扩缩容
- kubectl rollout undo deployment/my-app 回滚
- kubectl port-forward svc/my-app 3000:80 本地调试端口转发
部署策略 资料以表格形式对比了四种策略:滚动更新(默认,逐个替换 Pod,适用于大多数部署)、重建(先停止所有旧 Pod 再启动新 Pod,适用于不能同时运行两个版本的场景)、蓝绿(运行两套完整环境并切换流量,适用于需要即时回滚的场景)、金丝雀(将小比例流量路由到新版本,适用于高风险变更)。滚动更新可通过 spec.strategy 配置 maxSurge 和 maxUnavailable。
健康检查 资料建议始终同时设置两种探针:livenessProbe 判断进程是否健康,失败时重启 Pod;readinessProbe 判断是否能处理流量,失败时从 Service 中移除。常见探针类型包括 httpGet(访问 HTTP 端点,最常用)、exec(在容器内执行命令)、tcpSocket(检查端口是否开放)。
自动扩缩容 资料提供了 Horizontal Pod Autoscaler 的配置示例,使用 autoscaling/v2,设置 minReplicas、maxReplicas,并基于 CPU 利用率(averageUtilization: 70)进行扩缩容。
适用场景 适用于需要将应用部署到 Kubernetes 集群的开发者或运维人员,可作为编写 Deployment、Service、Ingress、ConfigMap、Secret、HPA 清单以及执行常见 kubectl 操作的参考。
限制与注意事项 资料中的 YAML 示例使用占位符(如 my-app、my-registry、app.example.com、postgresql://user:pass@host:5432/db、sk-abc123),实际使用时需替换为真实值。资料未提供具体的安装步骤、收费信息、平台支持范围或效果保证。实践建议部分强调:始终设置资源请求与限制;使用命名空间隔离环境(dev、staging、prod);不要将明文 Secret 提交到 git,应使用 Sealed Secrets、SOPS 或外部密钥管理器;生产环境使用具体版本标签而非 :latest;为高可用工作负载设置 PodDisruptionBudget。