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

原文地址:https://www.cnblogs.com/Fengyinyong/p/14903725.html