You need to enable JavaScript to run this app.
导航

使用免密组件拉取私有镜像创建工作负载

最近更新时间2024.04.15 17:40:31

首次发布时间2022.03.30 18:43:30

免密组件 cr-credential-controller 是可以从火山引擎镜像仓库(CR)的标准版和体验版仓库中免密拉取私有类型镜像的组件。

本文以创建无状态工作负载场景为例,为您介绍该组件的使用方法。其余有状态负载、任务、定时任务、守护进程等工作负载的操作方法,与无状态工作负载类似。

注意事项

  • 在 Kubernetes 的工作负载(例如 Deployment、Statefulset 等)模板中配置拉取凭证(imagePullSecret)会导致免密组件失效,如果需使用免密组件,请按照本文说明操作,避免手工配置拉取凭证(imagePullSecret)。
  • 如果部署的 Kubernetes 工作负载使用了自定义的 ServiceAccount,需要先调整免密组件配置文件中的Service-Account字段,使其作用于自定义的 ServiceAccount,再进行部署工作负载操作。

前提条件

  • 已创建集群。详细操作,请参见 创建集群
  • 如果使用 IAM 用户操作集群,请确保已授权 IAM 用户。详细操作,请参见 权限管理

使用说明

使用 cr-credential-controller 免密组件涉及的镜像及集群说明如下:

  • 支持拉取 CR 标准版实例和体验版实例中的私有镜像。
  • 支持集群中的多个命名空间免密拉取私有镜像。

操作步骤

步骤一:安装免密组件

  1. 登录 容器服务控制台
  2. 单击左侧导航栏中的 集群
  3. 集群 页面,单击目标集群。
  4. 在集群详情页面左侧导航栏,选择 组件管理
  5. 组件管理 页面,单击 镜像 页签,找到 cr-credential-controller 组件,选择... > 安装
    alt
  6. cr-credential-controller 参数配置 对话框,根据如下表说明设置参数,然后单击 确定,完成免密组件的安装。
    参数说明
    部署方式组件的部署方式。当前该参数已固定,不可配置。

    部署形态

    容器网络模型为 VPC-CNI 的集群显示该参数。部署组件的节点类型,有如下两种方式:

    • 云服务器部署:表示在集群中的云服务器节点(Node)上部署该组件。
    • 弹性容器部署:部署于弹性容器 VCI 实例上,将使用 2 个 0.25 vCPU、0.5 GiB 规格的 VCI 实例,且会产生额外的费用。详细的费用说明,请参见 弹性容器实例产品计费
    地域配置可以免密拉取私有镜像的目标镜像仓库实例所在地域。

    镜像仓库实例

    选择目标镜像仓库实例和仓库域名。

    说明

    • 单击 添加,可选择同一个地域中的多个镜像仓库实例。
    • 该镜像仓库实例中,后续新推送的私有镜像也能被免密拉取。

    免密配置

    设置容器服务 VKE 侧的免密配置。

    • 命名空间:当前集群下可以免密拉取私有镜像的命名空间。
      默认值为*,表示所有命名空间都可以免密拉取私有镜像;您也可以输入具体的命名空间名称,可以指定多个命名空间,多个名称之间以英文逗号( , )分隔。
    • ServiceAccount:能够使用免密组件的Kubernetes 中的服务账号。
      默认值为*,表示已配置命名空间下的所有 ServiceAccount,都可以免密拉取私有镜像;您也可以输入具体的 ServiceAccount,可以指定多个 ServiceAccount,多个名称之间以英文逗号( , )分隔。

    参数配置

    组件的 Webhook 参数配置,目前支持通过 WebhookConfigurationEnable 参数,开启或关闭组件的 Webhook。

    说明

    若对于从镜像仓库中拉取容器镜像具有较高的时效性要求时,可开启 WebhookConfigurationEnable,从而及时进行凭证等预设配置的注入。但开启可能会对于系统性能产生一定影响,如无较高时效性要求,建议保持关闭状态。

  7. (可选)安装完成后,您可以单击 配置,修改配置。
    alt

步骤二:(可选)查看配置项文件和保密字典

安装完 cr-credential-controller 免密组件后,可查看该组件对应的配置项文件和保密字典。

  1. 在集群管理页面左侧导航栏,选择 配置管理 > 配置项
  2. 配置项 页面,选择 kube-system 命名空间,找到cr-credential-config文件,即为免密组件生成的配置项文件。
  3. cr-credential-config文件右侧 操作 列下,单击... > 编辑 Yaml
    alt
    YAML 文件中的data字段内容,即为安装 cr-credential-controller 组件时配置的内容。
    alt
    YAML 文件参数说明如下所示。
    参数说明
    namespace可以免密拉取私有镜像的命名空间。对应本文上方 步骤一:安装免密组件 中配置的 命名空间
    registry可以免密拉取私有镜像的目标镜像仓库实例和所属地域。对应本文上方 步骤一:安装免密组件 中配置的 镜像仓库实例
    serviceAccount指定命名空间下,可以免密拉取私有镜像的 Kubernetes 服务账号。对应本文上方 步骤一:安装免密组件 中配置的 ServiceAccount
  4. 在集群详情页面左侧导航栏,选择 配置管理 > 保密字典
  5. 保密字典 页面,选择指定的命名空间,查看该命名空间下自动生成的关于镜像仓库 CR 的保密字典。

    说明

    镜像仓库 CR 相关保密字典的名称格式为cr-{镜像仓库实例名称}>-{镜像仓库实例所在地域},例如cr-helm-cr-cn-beijing,表示 华北2(北京) 地域下名为 helm-cr 的镜像仓库实例的仓库密钥类型保密字典。

    alt

步骤三:创建工作负载

  1. 在集群管理页面左侧导航栏,选择 工作负载 > 无状态负载
  2. 无状态负载 页面,单击 创建无状态负载
  3. 创建无状态负载 页面,配置无状态负载信息。详细的操作步骤和参数配置说明,请参见 创建无状态负载
    1. 基本信息:根据您的实际需求配置。
    2. 容器配置:部分参数按如下图和说明配置,其余参数请根据您的实际需求配置。
      配置 容器镜像 参数时,选择已配置免密组件的镜像仓库实例中的私有镜像。
      alt
      alt
    3. 高级配置:根据您的实际需求配置。
  4. 单击 确定,创建完成无状态负载。
    操作完成后可以在 工作负载 > 无状态负载 页面查看工作负载的状态。