Pod 可以通过 Volume 或者环境变量的方式使用 Secret,今天先学习 Volume 方式。
Pod 的配置文件如下所示:
① 定义 volume foo
,来源为 secret mysecret
。
② 将 foo
mount 到容器路径 /etc/foo
,可指定读写权限为 readOnly
。
创建 Pod 并在容器中读取 Secret:
可以看到,Kubernetes 会在指定的路径 /etc/foo
下为每条敏感数据创建一个文件,文件名就是数据条目的 Key,这里是 /etc/foo/username
和 /etc/foo/password
,Value 则以明文存放在文件中。
我们也可以自定义存放数据的文件名,比如将配置文件改为:
这时数据将分别存放在 /etc/foo/my-group/my-username
和 /etc/foo/my-group/my-password
中。
以 Volume 方式使用的 Secret 支持动态更新:Secret 更新后,容器中的数据也会更新。
将 password 更新为 abcdef
,base64 编码为 YWJjZGVm
更新 Secret。
几秒钟或,新的 password 会同步到容器。
以上是通过 Volume 使用 Secret,下节我们会学习通过环境变量使用 Secret。