Kubernetes实战:Spring Boot微服务自动化部署指南
<h2>前言</h2><p>Kubernetes(K8s)是容器编排的事实标准,本文带你实战 Spring Boot 微服务在 K8s 中的自动化部署。</p>
<h2>一、K8s 核心概念</h2>
<ul>
<li><strong>Pod</strong>:最小调度单元,一个 Pod 可包含多个容器</li>
<li><strong>Deployment</strong>:声明 Pod 副本数和更新策略</li>
<li><strong>Service</strong>:为 Pod 提供稳定的访问入口</li>
<li><strong>Ingress</strong>:HTTP/HTTPS 路由</li>
</ul>
<h2>二、Dockerfile 准备</h2>
<pre><code>FROM eclipse-temurin:21-jre-alpine
WORKDIR /app
COPY target/*.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "app.jar"]</code></pre>
<h2>三、K8s 部署文件</h2>
<pre><code># 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"</code></pre>
<pre><code># service.yaml
apiVersion: v1
kind: Service
metadata:
name: myapp-svc
spec:
selector:
app: myapp
ports:
- port: 80
targetPort: 8080
type: ClusterIP</code></pre>
<pre><code># 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</code></pre>
<h2>四、健康检查配置</h2>
<pre><code> livenessProbe:
httpGet:
path: /actuator/health
port: 8080
initialDelaySeconds: 30
periodSeconds: 10
readinessProbe:
httpGet:
path: /actuator/health
port: 8080
initialDelaySeconds: 5
periodSeconds: 5</code></pre>
<h2>五、部署命令</h2>
<pre><code># 构建镜像并推送
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</code></pre>
<h2>六、可观测性配置</h2>
<pre><code># 日志收集(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</code></pre>
<h2>总结</h2>
<p>Kubernetes 是现代微服务架构的核心。核心要点:Deployment 管理 Pod 副本、Service 提供内部访问、Ingress 实现外部路由、健康检查保证可用性。</p>
<p>觉得有帮助请点赞收藏!有问题欢迎评论区交流 🚀</p>
</div>
<div id="MySignature" role="contentinfo">
---
📌 **如果觉得文章对你有帮助,欢迎点赞👍收藏⭐!**
💬 有问题或建议?欢迎在评论区留言讨论~
🔗 更多技术干货请关注作者:弥烟袅绕
📚 本文地址:https://www.cnblogs.com/czlws/p/19822755/kubernetes-spring-boot-microservice-deployment<br><br>
来源:https://www.cnblogs.com/czlws/p/19822755/kubernetes-spring-boot-microservice-deployment
頁:
[1]