2 回答

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超8個(gè)贊
為了讓 SBA(Spring Boot Admin)了解您的服務(wù)的三個(gè)實(shí)例是不同的,您需要確保每個(gè)實(shí)例都使用其“內(nèi)部 IP 地址”在 SBA 中注冊(cè)。
這樣做將使 SBA 獨(dú)立查詢(xún)每個(gè)實(shí)例的健康狀況,并導(dǎo)致 spring 為每個(gè) pod 創(chuàng)建唯一的 instance-id。
請(qǐng)注意,使用 k8s 服務(wù)名稱(chēng)進(jìn)行注冊(cè)將導(dǎo)致 SBA 的健康查詢(xún)?cè)诜?wù)的 pod 之間進(jìn)行負(fù)載平衡。
為此,請(qǐng)?zhí)砑觓pplication.yml以下內(nèi)容:
spring:
boot.admin.client:
url: http://<k8s-service-name-and-port>
instance:
name: <service-name>
service-base-url: http://${K8S_POD_IP}:8080
management-base-url: http://${K8S_POD_IP}:8081
auto-deregistration: true
擁有:
K8S_POD_IP
是一個(gè)環(huán)境變量,其中包含必須可從 SBA 訪問(wèn)的 pod 的 IP 地址——這是 SBA 將使用的地址來(lái)查詢(xún)您的服務(wù)實(shí)例的健康狀況spring.boot.admin.client.url
是當(dāng)您單擊服務(wù)實(shí)例時(shí) SBA 的 UI 將使用的 URL——此 URL 應(yīng)指向 k8s 的服務(wù)spring.boot.admin.client.management-base-url
- SBA 使用它來(lái)監(jiān)控每個(gè)服務(wù)的健康狀況,每個(gè)實(shí)例都應(yīng)該是唯一的,并且應(yīng)該可以從 SBA 訪問(wèn)如果您沒(méi)有設(shè)置
auto-deregistration
為true
每當(dāng)您推出更新或縮減服務(wù)時(shí),您將收到不健康實(shí)例的通知 - 使用此設(shè)置,實(shí)例將在關(guān)閉時(shí)從 SBA 取消注冊(cè)。

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超7個(gè)贊
你需要在 yml 文件中設(shè)置參數(shù):
eureka.instance.instance-id: ${spring.cloud.client.ip-address}:${server.port}
添加回答
舉報(bào)