《docker+k8s教程》

示例代码  https://github.com/CodingSoldier/java-learn/tree/master/project/k8s-spring-cloud-csdn

csdn下载地址(积分似乎无法修改) https://download.csdn.net/download/u010606397/11245542

在本项目中,会部署eureka、gateway、app01、app02

先看下eureka的yaml配置

apiVersion: apps/v1
kind: Deployment
metadata:
  name: deployment-eureka-server
spec:
# 注册中心只能部署一个pod
  replicas: 1
  selector:
    matchLabels:
      app: eureka-server
  template:
    metadata:
      labels:
        app: eureka-server
    spec:
      containers:
      - name: eureka-server
        image: codingsoldier/eureka-server:latest
        imagePullPolicy: IfNotPresent
        ports:
        - name: http
          containerPort: 10001
---
apiVersion: v1
kind: Service
metadata:
# service的名字非常重要,必须跟application.properties的eureka.client.serviceUrl.defaultZone=http://server-eureka-server:10001/eureka/ 中的域名相同
  name: server-eureka-server
spec:
  selector:
    app: eureka-server
# 使用NodePort类型的Service,绑定service的10001端口到宿主机,以便在物理机浏览器上看注册中心的信息
  type: NodePort
  ports:
  - name: http
    port: 10001
    targetPort: 10001
#   暴露端口取值范围是30000-32767
    nodePort: 30001

重要的有两点

1、注册中心pod数量只能为1个(只是演示,就这么着了。实际部署中可以部署集群,这太麻烦了)

2、Service的名字是 eureka.client.serviceUrl.defaultZone 的域名。见下图

补充,image用的是我的仓库,请改成自己的,在自己的机器上打成镜像

 

gateway、app01、app02的注册中心配置为

eureka.client.serviceUrl.defaultZone=http://server-eureka-server:10001/eureka/

为了能够在物理机上调用gateway,将gateway的service设置为NodePort类型(实际部署时,应该通过ingress或者云厂商提供的loadBlance调用网关。这里就不搞那么复杂了)

使用步骤

1、把jar包上传到所有node节点,打成镜像

2、在主节点部署服务

app01的/test01/test02/post接口会使用feign调用app02,调一下这个接口。

Logo

开源、云原生的融合云平台

更多推荐