免密组件 cr-credential-controller 是可以从火山引擎镜像仓库(CR)的标准版和体验版仓库中免密拉取私有类型镜像的组件。
本文以创建无状态工作负载场景为例,为您介绍该组件的使用方法。其余有状态负载、任务、定时任务、守护进程等工作负载的操作方法,与无状态工作负载类似。
注意事项
- 在 Kubernetes 的工作负载(例如 Deployment、Statefulset 等)模板中配置拉取凭证(imagePullSecret)会导致免密组件失效,如果需使用免密组件,请按照本文说明操作,避免手工配置拉取凭证(imagePullSecret)。
- 如果部署的 Kubernetes 工作负载使用了自定义的 ServiceAccount,需要先调整免密组件配置文件中的
Service-Account
字段,使其作用于自定义的 ServiceAccount,再进行部署工作负载操作。
前提条件
- 已创建集群。详细操作,请参见 创建集群。
- 如果使用 IAM 用户操作集群,请确保已授权 IAM 用户。详细操作,请参见 权限管理。
使用说明
使用 cr-credential-controller 免密组件涉及的镜像及集群说明如下:
- 支持拉取 CR 标准版实例和体验版实例中的私有镜像。
- 支持集群中的多个命名空间免密拉取私有镜像。
操作步骤
步骤一:安装免密组件
- 登录 容器服务控制台。
- 单击左侧导航栏中的 集群。
- 在 集群 页面,单击目标集群。
- 在集群详情页面左侧导航栏,选择 组件管理。
- 在 组件管理 页面,单击 镜像 页签,找到 cr-credential-controller 组件,选择
...
> 安装。
- 在 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,从而及时进行凭证等预设配置的注入。但开启可能会对于系统性能产生一定影响,如无较高时效性要求,建议保持关闭状态。 |
- (可选)安装完成后,您可以单击 配置,修改配置。
步骤二:(可选)查看配置项文件和保密字典
安装完 cr-credential-controller 免密组件后,可查看该组件对应的配置项文件和保密字典。
- 在集群管理页面左侧导航栏,选择 配置管理 > 配置项。
- 在 配置项 页面,选择 kube-system 命名空间,找到
cr-credential-config
文件,即为免密组件生成的配置项文件。 - 在
cr-credential-config
文件右侧 操作 列下,单击...
> 编辑 Yaml。
YAML 文件中的data
字段内容,即为安装 cr-credential-controller 组件时配置的内容。
YAML 文件参数说明如下所示。
参数 | 说明 |
---|
namespace | 可以免密拉取私有镜像的命名空间。对应本文上方 步骤一:安装免密组件 中配置的 命名空间。 |
registry | 可以免密拉取私有镜像的目标镜像仓库实例和所属地域。对应本文上方 步骤一:安装免密组件 中配置的 镜像仓库实例。 |
serviceAccount | 指定命名空间下,可以免密拉取私有镜像的 Kubernetes 服务账号。对应本文上方 步骤一:安装免密组件 中配置的 ServiceAccount。 |
- 在集群详情页面左侧导航栏,选择 配置管理 > 保密字典。
- 在 保密字典 页面,选择指定的命名空间,查看该命名空间下自动生成的关于镜像仓库 CR 的保密字典。
说明
镜像仓库 CR 相关保密字典的名称格式为cr-{镜像仓库实例名称}>-{镜像仓库实例所在地域}
,例如cr-helm-cr-cn-beijing
,表示 华北2(北京) 地域下名为 helm-cr 的镜像仓库实例的仓库密钥类型保密字典。
步骤三:创建工作负载
- 在集群管理页面左侧导航栏,选择 工作负载 > 无状态负载。
- 在 无状态负载 页面,单击 创建无状态负载。
- 在 创建无状态负载 页面,配置无状态负载信息。详细的操作步骤和参数配置说明,请参见 创建无状态负载。
- 基本信息:根据您的实际需求配置。
- 容器配置:部分参数按如下图和说明配置,其余参数请根据您的实际需求配置。
配置 容器镜像 参数时,选择已配置免密组件的镜像仓库实例中的私有镜像。
- 高级配置:根据您的实际需求配置。
- 单击 确定,创建完成无状态负载。
操作完成后可以在 工作负载 > 无状态负载 页面查看工作负载的状态。