您可以在容器组中使用密钥。

前提条件

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

背景信息

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

更多关于密钥的信息,可以参见 密钥

创建密钥

本示例创建密钥secret-test。

  1. 登录容器服务管理控制台
  2. 单击控制台左侧导航栏中的应用 > 无状态
  3. 单击页面右上角的使用模板创建
  4. 选择所需的集群和命名空间,择样例模板或自定义,然后单击创建
    您可以使用如下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. 单击右上角的使用镜像创建。请参见使用镜像创建无状态Deployment应用
    本例中,在容器配置页签,在数据卷区域,单击增加本地存储存储卷类型保密字典挂载源创建密钥中创建好的密钥,容器路径为在容器中访问的路径。配置数据卷

使用密钥设置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. 单击右上角的使用镜像创建。请参见使用镜像创建无状态Deployment应用
    本例中,在容器配置页签,在环境变量区域,单击环境变量类型密钥变量引用创建密钥中创建好的密钥,在分别选择使用的key并填写好变量名称。变量名称