相关文章推荐
爱笑的西红柿  ·  COleDateTimeSpan 類別 | ...·  6 月前    · 
千杯不醉的甘蔗  ·  fetch,html5_fetch ...·  1 年前    · 
阳光的蟠桃  ·  "name 'COCO' is not ...·  1 年前    · 
不敢表白的铁链  ·  useFocus | VueUse·  1 年前    · 

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

前提条件

背景信息

您可以在Pod中使用保密字典,有多种使用场景,主要包括:

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

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

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

创建保密字典

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

  1. 登录 容器服务管理控制台 ,在左侧导航栏选择 集群

  2. 集群列表 页面,单击目标集群名称,然后在左侧导航栏,选择 工作负载 > 无状态

  3. 无状态 页面中,单击 使用YAML创建资源

  4. 选择示例模板或自定义,拷贝YAML内容,然后单击 创建

    您可以使用如下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. 无状态 页面,单击 使用镜像创建

    详细说明,请参见 创建无状态工作负载Deployment

  4. 应用基本信息 页签中,进行相应配置,然后单击 下一步

  5. 容器配置 页签,在 数据卷 区域,单击 增加本地存储 存储卷类型 保密字典 挂载源 创建保密字典 中创建好的密钥, 容器路径 为在容器中访问的路径。配置好相应信息后,单击 下一步

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

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

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

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

通过命令行进行配置

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

  1. 创建并拷贝以下内容到 example1.yaml 中。

    apiVersion: v1
    kind: Pod
    metadata:
      name: pod1
    spec:
      containers:
      - name: redis
        image: redis
          - 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. 无状态 页面中,单击 使用镜像创建

    详细说明,请参见 创建无状态工作负载Deployment

  4. 应用基本信息 页签中,进行相应配置,然后单击 下一步

  5. 容器配置 页签,在 环境变量 区域,单击 环境变量 类型 密钥 变量/变量引用 创建保密字典 中创建好的密钥,在分别选择使用的key并输入变量名称。

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

    变量名称