zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    JAVA环境安装配置
    使用apache设置绑定多个域名或网站
    C#资源释放及Dispose、Close和析构方法
    【数据库】百万级数据库SQL优化大总结
    【ABP】Abp的AspNetZero5.0版本无法使用ctrl+f5调式
    【.Net】vs2017 自带发布工具 ClickOnce发布包遇到的问题
    【Python】python 反射机制在实际的应用场景讲解
    【.Net】从字符串数组中寻找数字的元素
    【.Net】输出的字符靠右对齐
    【.Net+数据库】sqlserver的四种分页方式
  • 原文地址:https://www.cnblogs.com/Fengyinyong/p/14903725.html
Copyright © 2011-2022 走看看