云安全中心资产中心为您提供容器资产安全风险管理功能。您可以将K8s自建集群接入云安全中心,在云安全中心控制台统一管理您的容器资产。本文介绍接入K8s自建集群的具体操作。

版本限制说明

仅旗舰版支持该功能,其他版本用户需要升级到旗舰版才可使用该功能。购买和升级云安全中心服务的具体操作,请参见购买云安全中心升级与降配。各版本的功能详情,请参见功能特性

限制条件

  • 您最多可接入10个K8s自建集群。
  • 自建K8s集群网络类型为VPC时,仅支持接入华东1(杭州)、华北2(北京)、华东2(上海)、华南1(深圳)和中国香港地域。
    说明 自建K8s集群网络类型为公网时,无地域限制。

接入K8s自建集群

  1. 登录云安全中心控制台
  2. 在左侧导航栏,单击资产中心
  3. 资产中心页面,单击容器页签。
  4. 容器页签右上角,单击自建集群接入
  5. 自建集群接入面板,单击自建集群接入
  6. 接入自建K8s集群面板,配置相关参数。
    参数 说明
    集群名称 输入自建K8s集群的名称,该名称可包含大小写字母、数字和下划线。
    自建K8s集群版本 选择自建K8s集群的版本。支持选择以下版本:
    • V1.20
    • V1.19
    • V1.18
    • V1.17
    • V1.16
    集群所在地域 选择自建K8s集群所在的地域。
    网络类型 选择自建K8s集群的网络类型。支持选择以下类型:
    • 公网
    • VPC
    集群所在VPC 选择自建K8s集群所在VPC。
    ApiServerIp 输入自建K8s集群API Server的地址。
    K8s配置信息 上传K8s配置文件。您需要在服务器上生成K8s配置文件后,才能上传该配置文件。生成K8s配置文件的具体操作,请参见生成K8s配置文件
  7. 单击确定
    完成K8s自建集群的接入后,集群的信息您可以在自建集群管理面板查看已接入的集群。

生成K8s配置文件

在生成K8s配置文件前,您的服务器需要满足以下前提条件:
  1. 使用root用户登录K8s集群所在服务器。
  2. 创建用户。
    1. 执行以下命令创建ClusterRole。
      apiVersion: rbac.authorization.k8s.io/v1
      kind: ClusterRole
      metadata:
          name: cluster-reader
      rules:
      - apiGroups:
          - ""
          resources:
          - *
          verbs:
          - get
          - list
          - watch
    2. 执行以下命令创建ClusterRoleBinding。
      注意 执行本步骤及以下所有步骤中的命令时,您需要将<UserName>替换成您的用户名称。
      apiVersion: rbac.authorization.k8s.io/v1beta1
      kind: ClusterRoleBinding
      metadata:
          name: <UserName>-read-all
      roleRef:
          apiGroup: rbac.authorization.k8s.io
          kind: ClusterRole
          name: cluster-reader
      subjects:
      - apiGroup: rbac.authorization.k8s.io
          kind: User
          name: <UserName>
    更多信息,请参见K8s集群创建用户账号
  3. 创建证书。
    1. 执行以下命令创建User私钥。
      openssl genrsa -out <UserName>.key 2048
    2. 执行以下命令创建证书签署请求。
      openssl req -new -key <UserName>.key -out <UserName>.csr -subj "/O=K8s/CN=<UserName>"
    3. 执行以下命令签署证书。
      openssl x509 -req -in <UserName>.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out <UserName>.crt -days 365
  4. 创建集群配置文件。
    1. 执行以下命令创建集群配置。
      kubectl config set-cluster k8s --server=
      https://192.168.XX.XX:6443 --certificate-authority=ca.crt --embed-cears=true --kubeconfig=/root/<UserName>.conf
    2. 执行以下命令创建用户配置。
      kubectl config set-credentials <UserName> --client-certificate=<UserName>.crt --client-key=<UserName>.key --embed-certs=true --kubeconfig=/root/<UserName>.conf
    3. 执行以下命令创建context配置。
      kubectl config set-context <UserName>@<ClusterName> --cluster=k8s --user=<UserName> --kubeconfig=/root/<UserName>.conf
      注意 执行本步骤及以下所有步骤中的命令时,您需要将<ClusterName>替换成您的集群名称。
    4. 执行以下命令切换context。
      kubectl config use-context <UserName>@<ClusterName> --kubeconfig=/root/<UserName>.conf
    5. 执行以下命令查看config文件。
      kubectl config view --kubeconfig=/root/<UserName>.conf
  5. 执行以下命令验证kubeconfig文件是否可用。
    mkdir -p /home/<UserName>/.kube
    cp <UserName>.conf /home/<UserName>/.kube/config
    kubectl get pod -n kube-system

    上述命令执行完成后,如果命令窗口可以正常显示Pod的信息,说明云安全中心可以访问该集群,即生成的kubeconfig文件是可用的。否则说明kubeconfig文件不可用。