找回密码
 立即注册
首页 业界区 安全 Kubernetes实战:Spring Boot微服务自动化部署指南 ...

Kubernetes实战:Spring Boot微服务自动化部署指南

坡琨 昨天 19:48
前言

Kubernetes(K8s)是容器编排的事实标准,本文带你实战 Spring Boot 微服务在 K8s 中的自动化部署。
一、K8s 核心概念


  • Pod:最小调度单元,一个 Pod 可包含多个容器
  • Deployment:声明 Pod 副本数和更新策略
  • Service:为 Pod 提供稳定的访问入口
  • Ingress:HTTP/HTTPS 路由
二、Dockerfile 准备
  1. FROM eclipse-temurin:21-jre-alpineWORKDIR /appCOPY target/*.jar app.jarEXPOSE 8080ENTRYPOINT ["java", "-jar", "app.jar"]
复制代码
三、K8s 部署文件
  1. # deployment.yamlapiVersion: apps/v1kind: Deploymentmetadata:  name: myappspec:  replicas: 3  selector:    matchLabels:      app: myapp  template:    metadata:      labels:        app: myapp    spec:      containers:      - name: myapp        image: myapp:1.0.0        ports:        - containerPort: 8080        resources:          limits:            memory: "512Mi"            cpu: "500m"          requests:            memory: "256Mi"            cpu: "250m"
复制代码
  1. # service.yamlapiVersion: v1kind: Servicemetadata:  name: myapp-svcspec:  selector:    app: myapp  ports:  - port: 80    targetPort: 8080  type: ClusterIP
复制代码
  1. # ingress.yamlapiVersion: networking.k8s.io/v1kind: Ingressmetadata:  name: myapp-ingressspec:  rules:  - host: myapp.example.com    http:      paths:      - path: /        pathType: Prefix        backend:          service:            name: myapp-svc            port:              number: 80
复制代码
四、健康检查配置
  1.         livenessProbe:          httpGet:            path: /actuator/health            port: 8080          initialDelaySeconds: 30          periodSeconds: 10        readinessProbe:          httpGet:            path: /actuator/health            port: 8080          initialDelaySeconds: 5          periodSeconds: 5
复制代码
五、部署命令
  1. # 构建镜像并推送docker build -t myapp:1.0.0 .docker tag myapp:1.0.0 registry.example.com/myapp:1.0.0docker push registry.example.com/myapp:1.0.0# 部署到 K8skubectl apply -f deployment.yamlkubectl apply -f service.yamlkubectl apply -f ingress.yaml# 查看状态kubectl get pods -l app=myappkubectl get svc myapp-svckubectl get ingress myapp-ingress# 滚动更新kubectl set image deployment/myapp myapp=myapp:1.1.0kubectl rollout status deployment/myapp
复制代码
六、可观测性配置
  1. # 日志收集(ELK/EFK)kubectl logs -f deployment/myapp# 监控(Prometheus + Grafana)kubectl top podskubectl top nodes# 扩缩容kubectl scale deployment myapp --replicas=5kubectl autoscale deployment myapp --min=2 --max=10 --cpu-percent=70
复制代码
总结

Kubernetes 是现代微服务架构的核心。核心要点:Deployment 管理 Pod 副本、Service 提供内部访问、Ingress 实现外部路由、健康检查保证可用性。

觉得有帮助请点赞收藏!有问题欢迎评论区交流
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

您需要登录后才可以回帖 登录 | 立即注册