# Spring Cloud 強上云 系列之 eureka 遷移
### 故事前奏
公司的老項目 使用的Spring Cloud + eureka 的全家桶做的微服務架構。 前陣子忽然一個需求砸了過來,一忙就是兩星期。寫bug,挖坑忙的不亦樂乎。這幾天軍哥一直在群里一直大呼: 你們要輸出,要有聲音啊。正好今天剛搞完,也確實想放松一下,寫篇小白文壓壓驚。
### 故事背景
這幾年,云計算,容器 docker,微服務 很火,很顯眼。當你初步了解這些東西,很多時候會眼前一亮。哇! 還能這么搞? 嗯! 這樣確實好很多。很多企業都是拼了性命的往云上擠,這問題就來了。 上云,容器化部署是需要代價的,很多項目是基于原來傳統的框架進行開發、構建,你要上云就要做出相應的代碼重構,但重構代碼就會莫名承擔一些不可預知的風險。所以甲方爸爸的需求就來了 —— 我不管,我就要上云,我代碼就這樣,我就只有jar包,剩下的你自己看著辦吧。乙方……
沒辦法,上就上吧,但問題接踵而至。你項目容器化部署了,總要有個東西來對容器進行編排和管理吧,不然后期怎么維護,怎么知道可不可靠。這個時候 k8s 站了出來,k8s 何許人也? google 開源的容器集群管理系統,業界容器編排的標準,牛批的不行,就連docker 原生的docker swarm 都被比下去了。
好吧,本文章就是講述如何把 spring cloud eureka模塊搬移到 云上 k8s 集群,實現 高可用。 ps:不得不吐槽一下,既然使用了 k8s,還要強行部署eureka 作為服務中心,總覺的有點耿直。
### 故事進行中之 思路整理
首先我們先理下需求。k8s 上 部署 eureka 服務,eureka 服務高可用。再理下已有的資源: 華為云 ->k8s 集群。好吧,大致清楚了。首先自己準備個具有高可用功能的eureka 鏡像,然后編寫對應的 k8s yaml 文件部署應用,這就大功告成了。 如果是在華為云上,甚至可以編寫 AOS 模板,實現一鍵在 k8s 集群上部署 高可用eureka 。
故事進行中之 Spring Cloud eureka 鏡像準備。
### 什么是Spring Cloud eureka
Spring Cloud Eureka 是 Spring Cloud Netflix 微服務套件的一部分,主要負責微服務架構中的服務治理功能。
### 為什么需要Spring Cloud Eureka
微服務的核心思想是分而治之,把功能模塊化,從整體系統中抽離出來,互相解耦。初衷是好的,但是如果一個系統模塊組件太多,那么各個模塊之間的交互就成了大問題。
- 方案設計
- 使用kubespray部署k8s集群
- 使用ingress 訪問dashboard v1.8.3
- 在 Kubernetes 中配置私有 DNS 和上游域名服務器(coredns forward)
- master 節點添加taint
- limitrang
- 配置私有倉庫
- 利用NFS動態提供Kubernetes后端存儲卷
- ingress 添加https 客戶端雙向認證
- 應用日采集
- eureka 遷移 k8s 集群
- 鏡像下載地址
- helm install
- Install istio
- zookeeper 集群部署
- 基于prometheus自定義rabbitmq—exporter指標HPA彈性伸縮
- nacos huaweicloud