Spring Cloud Alibaba与K8s的集成
文章目录
第一章:当“工厂流水线”遇上“物流公司”
想象你经营一家智能玩具工厂:
- Spring Cloud Alibaba 是你的“工厂管理系统”,负责协调生产线(微服务)、监控机器状态(Sentinel)、管理原料配方(Nacos配置)。
- Kubernetes(K8s) 是外包的“物流公司”,负责把产品打包成集装箱(容器)、调度卡车(节点)、自动扩缩运输车队(Pod副本)。
两者的结合,就像工厂用标准化集装箱发货——管理系统专注业务,物流公司专注运输,效率提升十倍。
第二章:从本地开发到K8s部署
场景还原:
你开发了一个用户服务(user-service),现在要让它跑在K8s集群中,同时保留Nacos服务发现能力。
步骤1:容器化改造
Dockerfile:
# 使用Java 17基础镜像(相当于标准集装箱)
FROM openjdk:17-jdk-slim
# 复制打包好的JAR文件(装入货物)
COPY target/user-service-1.0.0.jar /app.jar
# 声明暴露端口(集装箱上的装卸口)
EXPOSE 8080
# 启动命令(装货流程)
ENTRYPOINT ["java", "-jar", "/app.jar"]
K8s部署文件(user-service-deployment.yaml):
apiVersion: apps/v1
kind: Deployment
metadata:
name: user-service # 部署名称(物流订单号)
spec:
replicas: 3 # 副本数(同时发3辆卡车)
selector:
matchLabels:
app: user-service
template:
metadata:
labels:
app: user-service
spec:
containers:
- nam