Secret特性

Secret与ConfigMap相比,Secret会用于存储天生敏感的数据。

Secret有如下两种特性:

  1. Secret卷是存储在内存中的,以tmpfs格式挂载,因此,存储在其中的数据都不会写入磁盘,这样就保证数据无法被窃取;

  2. 数据存储在Secret中会被Base64编码,在传递至容器中时,会被Base64解码,无需应用程序手动解码;

Base64编码和解码

Secret会将传入的数据进行Base64编码,原因是因为Base64编码可以将二进制数据转换为纯文本,因此可以支持传入各种类型格式的文件。

通常创建Secret的方式有以下两种:

  1. 使用指令创建(优选):通过这种方式指定时,无需手动将需传入的值Base64编码,可以直接传入原生值,其会在创建Secret时,自动进行编码;

  2. 使用配置文件创建:通常在secret.data中指定键/值对,但是需要用户将值Base64编码后写入,当然,也可以使用secret.stringData指定键/值对,在该字段下,可以不手动编码

stringData字段

有时,我们传入的并不一定是二进制文件,可能只是纯文本值,这时,可以使用secret.stringData字段设置键/值对。

Tips:

  1. 在查看Secret的详细信息时,并不能发现stringData字段,而是发现其中指定的条目都被放在了secret.data下面,并且同样被Base64编码了;

  2. stringData字段下,可以不手动将值Base64编码,直接写入原生字面量值即可,而在data字段下,则需要写入编码后的值;

拥有stringData并不代表着只能在该字段下传入非二进制数据,在secret.data下同样可以放置纯文本值。

Last updated

Was this helpful?