首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >到达Eureka Server pod Kubernetes

到达Eureka Server pod Kubernetes
EN

Stack Overflow用户
提问于 2022-06-13 14:02:17
回答 1查看 265关注 0票数 1

我有两个Springboot微服务,一个是Eureka服务器,另一个是网关。

我找不到正确的配置,使网关注册到尤里卡服务器。

这是具有eureka.yml配置的K8s:

Eureka.yml

代码语言:javascript
复制
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

Eureka.application.yml

代码语言:javascript
复制
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}

Gateway.yml

代码语言:javascript
复制
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

代码语言:javascript
复制
eureka:
  instance:
    preferIpAddress: true
    hostname: eureka-0
  client:
    registerWithEureka: true
    fetchRegistry: true
    serviceUrl:
      defaultZone: http://eureka-0.eureka.default.svc.cluster.local:8761/eureka

这是我在检查Gateway的吊舱日志时遇到的错误:

代码语言:javascript
复制
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属性:

代码语言:javascript
复制
172-17-0-3.default.pod.cluster.local:8761/eureka

但以这种方式,我不能订阅尤里卡服务器。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-14 10:06:16

我通过这样修改Gateway.application.yml来解决问题:

代码语言:javascript
复制
eureka:
  instance:
    preferIpAddress: true
    hostname: eureka-0
  client:
    registerWithEureka: true
    fetchRegistry: true
    serviceUrl:
      defaultZone: http://eureka-0.eureka:8761/eureka/

编辑:

在向Eureka服务器注册其他微服务时,我遇到了一些问题。我尝试过增加Eureka服务器的副本,并将每个微服务注册器设置为一个专用副本,但现在这样做是行不通的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72604188

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档