保密字典

Kubernetes 保密字典 (Secret) 可用于存储和管理密码、OAuth 令牌和 SSH 保密字典等敏感信息。容器组可以通过三种方式使用保密字典:

  • 作为挂载到容器组中容器化应用上的卷中的文件。
  • 作为容器组中容器使用的环境变量。
  • 作为 kubelet 为容器组拉取镜像时的镜像仓库凭证。

本教程演示如何在 KubeSphere 中创建保密字典。

准备工作

您需要创建一个企业空间、一个项目和一个用户(例如 project-regular)。该用户必须已邀请至该项目,并具有 operator 角色。有关更多信息,请参阅创建企业空间、项目、用户和角色

创建保密字典

步骤 1:进入保密字典页面

project-regular 用户登录控制台并进入项目,在左侧导航栏中选择配置下的保密字典,然后点击创建

步骤 2:配置基本信息

设置保密字典的名称(例如 demo-secret),然后点击下一步

提示

您可以在对话框右上角启用编辑 YAML 来查看保密字典的 YAML 清单文件,并通过直接编辑清单文件来创建保密字典。您也可以继续执行后续步骤在控制台上创建保密字典。

步骤 3:设置保密字典

  1. 数据设置选项卡,从类型下拉列表中选择保密字典类型。您可以在 KubeSphere 中创建以下保密字典,类型对应 YAML 文件中的 type 字段。

    备注

    对于所有的保密字典类型,配置在清单文件中 data 字段的所有键值对的值都必须是 base64 编码的字符串。KubeSphere 会自动将您在控制台上配置的值转换成 base64 编码并保存到 YAML 文件中。例如,保密字典类型为默认时,如果您在添加数据页面将分别设置为 passwordhello123,YAML 文件中显示的实际值为 aGVsbG8xMjM=(即 hello123 的 base64 编码,由 KubeSphere 自动转换)。

    • 默认:对应 Kubernetes 的 Opaque 保密字典类型,同时也是 Kubernetes 的默认保密字典类型。您可以用此类型保密字典创建任意自定义数据。点击添加数据为其添加键值对。

    • TLS 信息:对应 Kubernetes 的 kubernetes.io/tls 保密字典类型,用于存储证书及其相关保密字典。这类数据通常用于 TLS 场景,例如提供给应用路由 (Ingress) 资源用于终结 TLS 链接。使用此类型的保密字典时,您必须为其指定凭证私钥,分别对应 YAML 文件中的 tls.crttls.key 字段。

    • 镜像服务信息:对应 Kubernetes 的 kubernetes.io/dockerconfigjson 保密字典类型,用于存储访问 Docker 镜像仓库所需的凭证。有关更多信息,请参阅镜像仓库

    • 用户名和密码:对应 Kubernetes 的 kubernetes.io/basic-auth 保密字典类型,用于存储基本身份认证所需的凭证。使用此类型的保密字典时,您必须为其指定用户名密码,分别对应 YAML 文件中的 usernamepassword 字段。

  2. 本教程以默认类型为例。点击添加数据,将设置为 MYSQL_ROOT_PASSWORD 并将设置为 123456,为 MySQL 设置保密字典。

  3. 点击对话框右下角的 以确认配置。您可以继续为保密字典添加键值对或点击创建完成操作。有关保密字典使用的更多信息,请参阅创建并发布 WordPress

查看保密字典详情

  1. 保密字典创建后会显示在如图所示的列表中。您可以点击右边的 保密字典 - 图1,并从下拉菜单中选择操作来修改保密字典。

    • 编辑信息:查看和编辑基本信息。
    • 编辑 YAML:查看、上传、下载或更新 YAML 文件。
    • 编辑设置:修改保密字典键值对。
    • 删除:删除保密字典。
  2. 点击保密字典名称打开保密字典详情页面。在数据选项卡,您可以查看保密字典的所有键值对。

    备注

    如上文所述,KubeSphere 自动将键值对的值转换成对应的 base64 编码。您可以点击右边的 保密字典 - 图2 查看解码后的值。

  3. 点击更多操作对保密字典进行其他操作。

    • 编辑 YAML:查看、上传、下载或更新 YAML 文件。
    • 编辑保密字典:修改保密字典键值对。
    • 删除:删除保密字典并返回保密字典列表页面。

使用保密字典

通常情况下,在创建工作负载、服务任务定时任务时,您需要使用保密字典。例如,您可以为代码仓库选择保密字典。有关更多信息,请参阅镜像仓库

此外,您还可以用保密字典为容器添加环境变量。您可以在容器镜像页面勾选环境变量,点击引用配置文件或保密字典,然后从下拉列表中选择一个保密字典。

创建常用保密字典

本节介绍如何为 Docker Hub 帐户和 GitHub 帐户创建保密字典。

创建 Docker Hub 保密字典

  1. project-regular 用户登录 KubeSphere 并进入您的项目。在左侧导航栏中选择配置下的保密字典,然后在页面右侧点击创建

  2. 设置保密字典名称(例如 dockerhub-id)并点击下一步。在数据设置页面,设置以下参数,然后点击验证以检查设置的信息是否有效。

    类型:选择镜像服务信息

    仓库地址:输入您的 Docker Hub 仓库地址,例如 docker.io

    用户名:输入您的 Docker ID。

    密码:输入您的 Docker Hub 密码。

  3. 点击创建完成操作。

创建 GitHub 保密字典

  1. project-regular 用户登录 KubeSphere 并进入您的项目。在左侧导航栏中选择配置下的保密字典,然后在页面右侧点击创建

  2. 设置保密字典名称(例如 github-id)并点击下一步。在数据设置页面,设置以下参数。

    类型:选择用户名和密码

    用户名:输入您的 GitHub 帐户。

    密码:输入您的 GitHub 密码。

  3. 点击创建完成操作。