簡體   English   中英

在 kubernetes 中部署 eureka 時,我應該更喜歡指定關於 liveness probe 和 readiness probe 的端口

[英]what should I prefer to specify port about liveness probe and readiness probe when deploy eureka in kubernetes

我正在 kubernetes 集群(v1.15.2)中部署 eureka,這是我的 yaml:

apiVersion: v1
kind: Service
metadata:
  name: eureka
  labels:
    app: eureka
spec:
  clusterIP: None
  ports:
    - name: server
      port: 8761
      targetPort: 8761
    - name: management
      port: 8081
  selector:
    app: eureka
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: eureka
  labels:
    app: eureka
spec:
  serviceName: eureka-service
  replicas: 1
  podManagementPolicy: Parallel     #Pod啟停順序管理
  selector:
    matchLabels:
      app: eureka
  template:
    metadata:
      labels:
        app: eureka
    spec:
      terminationGracePeriodSeconds: 10    #當刪除Pod時,等待時間
      containers:
        - name: eureka
          image: registry.cn-hangzhou.aliyuncs.com/dabai_app_k8s/dabai_fat/soa-eureka:v1.0.0
          ports:
            - name: server
              containerPort: 8761
            - name: management
              containerPort: 8081
          env:
            - name: APP_NAME
              value: "eureka"
            - name: POD_NAME
              valueFrom:
                fieldRef:
                  fieldPath: metadata.name
            - name: APP_OPTS
              value: "
                     --spring.application.name=${APP_NAME}
                     --eureka.instance.hostname=${POD_NAME}.${APP_NAME}
                     --registerWithEureka=true
                     --fetchRegistry=true
                     --eureka.instance.preferIpAddress=false
                     --eureka.client.serviceUrl.defaultZone=http://eureka-0.${APP_NAME}:8761/eureka/,http://eureka-1.${APP_NAME}:8761/eureka/
                     "
          resources:
            limits:
              cpu: 2000m
              memory: 1024Mi
            requests:
              cpu: 2000m
              memory: 1024Mi
          readinessProbe:              #就緒探針
            initialDelaySeconds: 20    #延遲加載時間
            periodSeconds: 5           #重試時間間隔
            timeoutSeconds: 10         #超時時間設置
            failureThreshold: 5        #探測失敗的重試次數
            httpGet:
              path: /actuator/health
              port: 8081
          livenessProbe:               #存活探針
            initialDelaySeconds: 60    #延遲加載時間
            periodSeconds: 5           #重試時間間隔
            timeoutSeconds: 5          #超時時間設置
            failureThreshold: 3        #探測失敗的重試次數
            httpGet:
              path: /actuator/health
              port: 8081

已成功創建所有服務,但出現此錯誤消息:

Readiness probe failed: Get http://172.30.224.17:8081/actuator/health: dial tcp 172.30.224.17:8081: connect: connection refused
Back-off restarting failed container

管理端口應該和eureka服務端口一樣吧? 我到底會怎么做才能實現探測服務?

Eureka 服務器是一個 Spring Boot 應用程序,它啟動一個嵌入式 tomcat,您在 Eureka 服務器的 application.yml 中指定端口。 默認端口設置為 8761。您可以使用 8761 端口進行探測,這就是我推薦的。 您需要在actuator/health處有一個休息端點,它返回200 Ok ,我相信默認情況下是由彈簧執行器添加的,因此您不需要自己實現它。

簡而言之,將探針中的端口從 8081 更改為 8761 應該可以工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM