查看: 6|回复: 0

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

[复制链接]

0

主题

0

回帖

0

积分

积极分子

金币
0
阅读权限
220
精华
0
威望
0
贡献
0
在线时间
0 小时
注册时间
2009-12-11
发表于 2026-4-5 09:19:00 | 显示全部楼层 |阅读模式

前言

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

一、K8s 核心概念

  • Pod:最小调度单元,一个 Pod 可包含多个容器
  • Deployment:声明 Pod 副本数和更新策略
  • Service:为 Pod 提供稳定的访问入口
  • Ingress:HTTP/HTTPS 路由

二、Dockerfile 准备

FROM eclipse-temurin:21-jre-alpine
WORKDIR /app
COPY target/*.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "app.jar"]

三、K8s 部署文件

# deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: myapp
spec:
  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"
# service.yaml
apiVersion: v1
kind: Service
metadata:
  name: myapp-svc
spec:
  selector:
    app: myapp
  ports:
  - port: 80
    targetPort: 8080
  type: ClusterIP
# ingress.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: myapp-ingress
spec:
  rules:
  - host: myapp.example.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: myapp-svc
            port:
              number: 80

四、健康检查配置

        livenessProbe:
          httpGet:
            path: /actuator/health
            port: 8080
          initialDelaySeconds: 30
          periodSeconds: 10
        readinessProbe:
          httpGet:
            path: /actuator/health
            port: 8080
          initialDelaySeconds: 5
          periodSeconds: 5

五、部署命令

# 构建镜像并推送
docker build -t myapp:1.0.0 .
docker tag myapp:1.0.0 registry.example.com/myapp:1.0.0
docker push registry.example.com/myapp:1.0.0

# 部署到 K8s
kubectl apply -f deployment.yaml
kubectl apply -f service.yaml
kubectl apply -f ingress.yaml

# 查看状态
kubectl get pods -l app=myapp
kubectl get svc myapp-svc
kubectl get ingress myapp-ingress

# 滚动更新
kubectl set image deployment/myapp myapp=myapp:1.1.0
kubectl rollout status deployment/myapp

六、可观测性配置

# 日志收集(ELK/EFK)
kubectl logs -f deployment/myapp

# 监控(Prometheus + Grafana)
kubectl top pods
kubectl top nodes

# 扩缩容
kubectl scale deployment myapp --replicas=5
kubectl autoscale deployment myapp --min=2 --max=10 --cpu-percent=70

总结

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

觉得有帮助请点赞收藏!有问题欢迎评论区交流 🚀

回复

使用道具 举报

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

本版积分规则

相关侵权、举报、投诉及建议等,请发 E-mail:qiongdian@foxmail.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部