更新时间:2024-11-15 GMT+08:00

为第三方公网集群安装Agent

操作场景

本指导适用于在可以访问公网的第三方集群上安装Agent。按照本指导配置完成后,HSS将自动在集群节点上安装Agent,并能够随集群扩容自动为新节点安装Agent,在集群缩容时同步卸载Agent。

约束与限制

  • 集群编排平台限制:1.19及以上Kubernetes。
  • 节点操作系统限制:Linux系统。
  • 节点规格要求:CPU必须2核及以上,内存必须4GiB及以上,系统盘必须40GiB及以上,数据盘必须100GiB及以上。
  • Agent不兼容Galera 3.34和MySQL 5.6.51或更早版本的集群。

步骤一:创建VPC

  1. 登录控制台,进入创建虚拟私有云页面
  2. 在“创建虚拟私有云”页面,根据页面提示配置VPC和子网的参数。

    建议参考表1所示设置部分参数,其余参数保持默认。关于创建虚拟私有云更详细的参数介绍请参见创建虚拟私有云和子网
    表1 创建虚拟私有云参数说明

    参数名称

    参数说明

    取值样例

    区域

    不同区域的云服务产品之间内网互不相通,请就近选择靠近您业务的区域,可减少网络时延,提高访问速度。

    中国-香港

    名称

    输入VPC的名称。要求如下:

    • 长度范围为1~64位。
    • 名称由中文、英文字母、数字、下划线(_)、中划线(-)、点(.)组成。

    HSS-outside-anp-VPC

    企业项目

    创建VPC时,可以将VPC加入已启用的企业项目。

    企业项目管理提供了一种按企业项目管理云资源的方式,帮助您实现以企业项目为基本单元的资源及人员的统一管理,默认项目为default。

    关于创建和管理企业项目的详情,请参见《企业管理用户指南》

    default

    子网名称

    输入子网的名称。要求如下:

    • 长度范围为1~64位。
    • 名称由中文、英文字母、数字、下划线(_)、中划线(-)、点(.)组成。

    HSS-outside-subnet

  3. 单击“立即创建”,创建完成后,可查看已创建虚拟私有云。

步骤二:创建安全组

  1. 在左侧导航栏,选择访问控制 > 安全组,进入安全组页面。
  2. 在右上角单击“创建安全组”,进入创建安全组页面。
  3. 根据页面提示,设置安全组参数。

    建议参考表2所示设置部分参数,其余参数请结合实际情况按需配置。关于创建安全组更详细的参数介绍请参见创建安全组
    表2 创建安全组参数说明

    参数名称

    参数说明

    取值样例

    区域

    不同区域的云服务产品之间内网互不相通,请就近选择靠近您业务的区域,可减少网络时延,提高访问速度。

    中国-香港

    名称

    输入安全组的名称。要求如下:
    • 长度范围为1~64位。
    • 名称由中文、英文字母、数字、下划线(_)、中划线(-)、点(.)组成。

    HSS-outside-anp-secGroups

    企业项目

    创建安全组时,可以将安全组加入已启用的企业项目。

    企业项目管理提供了一种按企业项目管理云资源的方式,帮助您实现以企业项目为基本单元的资源及人员的统一管理,默认项目为default。

    关于创建和管理企业项目的详情,请参见《企业管理用户指南》

    default

    预设规则

    安全组预设规则中预先配置了入方向规则和出方向规则,您可以根据业务选择所需的预设规则,快速完成安全组的创建。

    开放全部端口

  4. 单击“立即创建”,创建完成后,可查看已创建安全组。

