K8S部署apollo配置中心


K8S部署apollo配置中心

  說明:最近在用K8S部署微服務,而微服務的配置文件眾多,需要一個配置中心來處理配置文件。於是采用apollo來作為配置中心。本實例介紹了如何采用K8S部署高可用的apollo集群。

一、前提條件

1、已經搭建了一個K8S集群

2、一個可用的mysql數據庫

  apollo是需要用到mysql數據庫的,所以必須要有一個可用的mysql數據庫。

二、apollo鏡像構建

  采用K8S部署apollo時,需要用到多個鏡像。這些鏡像,需要自己構建。

1.獲取鏡像構建腳本

  鑒於在K8S中使用的apollo鏡像需要自己構建(注意是多個鏡像),apollo給出了構建這些鏡像所需要的腳本。可從 https://github.com/ctripcorp/apollo 或者 國內的gitee https://gitee.com/nobodyiam/apollo 下載腳本。國內下載會比較快。

git clone https://github.com/ctripcorp/apollo.git  (或者 git clone https://gitee.com/nobodyiam/apollo.git)

  獲取文件后,進入到 /scripts/apollo-on-kubernetes。這里面,每一個文件夾,對應着相應的腳本。有打apollo鏡像的腳本,有mysql數據庫的腳本,也有k8s下運行apollo的腳本。

2.獲取apollo的壓縮包,並解壓。

  在 https://github.com/ctripcorp/apollo/releases 可以獲取apollo的壓縮包,現在的最新版本是v1.8.2

2.1 文件下載

  假如下載的是最新的版本:
    apollo-portal-1.8.2-github.zip
    apollo-adminservice-1.8.2-github.zip
    apollo-configservice-1.8.2-github.zip

2.2 文件解壓

​    解壓 apollo-portal-1.8.2-github.zip
​  獲取 apollo-portal-1.8.2.jar, 重命名為 apollo-portal.jar, 放到 scripts/apollo-on-kubernetes/apollo-portal-server

​    解壓 apollo-adminservice-1.8.2-github.zip
​  獲取 apollo-adminservice-1.8.2.jar, 重命名為 apollo-adminservice.jar, 放到 scripts/apollo-on-kubernetes/apollo-admin-server

​    解壓 apollo-configservice-1.8.2-github.zip
​  獲取 apollo-configservice-1.8.2.jar, 重命名為 apollo-configservice.jar, 放到 scripts/apollo-on-kubernetes/apollo-config-se

2.3 打docker鏡像

當文件解壓,並放入對應的腳本文件夾后,就可以構建鏡像了(腳本文件夾中有對應的dockerfile)。
構建 alpine-bash 鏡像

進入 scripts/apollo-on-kubernetes/alpine-bash-3.8-image,執行:
docker build -t alpine-bash:3.8 .

構建 apollo-admin-server 鏡像

進入 scripts/apollo-on-kubernetes/apollo-admin-server,執行:
docker build -t apollo-admin-server:v1.8.2 .

構建 apollo-config-server 鏡像

進入 scripts/apollo-on-kubernetes/apollo-config-server,執行:
docker build -t apollo-config-server:v1.8.2 .

構建 apollo-portal-server 鏡像

進入 scripts/apollo-on-kubernetes/apollo-portal-server,執行:
docker build -t apollo-portal-server:v1.8.2 .

三、創建mysql數據庫

​    apollo需要用到mysql,apollo服務端共需要兩個數據庫:ApolloConfigDB 和 ApolloPortalDB 。在目錄 scripts/apollo-on-kubernetes/db 中,給出了 dev、test-alpha、test-beta、prod 四個環境的ApolloConfigDB腳本,而ApolloPortalDB 是通用的。我這里只部署prod環境的。當然,可以同時部署四個環境的數據庫。
腳本執行如下所示:
​    

四、執行yaml文件,K8S部署apollo.

​     進入 scripts/apollo-on-kubernetes/kubernetes,里面有各個環境的yaml文件。由於我只部署prod環境,對apollo-env-prod 中的yaml文件進行相應的更改。同時更改 service-apollo-portal-server.yaml 的配置。然后根據 kubectl-apply.sh 文件中的順序執行就可以了。

​    

1.部署后apollo的Eureka注冊中心。

​     apollo自帶了一個Eureka注冊中心。
​    

2.部署環境完成portal頁面圖

​    輸入用戶名密碼:apollo/admin,就可以看到portal頁面圖。
​    

五、文件參考

1.https://developer.51cto.com/art/202101/640183.htm

2.https://github.com/ctripcorp/apollo/tree/master/scripts/apollo-on-kubernetes


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM