1. 首页 > Rancher教程 > 正文

Rancher教程FG021-Rancher微服务部署与服务发现实战

本篇文章详细介绍Rancher微服务架构部署,包括Spring Boot微服务容器化、服务注册与发现、负载均衡、配置管理等实战内容。风哥教程参考Rancher官方文档应用部署与服务管理相关章节。

目录大纲

Part01-基础概念与理论知识

1.1 微服务架构设计原理

微服务架构将单体应用拆分为多个小型服务,每个服务独立部署、独立扩展。核心原则包括单一职责、自治性、去中心化治理、容错设计。Rancher通过Kubernetes提供微服务部署平台,支持服务发现、负载均衡、配置管理、监控告警等能力。更多视频教程www.fgedu.net.cn

1.2 Kubernetes服务发现机制

Kubernetes提供两种服务发现方式:环境变量和DNS。环境变量在Pod启动时注入,DNS通过CoreDNS提供动态解析。Service类型包括ClusterIP(集群内部访问)、NodePort(节点端口访问)、LoadBalancer(负载均衡器访问)。Headless Service用于有状态应用,直接返回Pod IP。学习交流加群风哥微信: itpux-com

Part02-生产环境规划与建议

2.1 微服务拆分策略

按业务领域拆分:用户服务、订单服务、商品服务等。按数据边界拆分:每个服务拥有独立数据库。按团队组织拆分:每个团队负责特定服务。拆分粒度不宜过细,避免分布式事务复杂度。建议从核心业务开始逐步拆分,保持服务间低耦合高内聚。学习交流加群风哥QQ113257174

2.2 服务间通信设计

同步通信使用REST API或gRPC,异步通信使用消息队列。服务网格(Istio)提供流量管理、安全、可观测性能力。配置熔断器防止级联故障,设置超时和重试策略。使用API网关统一入口,处理认证、限流、路由。更多学习教程公众号风哥教程itpux_com

Part03-生产环境项目实施方案

3.1 Spring Boot微服务容器化

创建Spring Boot微服务并构建Docker镜像。

/Rancher/app/microservices/fgedu-user-service/src/main/java/com/fgedu/userservice/UserServiceApplication.java <
/Rancher/app/microservices/fgedu-user-service/pom.xml < 4.0.0 com.fgedu fgedu-user-service 1.0.0 org.springframework.boot spring-boot-starter-parent 3.2.0 org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-actuator org.springframework.boot spring-boot-maven-plugin EOF
/Rancher/app/microservices/fgedu-user-service/src/main/resources/application.yml <
[INFO] Scanning for projects...
[INFO] Building fgedu-user-service 1.0.0
[INFO] Downloading from central: https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-parent/3.2.0/spring-boot-starter-parent-3.2.0.pom
[INFO] Downloaded from central: https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-starter-parent/3.2.0/spring-boot-starter-parent-3.2.0.pom (2.5 MB at 15.2 MB/s)
[INFO] BUILD SUCCESS
[INFO] Total time: 45.234 s
/Rancher/app/microservices/fgedu-user-service/Dockerfile <
Sending build context to Docker daemon  25.6MB
Step 1/5 : FROM openjdk:17-jdk-slim
 ---> abc123def456
Step 2/5 : WORKDIR /app
 ---> Using cache
 ---> 789ghi012jkl
Step 3/5 : COPY target/fgedu-user-service-1.0.0.jar app.jar
 ---> 345mno678pqr
Step 4/5 : EXPOSE 8080
 ---> Running in 901stu234vwx
Removing intermediate container 901stu234vwx
 ---> 567yza890bcd
Step 5/5 : ENTRYPOINT ["java", "-jar", "app.jar"]
 ---> Running in 123efg456hij
Removing intermediate container 123efg456hij
 ---> 789klm012nop
Successfully built 789klm012nop
Successfully tagged fgedu/fgedu-user-service:1.0.0

from Rancher视频:www.itpux.com

a1b2c3d4e5f6
User Service is Healthy
{"userId":"fgedu001","userName":"Fengge User","email":"fgedu@fgedu.net.cn"}
fgedu-user-test
fgedu-user-test

3.2 微服务部署与配置

在Rancher集群中部署微服务。

namespace/fgedu-microservices created
deployment.apps/fgedu-user-service created
service/fgedu-user-service created
NAME                                  READY   STATUS    RESTARTS   AGE
fgedu-user-service-5d4f8b6c6-abc12   1/1     Running   0          1m
fgedu-user-service-5d4f8b6c6-def34   1/1     Running   0          1m
fgedu-user-service-5d4f8b6c6-ghi56   1/1     Running   0          1m
NAME                  TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)    AGE
fgedu-user-service   ClusterIP   10.43.123.100           8080/TCP   2m

3.3 服务发现与负载均衡

配置服务发现和负载均衡。