步骤三:创建ECS

  1. 单击页面左上方的,选择“计算 > 弹性云服务器 ECS”,进入弹性云服务器页面。
  2. 在右上角单击“购买弹性云服务器”,进入购买弹性云服务器页面。
  3. 根据页面提示,设置弹性云服务器参数。

    建议参考表3所示设置部分参数,其余参数请结合实际情况按需配置。

    表3 购买弹性云服务器参数说明

    参数名称

    参数说明

    取值样例

    计费模式

    弹性云服务器的付费方式。

    • 包年/包月:预付费模式,先付费再使用。根据订单的购买周期计费。
    • 按需计费:后付费模式,先使用再付费。根据实际使用时长秒级计费,按小时结算。
    • 竞价计费:后付费模式,先使用再付费,相对于按需计费有一定的折扣。包含竞价模式和竞享模式,根据实际使用时长秒级计费,按小时结算。

    按需计费

    区域

    不同区域的云服务产品之间内网互不相通,请就近选择靠近您业务的区域,可减少网络时延,提高访问速度。

    中国-香港

    CPU架构

    选择CPU架构,支持选择“x86计算”

    x86计算

    实例

    • 搜索规格:输入vCPUs、内存或规格名称直接搜索规格。

      当实例选择“规格类型选型”方式时,支持搜索规格。

    • 通过列表选择规格:通过实例类型和规格代系名称在列表中选择已上线的规格。

    通用计算型,2vCPUs,4GiB

    镜像

    镜像是一个包含了操作系统及必要配置的弹性云服务器模板,使用镜像可以创建弹性云服务器。

    公共镜像,EulerOS 2 5 64bit(40GIB)

    系统盘

    系统盘用于存储云服务器的操作系统,创建云服务器时自带系统盘,且系统盘自动初始化。

    超高IO

    网络

    虚拟私有云(VPC)为弹性云服务器构建隔离的用户自主配置和管理的虚拟网络环境,可以在VPC中定义安全组、VPN、IP地址段、带宽等网络特性。不同虚拟私有云里面的弹性云服务器网络默认不通。

    HSS-outside-anp-VPC

    (在执行步骤一:创建VPC时,创建的VPC。)

    安全组

    在下拉列表中选择可用的安全组。支持为ECS选择多个安全组(建议不超过5个),此时,ECS的访问规则遵循几个安全组规则的并集。

    HSS-outside-anp-secGroups

    (在执行步骤二:创建安全组时,创建安全组。)

    弹性公网IP

    弹性公网IP是指将公网IP地址和路由网络中关联的弹性云服务器绑定,以实现虚拟私有云内的弹性云服务器通过固定的公网IP地址对外提供访问服务。

    现在购买,静态BGP

    云服务器名称

    该参数将会被设置为云服务器操作系统中初始的主机名(hostname)。

    云服务器名称需符合命名规则:只能由中文字符、英文字母、数字及“_”、“-”、“.”组成。

    HSS-outside-anp-ECS

    企业项目

    购买弹性云服务器时,可以将弹性云服务器加入已启用的企业项目。

    企业项目管理提供了一种按企业项目管理云资源的方式,帮助您实现以企业项目为基本单元的资源及人员的统一管理,默认项目为default。

    关于创建和管理企业项目的详情,请参见《企业管理用户指南》

    default

    登录凭证

    登录凭证用于设置登录ECS的方式。

    密码

  4. 单击“立即购买”,在提示框中单击“同意并立即购买”,支付完成后,云服务器将自动创建,并默认开机。

步骤四:搭建nginx

  1. 登录步骤三:创建ECS创建好的服务器。
  2. 执行以下命令,进入temp目录。

    cd /temp

  3. 执行以下命令,创建install_nginx.sh文件。

    vi install_nginx.sh

  4. 按“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

  1. 粘贴完成后,按Esc键,输入以下命令,按回车键退出,完成配置。

    :wq!

  2. 执行以下命令,安装nginx。

    bash /tmp/install_nginx.sh

  3. 执行以下命令,修改nginx配置文件。

    cat <<END >> /usr/local/nginx/conf/nginx.conf
    stream {
      upstream backend_hss_anp {
        server {{anp代理地址}}:8091 weight=5 max_fails=3 fail_timeout=30s;
      }
      server {
        listen 8091 so_keepalive=on;
        proxy_connect_timeout 10s;
        proxy_timeout 300s;
        proxy_pass backend_hss_anp ;
      }
    }
    END

    “{{anp代理地址}}”请参考表4,修改为实际地址后,再执行命令。

    表4 anp代理地址

    区域

    anp代理地址

    贵阳一、曼谷、上海二、广州、北京四、北京二、上海一

    hss-proxy.区域代码.myhuaweicloud.com

    其他区域

    hss-anp.区域代码.myhuaweicloud.com

    区域代码请参见地区和终端节点

  4. 执行以下命令,使nginx配置生效。

    nginx -s reload

  5. 执行以下命令,查看8091端口是否监听正常。

    netstat -anp | grep 8091

    界面回显如图1所示,表示监听正常。

    图1 8091端口监听正常

