更新时间:2024-08-16 GMT+08:00
分享

通过Helm客户端部署Sermant Injector将应用接入ServiceComb引擎

接入流程

通过Helm客户端部署Sermant Injector将应用接入ServiceComb引擎流程如下:

通过Helm客户端部署Sermant Injector将应用接入ServiceComb引擎

  1. 安装Helm客户端。

    Helm下载链接:https://github.com/helm/helm/releases,请选择合适的版本,本文以helm v3.3.0为例进行演示。

    1. 下载helm-v3.3.0-linux-amd64.tar.gz
    2. 登录已安装kubectl命令的CCE节点,然后将Helm安装包上传到CCE节点上。

      请参考Linux弹性云服务器登录方式概述选择相应方式登录CCE节点。

    3. 解压Helm安装包。

      在Helm安装包所在的路径执行命令tar -zxf helm-v3.3.0-linux-amd64.tar.gz解压Helm安装包。

    4. 将helm移动到系统path所在路径。

      “/usr/local/bin/helm”为例,在Helm解压包所在的路径执行命令mv linux-amd64/helm /usr/local/bin/helm进行移动。

    5. 验证安装结果。

      执行命令helm version,如果输出下图中的信息,则说明安装成功:

    安装用户需要有安装目录和系统path路径的读写权限。

    Helm客户端版本需要大于等于3.1。

    如果您的Sermant Injector版本低于1.0.11,您还需要在该步骤之后进行以下准备工作:

    第一次启动Sermant Injector应用之前,需申请Sermant Injector https证书。
    1. 登录已安装kubectl命令的CCE节点。

      请参考Linux弹性云服务器登录方式概述选择相应方式登录CCE节点。

    2. 登录后,请在已安装kubectl命令的CCE节点中执行以下命令申请Sermant Injector https证书:

      wget -O- https://cse-bucket-cn-east-3.obs.cn-east-3.myhuaweicloud.com/javaagent/certificate.sh | sh

      • 该步骤会把证书挂载到cse命名空间中,如果不存在cse命名空间,则会自动创建。
      • 该步骤会向k8s集群申请名为sermant-injector.cse.svc的CertificateSigningRequest,如果之前存在,则会被覆盖。
      • 该步骤会在cse命名空间中创建名为sermant-injector-secret的Secret,如果之前存在,则会被覆盖。
      • 使用Sermant Injector时,如果提示证书失效等证书相关的错误,请重新申请证书并重新安装Sermant Injector实例。

  2. 安装Sermant Injector模板。

    1. 登录已安装Helm客户端的CCE节点并执行以下命令下载Sermant Injector模板:

      wget -O- 'https://cse-bucket-cn-east-3.obs.cn-east-3.myhuaweicloud.com/javaagent/sermant-injector-1.0.11.tgz' | tar zx

      Sermant Injector模板版本信息如下:

      Sermant Injector版本

      Sermant Agent镜像版本

      Sermant Agent开源版本

      发行时间

      1.0.11

      1.0.9

      1.0.6

      2023.10.31

    2. 修改配置。

      下载模板后,编辑模板包中的values.yaml文件,按需修改配置。配置说明如下:

      agent:
        image:
          # 选填配置,Sermant Agent镜像版本,默认为最新版本。
          version: ${agent.version}
      cse:
        config:
          # 必填配置,ServiceComb引擎配置中心地址,获取方式可参考获取ServiceComb引擎配置中心地址。
          endpoints: https://localhost:30110
        registry:
          # 必填配置,注册中心类型,当前支持SERVICE_COMB/NACOS
          type: SERVICE_COMB
          # 必填配置,ServiceComb引擎注册中心地址,获取方式可参考获取ServiceComb引擎注册发现地址。
          endpoints: https://localhost:30100
      image:
        # 选填配置,镜像拉取策略:Always(总是拉取)/IfNotPresent(本地有则使用本地镜像,不拉取)/Never(只使用本地镜像,从不拉取)
        pullPolicy: IfNotPresent
        # 必填配置,CCE所在的region,默认为cn-east-3(华东-上海一),具体请参考地区和终端节点。
        region: cn-east-3
      injector:
        image:
          # 选填配置,injector镜像版本,默认为最新版本。
          version: ${injector.version}
          # 选填配置,拉取镜像的密钥。
          pullSecrets: default-secret
          # 选填配置,injector实例数,若CCE集群只有一个节点,则需配置为1。
          replicas: 2

      如果您的Sermant Injector版本低于1.0.11,还需在”injector”节点下,配置“webhooks > caBundle”的值,该值需要在已安装kubectl命令的CCE节点中使用以下命令获取:

      kubectl config view --raw --minify --flatten -o jsonpath='{.clusters[].cluster.certificate-authority-data}'

    3. 安装Sermant Injector模板。

      在Sermant Injector模板包所在路径执行命令helm install sermant-injector sermant-injector-1.0.11进行安装。

      如果需要卸载Sermant Injector,请执行helm uninstall sermant-injector命令。

      注意:卸载Sermant Injector后,不会再自动挂载Sermant Agent。已挂载Sermant Agent的应用如果未重启则不受影响,如果重启,因为Sermant Injector已被卸载,则应用不会再挂载Sermant Agent。

  3. 修改需要接入ServiceComb引擎的应用部署文件。

    • 如果是新建应用,请直接编辑YAML文件。
    • 如果是已经部署的应用,请使用kubectl edit命令进行编辑YAML文件。

      以Deployment为例,执行命令kubectl edit deployment {DeploymentName} -o yaml -n {namespace}

      {DeploymentName}需要替换为具体的Deployment名称,{namespace}需要替换为Deployment所在的命名空间,若您不清楚DeploymentName或者NAMESPACE,可以使用以下命令查看在CCE中部署的所有Deployment,然后找到您需要接入CSE的应用的DeploymentName与NAMESPACE:

      kubectl get deployments --all-namespaces

      命令执行结果示例如下:

    在YAML文件中的“spec > template > metadata > labels”层级下加入内容:sermant-injection: enabled。

    • 新建的应用在启动时会自动挂载Sermant Agent。
    • 已经部署的应用在修改YAML后会自动重启并挂载Sermant Agent。

  4. 验证应用接入ServiceComb引擎。

    参考查看微服务列表查看您的应用(服务名为spring.application.name配置的值)是否已接入ServiceComb引擎。

相关文档