繁体   English   中英

到达 Eureka Server pod Kubernetes

[英]Reaching Eureka Server pod Kubernetes

我有2个Springboot微服务,一个是Eureka server,另一个是Gateway。

我找不到正确的配置来使网关注册到 Eureka 服务器。

这是带有eureka.yml配置的 eureka.yml:

尤里卡.yml

apiVersion: v1
kind: ConfigMap
metadata:
  name: eureka-cm
data:
  eureka_service_address: http://eureka-0.eureka:8761/eureka

---

apiVersion: v1
kind: Service
metadata:
  name: eureka
  labels:
    app: eureka
spec:
  clusterIP: None
  ports:
    - port: 8761
      name: eureka
  selector:
    app: eureka

---

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: eureka
spec:
  serviceName: "eureka"
  replicas: 1
  selector:
    matchLabels:
      app: eureka
  template:
    metadata:
      labels:
        app: eureka
    spec:
      containers:
        - name: eureka
          image: myrepo/eureka1.0:eureka
          imagePullPolicy: Always
          ports:
            - containerPort: 8761
          env:
            - name: EUREKA_SERVER_ADDRESS
              valueFrom:
                configMapKeyRef:
                  name: eureka-cm
                  key: eureka_service_address


---                  

apiVersion: v1
kind: Service
metadata:
  name: eureka-lb
  labels:
    app: eureka
spec:
  selector:
    app: eureka
  type: NodePort
  ports:
    - port: 80
      targetPort: 8761

尤里卡.application.yml

spring:
  application:
    name: eureka
server:
  port: 8761
eureka:
  instance:
    hostname: "${HOSTNAME}.eureka"
  client:
    register-with-eureka: false
    fetch-registry: false
    serviceUrl:
      defaultZone: ${EUREKA_SERVER_ADDRESS}

网关.yml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: cloud-gateway-app
  labels:
    app: cloud-gateway-app
spec:
  replicas: 1
  selector:
    matchLabels:
      app: cloud-gateway-app
  template:
    metadata:
      labels:
        app: cloud-gateway-app
    spec:
      containers:
        - name: cloud-gateway-app
          image: myrepo/gateway1.0:gateway
          imagePullPolicy: Always
          ports:
            - containerPort: 9191

---
apiVersion: v1
kind: Service
metadata:
  name: cloud-gateway-svc
spec:
  type: LoadBalancer
  ports:
    - port: 80
      targetPort: 9191
      protocol: TCP
  selector:
    app: cloud-gateway-app

Gateway.application.yml

eureka:
  instance:
    preferIpAddress: true
    hostname: eureka-0
  client:
    registerWithEureka: true
    fetchRegistry: true
    serviceUrl:
      defaultZone: http://eureka-0.eureka.default.svc.cluster.local:8761/eureka

这是我检查网关 pod 的日志时遇到的错误:

error on POST request for "http://eureka-0.eureka.default.svc.cluster.local:8761/eureka/apps/API-GATEWAY": eureka-0.eureka.default.svc.cluster.local; nested exception is java.net.UnknownHostException: eureka-0.eureka.default.svc.cluster.local

按照文档,我尝试按照以下模式设置Gateway.application.properties文件的defaultZone属性:

172-17-0-3.default.pod.cluster.local:8761/eureka

但是这样也一样,我也订阅不了Eureka Server。

我通过以这种方式修改 Gateway.application.yml 来解决:

eureka:
  instance:
    preferIpAddress: true
    hostname: eureka-0
  client:
    registerWithEureka: true
    fetchRegistry: true
    serviceUrl:
      defaultZone: http://eureka-0.eureka:8761/eureka/

编辑:

我在将其他微服务注册到 Eureka Server 时遇到了一些问题。 我尝试增加 Eureka Server 的副本并将每个微服务注册到一个专用副本,但现在这不起作用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM