通过Helm客户端部署Sermant Injector将应用接入ServiceComb引擎
接入流程
通过Helm客户端部署Sermant Injector将应用接入ServiceComb引擎流程如下:
通过Helm客户端部署Sermant Injector将应用接入ServiceComb引擎
- 安装Helm客户端。
Helm下载链接:https://github.com/helm/helm/releases,请选择合适的版本,本文以helm v3.3.0为例进行演示。
- 下载helm-v3.3.0-linux-amd64.tar.gz。
- 登录已安装kubectl命令的CCE节点,然后将Helm安装包上传到CCE节点上。
请参考Linux弹性云服务器登录方式概述选择相应方式登录CCE节点。
- 解压Helm安装包。
在Helm安装包所在的路径执行命令tar -zxf helm-v3.3.0-linux-amd64.tar.gz解压Helm安装包。
- 将helm移动到系统path所在路径。
以“/usr/local/bin/helm”为例,在Helm解压包所在的路径执行命令mv linux-amd64/helm /usr/local/bin/helm进行移动。
- 验证安装结果。
执行命令helm version,如果输出下图中的信息,则说明安装成功:
安装用户需要有安装目录和系统path路径的读写权限。
Helm客户端版本需要大于等于3.1。
如果您的Sermant Injector版本低于1.0.11,您还需要在该步骤之后进行以下准备工作:
第一次启动Sermant Injector应用之前,需申请Sermant Injector https证书。- 登录已安装kubectl命令的CCE节点。
请参考Linux弹性云服务器登录方式概述选择相应方式登录CCE节点。
- 登录后,请在已安装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实例。
- 安装Sermant Injector模板。
- 登录已安装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
- 修改配置。
下载模板后,编辑模板包中的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}'
- 安装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。
- 登录已安装Helm客户端的CCE节点并执行以下命令下载Sermant Injector模板:
- 修改需要接入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。
- 验证应用接入ServiceComb引擎。
参考查看微服务列表查看您的应用(服务名为spring.application.name配置的值)是否已接入ServiceComb引擎。