若需要在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 env: - 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并输入变量名称。
本例中,配置示例如下所示。