为第三方公网集群安装Agent
操作场景
本指导适用于在可以访问公网的第三方集群上安装Agent。按照本指导配置完成后,HSS将自动在集群节点上安装Agent,并能够随集群扩容自动为新节点安装Agent,在集群缩容时同步卸载Agent。
约束与限制
- 集群编排平台限制:1.19及以上Kubernetes。
- 节点操作系统限制:Linux系统。
- 节点规格要求:CPU必须2核及以上,内存必须4GiB及以上,系统盘必须40GiB及以上,数据盘必须100GiB及以上。
- Agent不兼容Galera 3.34和MySQL 5.6.51或更早版本的集群。
安装流程
集群与HSS服务端网络是否连通决定了Agent安装流程。
- 集群与HSS服务端网络互通
图1 集群与HSS服务端网络互通安装流程
您需要依次执行以下操作安装Agent:
- 集群与HSS服务端网络不通
图2 集群与HSS服务端网络不通安装流程
您需要依次执行以下操作安装Agent:
步骤一:准备kubeconfig文件
kubeconfig文件用于将集群的操作权限授权给HSS,方式一配置的kubeconfig文件包含集群管理员权限,方式二生成的kubeconfig文件仅包含HSS所需权限,如果您担心过度授权的问题,请通过方式二准备kubeconfig文件。
- 方式一:配置默认的kubeconfig文件
- 按以下操作创建HSS的专属命名空间。
- 登录任一集群节点。
- 创建hss.yaml文件,并将以下内容复制到hss.yaml文件中。
1
{"metadata":{"name":"hss"},"apiVersion":"v1","kind":"Namespace"}
- 执行以下命令,创建HSS的专属命名空间。
kubectl apply -f hss.yaml
- 在$HOME/.kube/config路径下,找到并下载“config”文件。
- 将文件名称“config”修改为“config.yaml”,增加.yaml的后缀。
- 按以下操作创建HSS的专属命名空间。
- 方式二:生成HSS专用的kubeconfig文件
- 创建HSS的专属命名空间和服务账号。
- 登录任一集群节点。
- 创建hss-account.yaml文件,并将以下内容复制到hss-account.yaml文件中。
1
{"metadata":{"name":"hss"},"apiVersion":"v1","kind":"Namespace"}{"metadata":{"name":"hss-user","namespace":"hss"},"apiVersion":"v1","kind":"ServiceAccount"}{"metadata":{"name":"hss-user-token","namespace":"hss","annotations":{"kubernetes.io/service-account.name":"hss-user"}},"apiVersion":"v1","kind":"Secret","type":"kubernetes.io/service-account-token"}
- 执行以下命令,创建HSS的专属命名空间和服务账号。
kubectl apply -f hss-account.yaml
- 生成kubeconfig文件。
- 创建gen_kubeconfig.sh文件,并将以下内容复制到gen_kubeconfig.sh文件中。
1 2 3 4 5 6 7 8 9 10
#!/bin/bash KUBE_APISERVER=`kubectl config view --output=jsonpath='{.clusters[].cluster.server}' | head -n1 ` CLUSTER_NAME=`kubectl config view -o jsonpath='{.clusters[0].name}'` kubectl get secret hss-user-token -n hss -o yaml |grep ca.crt: | awk '{print $2}' |base64 -d >hss_ca_crt kubectl config set-cluster ${CLUSTER_NAME} --server=${KUBE_APISERVER} --certificate-authority=hss_ca_crt --embed-certs=true --kubeconfig=hss_kubeconfig.yaml kubectl config set-credentials hss-user --token=$(kubectl describe secret hss-user-token -n hss | awk '/token:/{print $2}') --kubeconfig=hss_kubeconfig.yaml kubectl config set-context hss-user@kubernetes --cluster=${CLUSTER_NAME} --user=hss-user --kubeconfig=hss_kubeconfig.yaml kubectl config use-context hss-user@kubernetes --kubeconfig=hss_kubeconfig.yaml
- 执行以下命令,生成名称为“hss_kubeconfig.yaml”的kubeconfig文件
bash gen_kubeconfig.sh
- 创建gen_kubeconfig.sh文件,并将以下内容复制到gen_kubeconfig.sh文件中。
- 创建HSS的专属命名空间和服务账号。
步骤二:验证集群和HSS服务端的网络连通性
- 登录企业主机安全控制台。
- 在控制台左上角,单击
图标,选择区域或项目。
- 在左侧导航栏,选择“容器安装与配置”页面。 ,进入
- 在“集群”页签,单击“安装容器安全Agent”,弹出“容器资产接入与安装”页面。
- 选择“非CCE集群(公网接入)”,并单击“开始配置”。
- 复制ping命令到任意集群节点上执行,测试集群与HSS服务端之间的网络连通性。
图3 复制ping命令
- 命令执行完成后,返回如图4所示,表示网络连接成功,否则网络连接失败。
- 网络连接成功:单击“下一步”,继续步骤三:配置集群信息并安装Agent(网络默认连通)。
- 网络连接失败:请执行步骤四:构建集群与HSS服务端之间的网络连接。
步骤三:配置集群信息并安装Agent(网络默认连通)
- 配置集群接入信息,并单击“生成命令”。接入信息相关参数说明如表 配置接入信息参数说明所示。
图5 配置集群接入信息
表1 配置接入信息参数说明 参数名称
参数说明
集群名称
填写接入的集群名称。
服务商
选择集群所属的服务商。目前支持接入以下服务商的集群:
- 阿里云
- 腾讯云
- AWS
- 微软云
- 自建
- IDC自建
上传kubeconfig
添加并上传根据步骤一:准备kubeconfig文件配置好的kubeconfig.yaml或config.yaml文件。
选择Context
上传kubeconfig文件后,HSS会自动解析出Context。
选择有效期
上传kubeconfig文件后,HSS会自动解析出有效期。您可以选择最终有效期以前的时间,在选择的有效期到期后,您需要重新接入该资产。
- 执行以下操作为集群安装集群连接组件(ANP-Agent),建立HSS和集群的连接。
- 在“容器资产接入与安装”对话框中,单击“下载Yaml文件”,下载生成的命令文件。
图6 下载Yaml文件
- 执行以下命令安装集群连接组件(ANP-Agent)。
kubectl apply -f proxy-agent.yaml
- 执行以下命令,查询集群连接组件(ANP-Agent)是否安装成功。
kubectl get pods -n hss | grep proxy-agent
界面回显如图 集群Agent安装成功所示,表示集群连接组件(ANP-Agent)安装成功。
- 执行以下命令,查询集群和HSS是否成功建立连接。
for a in $(kubectl get pods -n hss| grep proxy-agent | cut -d ' ' -f1); do kubectl -n hss logs $a | grep 'Start serving';done
界面回显如图 集群连接HSS成功所示,表示集群和HSS建立连接成功。
- 在“容器资产接入与安装”对话框中,单击“下载Yaml文件”,下载生成的命令文件。
- 在“容器资产接入与安装”对话框中,单击“下一步”。
- 配置Agent相关参数。参数说明如表 Agent配置参数说明所示。
- 配置完成,单击“确定”,开始安装HSS Agent。
- 在集群列表中,查看集群状态为“运行中”,表示集群接入HSS成功。
步骤四:构建集群与HSS服务端之间的网络连接
- 创建VPC。
- 进入创建虚拟私有云页面。
- 在“创建虚拟私有云”页面,根据页面提示配置VPC和子网的参数。
- 建议参考表3所示设置部分参数,其余参数保持默认。关于创建虚拟私有云更详细的参数介绍请参见创建虚拟私有云和子网。
表3 创建虚拟私有云参数说明 参数名称
参数说明
取值样例
区域
不同区域的云服务产品之间内网互不相通,请就近选择靠近您业务的区域,可减少网络时延,提高访问速度。
华东-上海一
名称
输入VPC的名称。要求如下:
- 长度范围为1~64位。
- 名称由中文、英文字母、数字、下划线(_)、中划线(-)、点(.)组成。
HSS-outside-anp-VPC
企业项目
创建VPC时,可以将VPC加入已启用的企业项目。
企业项目管理提供了一种按企业项目管理云资源的方式,帮助您实现以企业项目为基本单元的资源及人员的统一管理,默认项目为default。
关于创建和管理企业项目的详情,请参见《企业管理用户指南》。
default
子网名称
输入子网的名称。要求如下:
- 长度范围为1~64位。
- 名称由中文、英文字母、数字、下划线(_)、中划线(-)、点(.)组成。
HSS-outside-subnet
- 单击“立即创建”,创建完成后,可查看已创建虚拟私有云。
- 创建安全组。
- 在左侧导航栏,选择 ,进入安全组页面。
- 在右上角单击“创建安全组”,进入创建安全组页面。
- 根据页面提示,设置安全组参数。
- 建议参考表4所示设置部分参数,其余参数请结合实际情况按需配置。关于创建安全组更详细的参数介绍请参见创建安全组。
表4 创建安全组参数说明 参数名称
参数说明
取值样例
区域
不同区域的云服务产品之间内网互不相通,请就近选择靠近您业务的区域,可减少网络时延,提高访问速度。
华东-上海一
名称
输入安全组的名称。要求如下:- 长度范围为1~64位。
- 名称由中文、英文字母、数字、下划线(_)、中划线(-)、点(.)组成。
HSS-outside-anp-secGroups
企业项目
创建安全组时,可以将安全组加入已启用的企业项目。
企业项目管理提供了一种按企业项目管理云资源的方式,帮助您实现以企业项目为基本单元的资源及人员的统一管理,默认项目为default。
关于创建和管理企业项目的详情,请参见《企业管理用户指南》。
default
预设规则
安全组预设规则中预先配置了入方向规则和出方向规则,您可以根据业务选择所需的预设规则,快速完成安全组的创建。
开放全部端口
- 单击“立即创建”,创建完成后,可查看已创建安全组。
- 创建ECS。
- 单击页面左上方的
,选择“计算 > 弹性云服务器 ECS”,进入弹性云服务器页面。
- 在右上角单击“购买弹性云服务器”,进入购买弹性云服务器页面。
- 根据页面提示,设置弹性云服务器参数。
建议参考表5所示设置部分参数,其余参数请结合实际情况按需配置。关于购买弹性云服务器更详细的参数介绍请参见自定义购买ECS。
表5 购买弹性云服务器参数说明 参数名称
参数说明
取值样例
计费模式
弹性云服务器的付费方式。
- 包年/包月:预付费模式,先付费再使用。根据订单的购买周期计费。
- 按需计费:后付费模式,先使用再付费。根据实际使用时长秒级计费,按小时结算。
- 竞价计费:后付费模式,先使用再付费,相对于按需计费有一定的折扣。包含竞价模式和竞享模式,根据实际使用时长秒级计费,按小时结算。
按需计费
区域
不同区域的云服务产品之间内网互不相通,请就近选择靠近您业务的区域,可减少网络时延,提高访问速度。
华东-上海一
CPU架构
选择CPU架构,支持选择“x86计算”、“鲲鹏计算”。
x86计算
实例
通用计算型,2vCPUs,4GiB
镜像
镜像是一个包含了操作系统及必要配置的弹性云服务器模板,使用镜像可以创建弹性云服务器。
公共镜像,EulerOS 2 5 64bit(40GIB)
系统盘
系统盘用于存储云服务器的操作系统,创建云服务器时自带系统盘,且系统盘自动初始化。
超高IO
网络
虚拟私有云(VPC)为弹性云服务器构建隔离的用户自主配置和管理的虚拟网络环境,可以在VPC中定义安全组、VPN、IP地址段、带宽等网络特性。不同虚拟私有云里面的弹性云服务器网络默认不通。
HSS-outside-anp-VPC
(在执行1时,创建的VPC。)
安全组
在下拉列表中选择可用的安全组。支持为ECS选择多个安全组(建议不超过5个),此时,ECS的访问规则遵循几个安全组规则的并集。
HSS-outside-anp-secGroups
(在执行2时,创建安全组。)
弹性公网IP
弹性公网IP是指将公网IP地址和路由网络中关联的弹性云服务器绑定,以实现虚拟私有云内的弹性云服务器通过固定的公网IP地址对外提供访问服务。
现在购买,静态BGP
云服务器名称
该参数将会被设置为云服务器操作系统中初始的主机名(hostname)。
云服务器名称需符合命名规则:只能由中文字符、英文字母、数字及“_”、“-”、“.”组成。
HSS-outside-anp-ECS
企业项目
购买弹性云服务器时,可以将弹性云服务器加入已启用的企业项目。
企业项目管理提供了一种按企业项目管理云资源的方式,帮助您实现以企业项目为基本单元的资源及人员的统一管理,默认项目为default。
关于创建和管理企业项目的详情,请参见《企业管理用户指南》。
default
登录凭证
登录凭证用于设置登录ECS的方式。
密码
- 单击“立即购买”,在提示框中单击“同意并立即购买”,支付完成后,云服务器将自动创建,并默认开机。
- 单击页面左上方的
- 搭建Nginx。
- 登录3创建好的服务器。
- 执行以下命令,进入temp目录。
- cd /temp
- 执行以下命令,创建install_nginx.sh文件。
- vi install_nginx.sh
- 按“i”键进入编辑模式,并将以下内容复制粘贴到install_nginx.sh文件。
#!/bin/bash yum -y install pcre-devel zlib-devel popt-devel openssl-devel openssl wget http://www.nginx.org/download/nginx-1.21.0.tar.gz tar zxf nginx-1.21.0.tar.gz -C /usr/src/ cd /usr/src/nginx-1.21.0/ useradd -M -s /sbin/nologin nginx ./configure \ --prefix=/usr/local/nginx \ --user=nginx \ --group=nginx \ --with-file-aio \ --with-http_stub_status_module \ --with-http_gzip_static_module \ --with-http_flv_module \ --with-http_ssl_module \ --with-stream \ --with-pcre && make && make install ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ nginx
- 购买并配置ELB。
- 进入购买弹性负载均衡页面。
- 根据页面提示,设置弹性负载均衡参数。
- 建议根据表6所示设置部分参数,其余参数请结合实际情况按需配置。关于购买弹性负载均衡更详细的参数介绍请参见创建独享型负载均衡器。
表6 购买弹性负载均衡参数说明 参数名称
参数说明
取值样例
实例类型
负载均衡的实例类型,选定后不支持修改。
独享型实例适用于大流量高并发的业务场景,如大型网站、云原生应用、车联网、多可用区容灾应用。
独享型
计费模式
独享型负载均衡器的付费方式。
- 包年/包月:预付费模式,即先付费再使用,按照订单的购买周期进行结算。
- 按需计费:后付费模式,即先使用再付费,按照弹性负载均衡实际使用时长计费,秒级计费,按小时结算。
按需计费
区域
不同区域的云服务产品之间内网互不相通,请就近选择靠近您业务的区域,可减少网络时延,提高访问速度。
华东-上海一
名称
待创建负载均衡器的名称。
- 长度范围为1~64位。
- 名称由中文、英文字母、数字、下划线(_)、中划线(-)和点组成。
HSS-outside-anp-ELB
企业项目
创建负载均衡器时,可以将其加入已启用的企业项目。
企业项目管理提供了一种按企业项目管理云资源的方式,帮助您实现以企业项目为基本单元的资源及人员的统一管理,默认项目为default。
关于创建和管理企业项目的详情,请参见《企业管理用户指南》。
default
实例规格
按需计费模式下,独享型负载均衡支持按弹性规格和固定规格两种规格进行购买。
规格弹性:- 弹性规格:适用于业务用量较大的场景,按实例使用量收取LCU费用。
- 固定规格:适用于业务用量较为稳定的场景,按固定规格折算收取LCU费用。
- 固定规格
- 网络型
- 小型
网络配置
- 网络类型:可以单独选择一个网络类型,也可以同时选择多个。
- IPv4私网:负载均衡器通过IPv4私网IP对外提供服务,将来自同一个VPC的客户端请求按照指定的负载均衡策略分发到后端服务器进行处理。如果您有IPv4公网业务需求,请为负载均衡实例绑定弹性公网IP。
- IPv6网络:系统会为实例分配一个IPv6地址,转发来自IPv6客户端的请求。
- 所属VPC:负载均衡器所属虚拟私有云,独享型ELB创建完成后不支持切换,请做好相关网络规划。
- 前端子网:独享型负载均衡所在的子网,从该子网中分配ELB实例对外服务的IP地址。
- 后端子网:负载均衡实例将使用后端子网中的IP地址与后端服务器建立连接。
弹性IP
支持您为负载均衡器配置对应的弹性公网IP以处理IPv4公网业务流量。
- 现在购买
- 全动态BGP
- 按带宽计费
- 购买参数设置完成后,单击“立即购买”,完成ELB创建。
- 在弹性负载均衡页面,查看创建成功的ELB,记录IPv4公网地址。
- 单击目标ELB所在行的“监听器(前端协议/端口)”列的“去添加”,进入添加监听器页面。
- 根据页面提示,设置监听器参数。
- 建议按表7所示设置部分参数,其余参数请结合实际情况按需配置。关于添加监听器更详细的参数介绍请参见添加TCP监听器。
表7 添加监听器参数取值 参数名称
参数说明
取值样例
配置监听器
名称
监听器名称。
HSS-outside-anp-Listener
前端协议
客户端与负载均衡监听器建立流量分发连接的协议。
TCP
前端端口
客户端与负载均衡监听器建立流量分发连接的端口。
8091
访问控制
支持通过白名单和黑名单进行访问控制。
允许所有IP访问
配置后端分配策略
后端服务器组
把具有相同特性的后端服务器放在一个组。
- 新创建
- 使用已有
新创建
名称
待创建的后端服务器组的名称。
HSS-outside-anp-server-group
后端协议
后端云服务器自身提供的网络服务的协议。
TCP
分配策略类型
负载均衡采用的算法。
- 加权轮询算法:根据后端服务器的权重,按顺序依次将请求分发给不同的服务器,权重大的后端服务器被分配的概率高。
- 加权最少连接:加权最少连接是在最少连接数的基础上,根据服务器的不同处理能力,给每个服务器分配不同的权重,使其能够接受相应权值数的服务请求。
- 源IP算法:对不同源IP的访问进行负载分发,同时使得同一个客户端IP的请求始终被派发至某特定的服务器。
加权轮询算法
添加后端服务器
云服务器
在使用负载均衡服务时,确保至少有一台后端服务器在正常运行,可以接收负载均衡转发的客户端请求。
单击“添加云服务器”,可添加后端服务器。
HSS-outside-anp-ECS
,“业务端口”设置为“8091”。
(在执行3时,创建好的服务器。)
- 在确认配置页面,可查看并确认设置好的参数信息。
- 单击“提交”,完成配置。
- 修改安全组。
- 返回企业主机安全控制台,参考步骤二:验证集群和HSS服务端的网络连通性再次测试集群和HSS服务端的网络连通性。
网络连接成功后请继续步骤五:配置集群信息并安装Agent(手动打通网络)。
步骤五:配置集群信息并安装Agent(手动打通网络)
- 单击“下一步”,配置集群接入信息,配置完成后单击“生成命令”。接入信息相关参数说明如表 配置接入信息参数说明所示。
图11 配置集群接入信息
表8 配置接入信息参数说明 参数名称
参数说明
集群名称
填写接入的集群名称。
服务商
选择集群所属的服务商。目前支持接入以下服务商的集群:
- 阿里云
- 腾讯云
- AWS
- 微软云
- 自建
- IDC自建
上传kubeconfig
添加并上传根据步骤一:准备kubeconfig文件配置好的kubeconfig.yaml或config.yaml文件。
选择Context
上传kubeconfig文件后,HSS会自动解析出Context。
选择有效期
上传kubeconfig文件后,HSS会自动解析出有效期。您可以选择最终有效期以前的时间,在选择的有效期到期后,您需要重新接入该资产。
Anp代理地址
即步骤四:构建集群与HSS服务端之间的网络连接记录的ELB公网地址。
Agent代理地址
系统默认填充,无需更改。
- 执行以下操作为集群安装集群连接组件(ANP-Agent),建立HSS和集群的连接。
- 在“容器资产接入与安装”对话框中,单击“下载Yaml文件”,下载生成的命令文件。
图12 下载Yaml文件
- 执行以下命令安装集群连接组件(ANP-Agent)。
kubectl apply -f proxy-agent.yaml
- 执行以下命令,查询集群连接组件(ANP-Agent)是否安装成功。
kubectl get pods -n hss | grep proxy-agent
界面回显如图 集群Agent安装成功所示,表示集群连接组件(ANP-Agent)安装成功。
- 执行以下命令,查询集群和HSS是否成功建立连接。
for a in $(kubectl get pods -n hss| grep proxy-agent | cut -d ' ' -f1); do kubectl -n hss logs $a | grep 'Start serving';done
界面回显如图 集群连接HSS成功所示,表示集群和HSS建立连接成功。
- 在“容器资产接入与安装”对话框中,单击“下载Yaml文件”,下载生成的命令文件。
- 在“容器资产接入与安装”对话框中,单击“下一步”。
- 配置Agent相关参数。参数说明如表 Agent配置参数说明所示。
- 配置完成,单击“确定”,开始安装HSS Agent。
- 在集群列表中,查看集群状态为“运行中”,表示集群接入HSS成功。
后续操作
在为集群安装Agent成功后,请为其开启防护。