从零部署应用到 Kubernetes
如何将一个应用完整部署到 K8s 集群并对外暴露服务?
解决方案
标准部署流程(Deployment + Service + Ingress) 推荐
# 1. 创建命名空间 kubectl create namespace myapp # 2. 创建 Deployment kubectl create deployment web --image=myregistry/myapp:v1.0 --replicas=3 -n myapp # 3. 暴露 Service kubectl expose deployment web --port=80 --target-port=8080 --type=ClusterIP -n myapp # 4. 验证部署状态 kubectl rollout status deployment/web -n myapp kubectl get pods -n myapp # 5. 本地测试 kubectl port-forward svc/web 8080:80 -n myapp
使用命名空间隔离应用,Deployment 管理 Pod 副本,Service 提供稳定的内部访问入口,port-forward 用于本地验证。
适用场景:快速部署验证,适合开发和测试环境
通过 YAML 文件声明式部署
# 生成 YAML 模板 kubectl create deployment web --image=myapp:v1.0 --replicas=3 --dry-run=client -o yaml > deployment.yaml # 编辑完善后应用 kubectl apply -f deployment.yaml -n myapp kubectl apply -f service.yaml -n myapp # 验证 kubectl get all -n myapp
声明式管理更适合生产环境,YAML 文件可以纳入 Git 版本控制,实现 GitOps 工作流。
适用场景:生产环境部署,需要版本控制和可重复性
注意事项
生产环境务必设置 resources.requests 和 limits
确保镜像仓库可访问且镜像 tag 正确
建议配置健康检查(livenessProbe/readinessProbe)