Secret 可用于存储密码、令牌、密钥等敏感信息,降低直接对外暴露的风险。Secret 是 key-value 类型的键值对,您可以通过控制台的 Kubectl 工具创建对应的 Secret 对象,也可以通过挂载数据卷、环境变量或在容器的运行命令中使用 Secret。
- 仓库域名:请根据实际需求输入域名或 IP。
- 用户名:请根据实际需求输入第三方仓库的用户名。
- 密码:请根据实际需求设置第三方仓库的登录密码。
如果本次为首次登录系统,则会新建用户,相关信息写入
~/.dockercrg
文件中。
登录容器服务控制台,选择左侧导航栏中的集群。
选择需要部署 Workload 的集群 ID,进入待部署 Workload 的集群管理页面。
在工作负载下,任意选择 Workload 类型,进入对应的信息页面。
例如,选择工作负载 >DaemonSet,进入 DaemonSet 信息页面。如下图所示:
单击新建,进入 “新建Workload” 页面。
根据页面信息,设置工作负载名、命名空间等信息。并在 “数据卷” 中,单击添加数据卷。如下图所示:
选择使用Secret方式,填写名称,并单击选择Secret。如下图所示:
在弹出的“设置Secret”窗口中,配置挂载点,并单击确认。如下图所示:
/data/config
,子路径是 dev
,最终会存储在 /data/config/dev
下。单击创建Workload,完成创建。
登录容器服务控制台,选择左侧导航栏中的集群。
单击需要部署 Workload 的集群 ID,进入待部署 Workload 的集群管理页面。
在工作负载下,任意选择 Workload 类型,进入对应的信息页面。
例如,选择工作负载>DaemonSet,进入 DaemonSet 信息页面。如下图所示:
单击新建,进入 “新建Workload” 页面。
根据页面信息,设置工作负载名、命名空间等信息。并在“实例内容器”的“环境变量”中,单击引用ConfigMap/Secret。如下图所示:
选择Secret环境变量方式,并根据实际需求选择资源。如下图所示:
单击创建Workload,完成创建。
如需修改 key-values,则编辑 YAML 中 data 的参数值,并单击完成即可完成更新。
依次执行以下命令,获取 Pod 的用户名和密码。
$ echo -n 'username' > ./username.txt
$ echo -n 'password' > ./password.txt
执行 Kubectl 命令,创建 Secret。
$ kubectl create secret generic test-secret --from-file=./username.txt --from-file=./password.txt
secret "testSecret" created
执行以下命令,查看 Secret 详情。
kubectl describe secrets/ test-secret
通过 YAML 手动创建 Secret,需提前将 Secret 的 data 进行 Base64 编码。
apiVersion: v1
kind: Secret
metadata:
name: test-secret
type: Opaque
data:
username: dXNlcm5hbWU= ## 由echo -n 'username' | base64生成
password: cGFzc3dvcmQ= ## 由echo -n 'password' | base64生成
YAML 示例如下:
apiVersion: v1
kind: Pod
metadata:
name: nginx
spec:
containers:
- name: nginx
image: nginx:latest
volumeMounts:
name: secret-volume
mountPath: /etc/config
volumes:
name: secret-volume
secret:
name: test-secret ## 设置 secret 来源
## items: ## 设置指定 secret的 Key 挂载
## key: username ## 选择指定 Key
## path: group/user ## 挂载到指定的子路径
## mode: 256 ## 设置文件权限
restartPolicy: Never
YAML 示例如下:
apiVersion: v1
kind: Pod
metadata:
name: nginx
spec:
containers:
- name: nginx
image: nginx:latest
env:
- name: SECRET_USERNAME
valueFrom:
secretKeyRef:
name: test-secret ## 设置来源 Secret 文件名
key: username ## 设置该环境变量的 Value 来源项
restartPolicy: Never
YAML 示例如下:
apiVersion: v1
kind: Pod
metadata:
name: nginx
spec:
containers:
- name: nginx
image: nginx:latest
imagePullSecrets:
- name: test-secret ## 设置来源 Secret 文件名
restartPolicy: Never
本页内容是否解决了您的问题?