k8s部署eureka集羣

在K8S上部署eureka-server

本文參考地址:https://kuboard.cn/learning/k8s-practice/ocp/eureka-server.html#%E7%90%86%E8%A7%A3eureka-server

一、資源準備

在 Kubernetes 中部署多個 eureka-server 的實例組成集羣時,主要有如下考慮因素:

  • 每個 eureka-server 需要被賦予一個唯一的 id,通過字段 eureka.instance.instance-id 指定。OCP 中,該字段的配置爲 spring.application.name:{spring.application.name}:{spring.cloud.client.ip-address}:KaTeX parse error: Expected '}', got 'EOF' at end of input: …on.instance_id:{server.port}}
    Kubernetes 爲每一個 Pod 分配一個 IP 地址,此要求可以滿足
  • eureka-server 的每一個實例需要知道集羣中其他實例的地址和端口號,通過字段 eureka.client.serviceUrl.defaultZone 指定
    請參考 StatefulSet的使用場景 以理解爲何選擇 StatefulSet 部署 eureka
    請參考 StatefulSet穩定的網絡ID 以理解 StatefulSet 如何爲其中的 Pod 分配 DNS name
  • eureka-server 的多個實例之間,不能存在端口衝突
    請參考 Kubernetes的網絡模型 以理解 Kubernetes 中如何避免端口衝突

我們在 Kubernetes 上部署 eureka-server 時:

  • 使用 StatefulSet 部署 eureka-server,副本數量爲 3
  • 使用環境變量覆蓋 eureka.client.service-url.defaultZone 取值,將其設置爲:
http://cloud-eureka-0.cloud-eureka.test.svc.cluster.local:1111/eureka,http://cloud-eureka-1.cloud-eureka.test.svc.cluster.local:1111/eureka,http://cloud-eureka-2.cloud-eureka.test.svc.cluster.local:1111/eureka

具體爲什麼設置成這些值,參考StatefulSet穩定的網絡IDKubernetes的網絡模型
在這裏插入圖片描述

  • 使用環境變量覆蓋 eureka.instance.prefer-ip-address 取值,將其設置爲:false
  • 爲 eureka-server 創建 Ingress,如果沒有域名可以不創建Ingress

二、部署eureka-server

本教程將 eureka-server 及其他微服務組件部署到 test 名稱空間,並假設您已經創建好了該名稱空間,參考 創建名稱空間
在 Kuboard 界面中進入 test 名稱空間,並點擊頁頭的按鈕 創建工作負載,如下圖所示:
填寫表單:

字段名稱 填寫內容 備註
服務類型 StatefulSet
服務分層 中間件
服務名稱 eureka
服務描述 註冊中心
副本數量 3
容器名稱 eureka-server
鏡像 harbor.hld.com/test/eureka:latest harbor鏡像倉庫鏡像地址
抓取策略 Always
環境變量 eureka.client.service-url.defaultZone=http://cloud-eureka-0.cloud-eureka.test.svc.cluster.local:1111/eureka,http://cloud-eureka-1.cloud-eureka.test.svc.cluster.local:1111/eureka,http://cloud-eureka-2.cloud-eureka.test.svc.cluster.local:1111/eureka eureka.instance.prefer-ip-address=false 填入 kuboard 時環境變量名後面不帶 =
Service NodePort:協議 TCP 服務端口 1111節點端口 31111 容器端口 1111 可從節點端口訪問
Ingress 域名:xxxxx 路由配置: 映射URL / 服務端口 1111 可通過域名訪問

在這裏插入圖片描述
在這裏插入圖片描述

  • 保存、應用。然後等待完成

三、驗證

按照上面的部署方式,有如下兩種方式可以從瀏覽器訪問 eureka-server 的界面:

  • 使用域名: http://cloud-eureka.ocp.demo.kuboard.cn/
  • 使用節點端口:http://${任意節點的IP地址}:31111
    eureka-server 界面如下圖所示:

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章