如下微服务:
- demo-service 服务提供方
- demo-provider 服务消费方
- eureka-server 注册中心
- api-gateway 网关
1.创建pod,将demo-service运行在docker中,通过pod运行并启动docker,pod通过rc创建,不直接创建,直接创建的pod无法进行扩容
apiVersion: v1 kind: ReplicationController metadata: name: demo-service spec: replicas: 2 selector: app: demo-service template: metadata: labels: app: demo-service spec: containers: - name: demo-service image: registry.cn-beijing.aliyuncs.com/tianming/demo-service:latest #镜像名称,规则是 地址+镜像库+镜像名称+版本tag ports: - containerPort: 8081 #服务暴露的端口
2.定义服务,以及服务暴露的接口,此时创建的服务会管理步骤1创建的pod,因为设置了 LoadBalancer,所以可以通过 external ip 在外部网络访问到。
在 Prod 环境中,我们不会这样做,一般只有 api-gateway 项目才会对外暴露访问端口
apiVersion: v1
kind: Service
metadata:
name: demo-service
spec:
type: LoadBalancer
ports:
- port: 8081
selector:
app: demo-service