若需要在Kubernetes集群中使用一些敏感的配置,例如密码、证书等信息时,建议使用保密字典。本文介绍如何在控制台创建保密字典,通过命令行或控制台方式配置Pod数据卷及环境变量。

前提条件

  • 您在Pod里使用保密字典时,需要两者处于同一集群和命名空间中。
  • 您已连接到Kubernetes集群的Master节点,请参见通过kubectl连接Kubernetes集群

背景信息

您可以在Pod中使用保密字典,有多种使用场景,主要包括:
  • 使用保密字典配置Pod的数据卷
  • 使用保密字典设置Pod的环境变量

更多关于保密字典的信息,请参见保密字典

创建保密字典

本示例创建保密字典secret-test。

  1. 登录容器服务管理控制台
  2. 在控制台左侧导航栏中,单击集群
  3. 集群列表页面中,单击目标集群名称或者目标集群右侧操作列下的详情
  4. 在集群管理页左侧导航栏中,选择工作负载 > 无状态
  5. 无状态页签中,单击使用模板创建
  6. 选择所需的集群和命名空间,选择样例模板或自定义,然后单击创建
    您可以使用如下YAML示例模板创建保密字典。
    apiVersion: v1
    kind: Secret
    metadata:
      name: secret-test
    type: Opaque
    data:
      username: admin
      password: 12345  #需要用Base64编码。

您也可以通过Web界面创建保密字典,请参见管理保密字典

使用保密字典配置Pod数据卷

以下两种配置方法您可任选其一进行配置。

通过命令行进行配置

保密字典可以在Pod中作为文件使用。如示例所示,secret-test保密字典的username和password以文件方式保存在/srt目录下。

  1. 创建并拷贝以下内容到example0.yaml中。
    apiVersion: v1
    kind: Pod
    metadata:
      name: pod0
    spec:
      containers:
      - name: redis
        image: redis
        volumeMounts:
        - name: srt
          mountPath: "/srt "
          readOnly: true
      volumes:
      - name: srt
        secret:
          secretName: secret-test
  2. 执行以下命令,配置保密字典。
    kubectl apply -f  example0.yaml
    说明 此处的example0.yaml需要替换成实际YAML文件的名称。

通过容器服务控制台进行配置

  1. 登录容器服务管理控制台
  2. 在控制台左侧导航栏中,单击集群
  3. 集群列表页面中,单击目标集群名称或者目标集群右侧操作列下的详情
  4. 在集群管理页左侧导航栏中,选择工作负载 > 无状态
  5. 无状态页签中,单击使用镜像创建
    详细说明,请参见创建无状态工作负载Deployment
  6. 应用基本信息页签中,进行相应配置,然后单击下一步
  7. 容器配置页签,在数据卷区域,单击增加本地存储存储卷类型保密字典挂载源创建保密字典中创建好的保密字典,容器路径为在容器中访问的路径。配置好相应信息后,单击下一步

    本例中,配置示例如下所示。

    配置数据卷
  8. 高级配置页签中,进行相应配置,然后单击创建

使用保密字典设置Pod的环境变量

以下两种配置方法您可任选其一进行配置。

通过命令行进行配置

本例中, secret-test保密字典中user和password设置为Pod的环境变量。

  1. 创建并拷贝以下内容到example1.yaml中。
    apiVersion: v1
    kind: Pod
    metadata:
      name: pod1
    spec:
      containers:
      - name: redis
        image: redis
        env:
          - name: USERNAME
            valueFrom:
              secretKeyRef:
                name: secret-test
                key: username
          - name: PASSWORD
            valueFrom:
              secretKeyRef:
                name: secret-test
                key: password
  2. 执行如下命令,配置环境变量。
    kubectl apply -f  example1.yaml
    说明 此处的example1.yaml需要替换成实际YAML文件的名称。

通过容器服务控制台进行配置

  1. 登录容器服务管理控制台
  2. 在控制台左侧导航栏中,单击集群
  3. 集群列表页面中,单击目标集群名称或者目标集群右侧操作列下的详情
  4. 在集群管理页左侧导航栏中,选择工作负载 > 无状态
  5. 无状态页签中,单击使用镜像创建
    详细说明,请参见创建无状态工作负载Deployment
  6. 应用基本信息页签中,进行相应配置,然后单击下一步
  7. 容器配置页签,在环境变量区域,单击环境变量类型保密字典变量/变量引用创建保密字典中创建好的保密字典,在分别选择使用的key并输入变量名称。

    本例中,配置示例如下所示。

    变量名称
  8. 高级配置页签中,进行相应配置,然后单击创建