Secret是一种加密存储的资源对象,您可以将认证信息、证书、私钥等保存在Secret中,而不需要把这些敏感数据暴露到镜像或者Pod定义中,从而更加安全和灵活。
Secret与ConfigMap非常像,都是key-value键值对形式,使用方式也相同,不同的是Secret会加密存储,所以适用于存储敏感信息。
Secret与ConfigMap相同,是以键值对形式保存数据,所不同的是在创建时,Secret的Value必须使用Base64编码。
对字符串进行Base64编码,可以直接使用“echo -n 要编码的内容 | base64”命令即可,示例如下:
root@ubuntu:~# echo -n "3306" | base64 MzMwNg==
如下示例中定义的Secret中包含两条Key-Value。
apiVersion: v1 kind: Secret metadata: name: mysecret data: key1: aGVsbG8gd29ybGQ= # "hello world" Base64编码后的值 key2: MzMwNg== # "3306" Base64编码后的值
Secret最常见的用法是作为环境变量注入到容器中,如下示例。
apiVersion: v1 kind: Pod metadata: name: nginx spec: containers: - image: nginx:alpine name: container-0 resources: limits: cpu: 100m memory: 200Mi requests: cpu: 100m memory: 200Mi env: - name: key valueFrom: secretKeyRef: name: mysecret key: key1 imagePullSecrets: - name: default-secret
在Volume中引用Secret,就是通过文件的方式直接将Secret的每条数据填入Volume,每条数据是一个文件,键就是文件名,键值就是文件内容。
如下示例中,创建一个名为vol-secret的Volume,这个Volume引用名为“mysecret”的Secret,再将Volume挂载到容器的“/tmp”路径下。Pod创建成功后,在容器的“/tmp”路径下,就有两个文件key1和key2。
apiVersion: v1 kind: Pod metadata: name: nginx spec: containers: - image: nginx:alpine name: container-0 resources: limits: cpu: 100m memory: 200Mi requests: cpu: 100m memory: 200Mi volumeMounts: - name: vol-secret # 挂载名为vol-secret的Volume mountPath: "/tmp" imagePullSecrets: - name: default-secret volumes: - name: vol-secret secret: # 引用Secret secretName: mysecret
进入Pod容器中,可以在/tmp目录下发现key1和key2两个文件,并看到文件中的值是base64解码后的值,分别为“hello world”和“3306”。
1. 接口描述 接口请求域名: as.tencentcloudapi.com 。 本接口(ModifyNotifica...
据 Gartner 的报告显示,到 2022 年将有 50% 的应用软件将容器化,2023 年高可控...
对象管理说明 您可以通过控制台直接操作原生 Kubernetes 对象,例如 Deployment...
对于做外贸的企业级用户,如果客户仅是香港、台湾、日本客户,建议租用 香港服务...
阿里妹导读:对于稍微复杂一些的命令行工具,命令行的提示功能必不可少。那么对...
IDC市场发展的前景很好,导致大量的 服务器租用托管 商涌入,给市场造成了很大的...
想了解更多内容,请访问: 51CTO和华为官方战略合作共建的鸿蒙技术社区 https://...
背景 负载平衡开始于20世纪90年代,当时硬件设备通过网络分发流量。组织希望提高...
调用ResizeDisk扩容一块云盘,支持扩容系统盘和数据盘。 接口说明 说明 扩容前,...
Pixiu 是什么 ? 在回答 Pixiu 是什么之前,我们简单解释一下 Dubbo 是什么。Dubb...