步骤五:购买并配置ELB

  1. 登录控制台,进入购买弹性负载均衡页面
  2. 根据页面提示,设置弹性负载均衡参数。

    建议根据表5所示设置部分参数,其余参数请结合实际情况按需配置。关于购买弹性负载均衡更详细的参数介绍请参见创建独享型负载均衡器
    表5 购买弹性负载均衡参数说明

    参数名称

    参数说明

    取值样例

    实例类型

    负载均衡的实例类型,选定后不支持修改。

    独享型实例适用于大流量高并发的业务场景,如大型网站、云原生应用、车联网、多可用区容灾应用。

    独享型

    计费模式

    独享型负载均衡器的付费方式。

    • 包年/包月:预付费模式,即先付费再使用,按照订单的购买周期进行结算。
    • 按需计费:后付费模式,即先使用再付费,按照弹性负载均衡实际使用时长计费,秒级计费,按小时结算。

    按需计费

    区域

    不同区域的云服务产品之间内网互不相通,请就近选择靠近您业务的区域,可减少网络时延,提高访问速度。

    中国-香港

    名称

    待创建负载均衡器的名称。

    • 长度范围为1~64位。
    • 名称由中文、英文字母、数组、下划线(_)、中划线(-)和点组成。

    HSS-outside-anp-ELB

    企业项目

    创建负载均衡器时,可以将其加入已启用的企业项目。

    企业项目管理提供了一种按企业项目管理云资源的方式,帮助您实现以企业项目为基本单元的资源及人员的统一管理,默认项目为default。

    关于创建和管理企业项目的详情,请参见《企业管理用户指南》

    default

    实例规格

    按需计费模式下,独享型负载均衡支持按弹性规格和固定规格两种规格进行购买。

    规格弹性:
    • 弹性规格:适用于业务用量较大的场景,按实例使用量收取LCU费用。
    • 固定规格:适用于业务用量较为稳定的场景,按固定规格折算收取LCU费用。
    • 固定规格
    • 网络型
    • 小型

    网络配置

    • 网络类型:可以单独选择一个网络类型,也可以同时选择多个。
      • IPv4私网:负载均衡器通过IPv4私网IP对外提供服务,将来自同一个VPC的客户端请求按照指定的负载均衡策略分发到后端服务器进行处理。如果您有IPv4公网业务需求,请为负载均衡实例绑定弹性公网IP。
      • IPv6网络:系统会为实例分配一个IPv6地址,转发来自IPv6客户端的请求。
    • 所属VPC:负载均衡器所属虚拟私有云,独享型ELB创建完成后不支持切换,请做好相关网络规划。

      您可以选择使用已有的虚拟私有云网络,或者单击“查看虚拟私有云”创建新的虚拟私有云。

    • 前端子网:独享型负载均衡所在的子网,从该子网中分配ELB实例对外服务的IP地址。

      ELB创建完成后,支持解绑IP地址后,绑定新的前端子网下的IP地址。

    • 后端子网:负载均衡实例将使用后端子网中的IP地址与后端服务器建立连接。

    弹性IP

    支持您为负载均衡器配置对应的弹性公网IP以处理IPv4公网业务流量。

    • 现在购买
    • 全动态BGP
    • 按带宽计费

  3. 购买参数设置完成后,单击“立即购买”,完成ELB创建。
  4. 在弹性负载均衡页面,查看创建成功的ELB,记录IPv4公网地址。
  5. 单击目标ELB所在行的“监听器(前端协议/端口)”列的“去添加”,进入添加监听器页面。
  6. 根据页面提示,设置监听器参数。

    建议按表6所示设置部分参数,其余参数请结合实际情况按需配置。关于添加监听器更详细的参数介绍请参见添加TCP监听器
    表6 添加监听器参数取值

    参数名称

    参数说明

    取值样例

    配置监听器

    名称

    监听器名称。

    HSS-outside-anp-Listener

    前端协议

    客户端与负载均衡监听器建立流量分发连接的协议。

    TCP

    前端端口

    客户端与负载均衡监听器建立流量分发连接的端口。

    8091

    访问控制

    支持通过白名单和黑名单进行访问控制。

    允许所有IP访问

    配置后端分配策略

    后端服务器组

    把具有相同特性的后端服务器放在一个组。

    • 新创建
    • 使用已有

    新创建

    名称

    待创建的后端服务器组的名称。

    HSS-outside-anp-server-group

    后端协议

    后端云服务器自身提供的网络服务的协议。

    TCP

    分配策略类型

    负载均衡采用的算法。

    • 加权轮询算法:根据后端服务器的权重,按顺序依次将请求分发给不同的服务器,权重大的后端服务器被分配的概率高。
    • 加权最少连接:加权最少连接是在最少连接数的基础上,根据服务器的不同处理能力,给每个服务器分配不同的权重,使其能够接受相应权值数的服务请求。
    • 源IP算法:对不同源IP的访问进行负载分发,同时使得同一个客户端IP的请求始终被派发至某特定的服务器。

    加权轮询算法

    添加后端服务器

    云服务器

    在使用负载均衡服务时,确保至少有一台后端服务器在正常运行,可以接收负载均衡转发的客户端请求。

    单击“添加云服务器”,可添加后端服务器。

    HSS-outside-anp-ECS

    “业务端口”设置为“8091”

    (在执行步骤三:创建ECS时,创建好的服务器。)

  7. 在确认配置页面,可查看并确认设置好的参数信息。
  8. 单击“提交”,完成配置。

步骤六:修改安全组

  1. 单击页面左上方的,选择“网络 > 虚拟私有云 VPC”,进入虚拟私有云页面。
  2. 在左侧导航栏,选择“安全组”,进入安全组页面。
  3. 找到步骤二:创建安全组创建的安全组,单击“配置规则”,进入配置规则页面。
  4. 删除IPv6全放通规则,如图2所示。

    图2 删除IPv6全放通规则

  5. 修改IPv4全放通规则,如图3所示。

    1. 将协议端口由“基本协议/全部协议”修改为“基本协议/自定义TCP”,同时端口写入“8091”
    2. 单击“确认”,完成修改。
    图3 修改IPv4全放通规则

步骤七:准备kubeconfig文件

kubeconfig文件用于将集群的操作权限授权给HSS,方式一配置的kubeconfig文件包含集群管理员权限,方式二生成的kubeconfig文件仅包含HSS所需权限,如果您担心过度授权的问题,请通过方式二准备kubeconfig文件。

  • 方式一:配置默认的kubeconfig文件
    默认的kubeconfig文件在$HOME/.kube/config路径下,您需要按以下操作创建HSS的专属命名空间。
    1. 登录任一集群节点。
    2. 创建hss.yaml文件,并将以下内容复制到hss.yaml文件中。
      {"metadata":{"name":"hss"},"apiVersion":"v1","kind":"Namespace"}
    3. 执行以下命令,创建HSS的专属命名空间。
      kubectl apply -f hss.yaml
  • 方式二:生成HSS专用的kubeconfig文件
    1. 创建HSS的专属命名空间和服务账号。
      1. 登录任一集群节点。
      2. 创建hss-account.yaml文件,并将以下内容复制到hss-account.yaml文件中。
        {"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"}
      3. 执行以下命令,创建HSS的专属命名空间和服务账号。
        kubectl apply -f hss-account.yaml
    2. 生成kubeconfig文件。
      1. 创建gen_kubeconfig.sh文件,并将以下内容复制到gen_kubeconfig.sh文件中。
        #!/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
      2. 执行以下命令,生成名称为“hss_kubeconfig.yaml”的kubeconfig文件
        bash gen_kubeconfig.sh

步骤八:为第三方公网集群安装Agent

集群所使用的镜像仓区分公网镜像仓和私网镜像仓:

  • 公网镜像仓:只要能连接外网,都可以访问的镜像仓库,通常由第三方提供,企业付费使用。
  • 私网镜像仓:企业自行部署和维护的镜像仓库,只有授权用户才能访问。

根据您的镜像仓类型,选择以下方式为集群安装Agent。