若需要在Kubernetes集群中使用一些敏感的配置,例如密码、证书等信息时,建议使用保密字典。本文介绍如何在控制台创建保密字典,通过命令行或控制台方式配置Pod数据卷及环境变量。
前提条件
-
使用保密字典时,Pod和保密字典需处于同一集群和命名空间中。
背景信息
您可以在Pod中使用保密字典,有多种使用场景,主要包括:
-
使用保密字典配置Pod的数据卷
-
使用保密字典设置Pod的环境变量
更多关于保密字典的信息,请参见 保密字典 。
创建保密字典
本示例创建保密字典secret-test。
-
登录 容器服务管理控制台 ,在左侧导航栏选择 集群 。
-
在 集群列表 页面,单击目标集群名称,然后在左侧导航栏,选择 。
-
在 无状态 页面中,单击 使用YAML创建资源 。
-
选择示例模板或自定义,拷贝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 目录下。
-
创建并复制以下内容到 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
-
执行以下命令,配置保密字典。
kubectl apply -f example0.yaml
说明此处的 example0.yaml 需要替换成实际YAML文件的名称。
通过控制台配置
-
登录 容器服务管理控制台 ,在左侧导航栏选择 集群 。
-
在 集群列表 页面,单击目标集群名称,然后在左侧导航栏,选择 。
-
在 无状态 页面,单击 使用镜像创建 。
详细说明,请参见 创建无状态工作负载Deployment 。
-
在 应用基本信息 页签中,进行相应配置,然后单击 下一步 。
-
在 容器配置 页签,在 数据卷 区域,单击 增加本地存储 , 存储卷类型 为 保密字典 , 挂载源 为 创建保密字典 中创建好的密钥, 容器路径 为在容器中访问的路径。配置好相应信息后,单击 下一步 。
本例中,配置示例如下所示。
-
在 高级配置 页签中,进行相应配置,然后单击 创建 。
使用保密字典设置Pod的环境变量
以下两种配置方法您可任选其一进行配置。
通过命令行进行配置
本例中, secret-test保密字典中user和password设置为Pod的环境变量。
-
创建并拷贝以下内容到 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
-
执行如下命令,配置环境变量。
kubectl apply -f example1.yaml
说明此处的 example1.yaml 需要替换成实际YAML文件的名称。
通过控制台配置
-
登录 容器服务管理控制台 ,在左侧导航栏选择 集群 。
-
在 集群列表 页面,单击目标集群名称,然后在左侧导航栏,选择 。
-
在 无状态 页面中,单击 使用镜像创建 。
详细说明,请参见 创建无状态工作负载Deployment 。
-
在 应用基本信息 页签中,进行相应配置,然后单击 下一步 。
-
在 容器配置 页签,在 环境变量 区域,单击 , 类型 为 密钥 , 变量/变量引用 为 创建保密字典 中创建好的密钥,在分别选择使用的key并输入变量名称。
本例中,配置示例如下所示。