Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

API 网关:如何手动更新配置类组件(confapis) #283

Open
alex-smile opened this issue Oct 10, 2023 · 0 comments
Open

API 网关:如何手动更新配置类组件(confapis) #283

alex-smile opened this issue Oct 10, 2023 · 0 comments

Comments

@alex-smile
Copy link
Contributor

alex-smile commented Oct 10, 2023

Description

目前 API 网关支持的组件中,组件系统 JOB、NODEMAN 等官方组件,以配置类组件方案维护组件配置。系统方如 JOB,维护组件的 yaml 配置,交付给 API 网关管理员,API 网关管理员将其打包发布。

在配置类组件 API 的测试阶段,为了更快地更新、测试组件 API,也可手动更新配置类组件,不需要 API 网关打包发布。

容器化版本

  1. 准备待更新的组件 yaml 配置

  2. 将 yaml 拷贝到 esb 的一个容器,指令示例:

    # 组件 yaml 配置在容器内目录 /app/components/confapis 下,不同组件系统的 yaml 文件名和目录不同,请登录容器查看;
    # 下例以 job 为例
    kubectl cp job.yaml blueking/bk-apigateway-bk-esb-<xxx>:/app/components/confapis/jobv3/job.yaml -c bk-esb
    
  3. 登录 esb 容器,执行 django command,将组件数据同步到 db

    # 进入容器
    kubectl exec -it bk-apigateway-bk-esb-<xxx> -n blueking -- bash
    
    # 执行 django command,将 yaml 数据同步到 db
    python manage.py sync_data_at_deploy
    
  4. 将组件数据,同步到 API 网关 bk-esb

    # 进入 dashboard 容器
    kubectl exec -it bk-apigateway-dashboard-<xxx> -n blueking -- bash
    
    # 将组件谁,同步到 API 网关 bk-esb;此指令耗时 2 ~ 5 分钟,请等待
    python manage.py sync_to_gateway_and_release
    
  5. 验证 bk-esb 组件。登录网关管理端 http://apigw.__bk_domain__,进入网关 bk-esb 管理页

    • 基本设置 => 资源管理,检查网关 bk-esb 中是否包含待更新的资源
  6. 测试组件

    • 更新 2 分钟后,测试组件访问是否正常

二进制版本

二进制版本,默认使用的 open-paas/esb 版本,请检查是否使用此版本。

  1. 准备待更新的组件 yaml 配置

  2. 进入二进制版本的”中控机“,通过”中控机“将组件配置文档分发到 open-paas/esb 服务部署服务器

    • 进入中控机的 /data/src/open_paas/esb/ 目录,配置类组件放置在 components/confapis 目录下
    • 将组件 yaml 拷贝到合适位置(不同系统的目录、文件名不同)
    • 执行指令,将组件 yaml 配置,同步到部署 open-paas/esb 的服务器,如:/data/src/open_paas/esb/ 下
      # 中控机执行
      /data/install/bkcli sync paas
  3. 登录所有部署 open-paas/esb 的服务器,同步组件配置到项目安装目录,并重启 open-paas/esb(更新 yaml 配置,重启 open-paas/esb,每台部署此服务的机器都需执行

    如何登录 open-paas/esb 服务器

    # 中控机执行(登录其中一台)
    source /data/install/utils.fc
    ssh $BK_PAAS_IP
    
    # 获取所有部署 open-paas/esb 的服务器(如果只有一台,执行上面的指令即可登录部署 open-paas/esb 的服务器)
    grep paas /data/install/install.config
    ssh <ip>

    在部署 open-paas/esb 的服务器上,同步组件 yaml 配置到部署目录

    # 具体目录路径请以实际为准
    bk_src_dir=/data/src
    bk_install_path=/data/bkce
    pcmd -m paas "rsync -a --delete --exclude=media $bk_src_dir/open_paas/esb/ $bk_install_path/open_paas/esb/"
    /data/install/bkcli render paas

    在部署 open-paas/esb 的服务器上,重启 open-paas/esb 服务

    pcmd -m paas "systemctl restart bk-paas-esb.service"
  4. 登录一台 open-paas/esb 服务器,执行 django command,将组件数据同步到 db (仅需执行一次)

    # 中控机执行
    source /data/install/utils.fc
    # 进入部署 open-paas/esb 的服务器
    ssh $BK_PAAS_IP
    
    # 部署 open-paas/esb 的服务器执行
    bk_install_path=/data/bkce
    workon open_paas-esb
    export BK_ENV=production
    export BK_FILE_PATH=$bk_install_path/open_paas/cert/saas_priv.txt
    python manage.py sync_data_at_deploy
@alex-smile alex-smile changed the title API 网关:如何更新配置类组件(confapis) API 网关:如何手动更新配置类组件(confapis) Oct 10, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant