更新时间:2024-09-24 GMT+08:00

为华为云自建集群安装Agent

操作场景

本指导适用于在可访问SWR镜像仓的华为云自建集群上安装Agent。按照本指导配置完成后,HSS将自动在集群节点上安装Agent,并能够随集群扩容自动为新节点安装Agent,在集群缩容时同步卸载Agent。

步骤一:准备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

  1. 登录管理控制台
  2. 在页面左上角选择“区域”,单击,选择“安全与合规 > 企业主机安全”,进入主机安全平台界面。
  3. 在左侧导航栏,选择安装与配置 > 容器安装与配置,进入“容器安装与配置”页面。
  4. “集群”页签,单击“安装容器安全Agent”,弹出“容器资产接入与安装”对话框。
  5. 选择“非CCE集群(公网接入)”,并单击“开始配置”
  6. 配置集群接入信息,并单击“生成命令”。接入信息相关参数说明如表 配置接入信息参数说明所示。

    图1 配置集群接入信息
    表1 配置接入信息参数说明

    参数名称

    参数说明

    集群名称

    填写接入的集群名称。

    服务商

    选择集群所属的服务商。目前支持接入以下服务商的集群:

    • 阿里云
    • 腾讯云
    • AWS
    • 微软云
    • 自建
    • IDC自建

    上传kubeconfig

    添加并上传根据步骤一:准备kubeconfig文件配置好的kubeconfig文件。

    选择Context

    上传kubeconfig文件后,HSS会自动解析出Context。

    选择有效期

    上传kubeconfig文件后,HSS会自动解析出有效期。您可以选择最终有效期以前的时间,在选择的有效期到期后,您需要重新接入该资产。

  7. 执行以下操作为集群安装集群连接组件(ANP-Agent),建立HSS和集群的连接。

    1. “容器资产接入与安装”对话框中,单击“下载Yaml文件”,下载生成的命令文件。
      图2 下载Yaml文件
    2. 将命令文件拷贝到任一节点目录下。
    3. 执行以下命令安装集群连接组件(ANP-Agent)。
      kubectl apply -f proxy-agent.yaml
    4. 执行以下命令,查询集群连接组件(ANP-Agent)是否安装成功。
      kubectl get pods -n hss | grep proxy-agent

      界面回显如图 集群Agent安装成功所示,表示集群连接组件(ANP-Agent)安装成功。

      图3 ANP-Agent安装成功
    5. 执行以下命令,查询集群和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建立连接成功。

      图4 集群连接HSS成功

  8. 单击“下一步”
  9. 配置Agent相关参数。参数说明如表 Agent配置参数说明所示。

    表2 Agent配置参数说明

    参数名称

    参数说明

    配置规则

    选择Agent配置规则。

    • 默认规则:容器运行时的sock地址为通用地址,Agent将默认安装在没有配置污点的节点上。
    • 自定义规则:如果您的容器运行时sock地址非通用地址需要修改,或仅需要在指定的节点上安装Agent,可选择该规则。
    说明:
    • 如果容器运行时的sock地址不正确,可能导致集群接入HSS后,部分HSS功能不能正常使用。
    • 在进行容器运行时配置时,建议全选所有运行时类型。

    高级配置(可选)

    配置规则选择“自定义规则”时,支持配置。

    单击展开所有高级配置项。

    • 开启Agent自动升级

      是否开启Agent自动升级,勾选即开启,开启后,每日00:00~06:00,企业主机安全将自动升级低版本的Agent为最新版,以便为您提供更好的服务。

    • 节点选择器配置

      单击“引用节点标签”,可选择需要安装Agent的节点标签。不选择,默认在所有没有配置污点的节点上安装Agent。

    • 容忍度配置

      如果在进行“节点选择器配置”时,选择了污点节点标签,需要在该污点节点上安装Agent,可单击“引用节点污点”,选择容忍节点污点。

  10. 配置完成,单击“确认”,开始安装HSS Agent。
  11. 在集群列表中,查看集群状态为“运行中”,表示集群接入HSS成功。