User Service is Healthy
ingress.networking.k8s.io/fgedu-user-ingress created
NAME                  CLASS   HOSTS                 ADDRESS         PORTS   AGE
fgedu-user-ingress   nginx   user.fgedu.net.cn   192.168.1.202   80      1m
{"userId":"fgedu001","userName":"Fengge User","email":"fgedu@fgedu.net.cn"}

Part04-生产案例与实战讲解

4.1 微服务部署实战

部署订单微服务并验证服务间调用。

/Rancher/app/microservices/fgedu-order-service/src/main/java/com/fgedu/orderservice/OrderServiceApplication.java <
[INFO] Scanning for projects...
[INFO] Building fgedu-order-service 1.0.0
[INFO] BUILD SUCCESS
[INFO] Total time: 42.567 s
Successfully built 123abc456def
Successfully tagged fgedu/fgedu-order-service:1.0.0
deployment.apps/fgedu-order-service created
service/fgedu-order-service created
NAME                                   READY   STATUS    RESTARTS   AGE
fgedu-user-service-5d4f8b6c6-abc12    1/1     Running   0          10m
fgedu-user-service-5d4f8b6c6-def34    1/1     Running   0          10m
fgedu-user-service-5d4f8b6c6-ghi56    1/1     Running   0          10m
fgedu-order-service-7g8h9i0j1-k2l3    1/1     Running   0          2m
fgedu-order-service-7g8h9i0j1-m4n5    1/1     Running   0          2m

4.2 服务间调用实战

测试订单服务调用用户服务。

Order Service is Healthy
{"orderId":"ORD001","userId":"fgedu001","amount":299.00,"userInfo":{"userId":"fgedu001","userName":"Fengge User","email":"fgedu@fgedu.net.cn"}}
2026-04-10 12:30:00.123 INFO  --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet'
2026-04-10 12:30:00.456 INFO  --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 333 ms
2026-04-10 12:30:05.789 INFO  --- [nio-8080-exec-2] c.f.orderservice.OrderServiceApplication : Received request for order ORD001
2026-04-10 12:30:06.012 INFO  --- [nio-8080-exec-2] c.f.orderservice.OrderServiceApplication : Calling user service
2026-04-10 12:30:06.345 INFO  --- [nio-8080-exec-2] c.f.orderservice.OrderServiceApplication : User info retrieved successfully

4.3 故障排查与性能优化

排查微服务常见问题并优化性能。

NAME                                   CPU(cores)   MEMORY(bytes)
fgedu-user-service-5d4f8b6c6-abc12    50m          128Mi
fgedu-user-service-5d4f8b6c6-def34    48m          125Mi
fgedu-user-service-5d4f8b6c6-ghi56    52m          130Mi
fgedu-order-service-7g8h9i0j1-k2l3    60m          135Mi
fgedu-order-service-7g8h9i0j1-m4n5    58m          132Mi
NAME                  ENDPOINTS                                          AGE
fgedu-order-service   10.42.1.10:8080,10.42.2.11:8080                 5m
fgedu-user-service    10.42.1.8:8080,10.42.2.9:8080,10.42.3.7:8080   15m
deployment.apps/fgedu-user-service scaled
NAME                                  READY   STATUS    RESTARTS   AGE
fgedu-user-service-5d4f8b6c6-abc12   1/1     Running   0          20m
fgedu-user-service-5d4f8b6c6-def34   1/1     Running   0          20m
fgedu-user-service-5d4f8b6c6-ghi56   1/1     Running   0          20m
fgedu-user-service-5d4f8b6c6-jkl78   1/1     Running   0          1m
fgedu-user-service-5d4f8b6c6-mno90   1/1     Running   0          1m
NAME                ENDPOINTS                                                      AGE
fgedu-user-service  10.42.1.8:8080,10.42.2.9:8080,10.42.3.7:8080,10.42.1.12:8080,10.42.2.13:8080   25m

Part05-风哥经验总结与分享

5.1 生产环境最佳实践

1. 使用健康检查和就绪探针确保服务可用性
2. 配置资源限制防止资源耗尽
3. 使用ConfigMap和Secret管理配置
4. 实施蓝绿部署或金丝雀发布
5. 配置日志聚合和监控告警
6. 使用服务网格管理微服务通信
7. 定期备份应用配置和数据
8. 实施自动化测试和CI/CD流程

5.2 常见问题与解决方案

1. 服务启动失败:检查镜像拉取、资源配额、配置错误
2. 服务间调用超时:调整超时时间、检查网络连通性、增加副本数
3. 负载均衡不均:检查Service配置、验证Pod健康状态
4. DNS解析失败:检查CoreDNS配置、验证Service名称
5. 资源不足:调整资源限制、增加节点资源
6. 配置更新不生效:检查ConfigMap挂载、重启Pod
7. 日志丢失:配置日志收集、增加日志保留时间
8. 性能问题:优化应用代码、增加资源配额、使用缓存

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息