kubernetes基础知识之secret的特性

B站影视 韩国电影 2025-05-21 16:53 1

摘要:secret对象类型用来保存敏感数据,比如:密码、OAuth令牌和ssh密钥。将这些信息放在secret中比放在pod的定义或者容器镜像中来说更加安全和灵活。

secret的安全机制基于编码实现的,而不是加密,编码是可逆的。

加密不是可逆的,一般非对称加密的加密密钥和解密密钥是完全不同的。

secret对象类型用来保存敏感数据,比如:密码、OAuth令牌和ssh密钥。将这些信息放在secret中比放在pod的定义或者容器镜像中来说更加安全和灵活。

安全是因为secret是密文的,调用的时候是看不到数据本身的;灵活是secret依然可以做到热更新。为了安全,不只是做了数据的编码,还有一部分后续的动作和操作来保证数据的安全性。

Secret的特性:

1.kubernetes通过仅仅将secret分发到需要访问的pod所在的机器节点来保障其安全性。

2.secret只会存储在节点的内存中,永不写入物理存储,这样从节点删除secret时就不需要擦除磁盘数据。磁盘是非易失性存储器,内存是易失性存储器。

3.从kubernetes v1.7版本开始,etcd就会以加密方式存储secret,一定程度地保证了secret的安全性。直接连接etcd,去读取secret对象信息的话,它也不是明文展示的。可以通过一定的方式解密回来。

使用echo -n "密文" | base64 --decode

secret的安全性尽可能地在提升,但是不能完全把secret当成唯一的安全手段去使用。

重要的数据只靠secret数据去保护的话,会非常危险。第三方的开源工具一些可以帮助我们去加密数据和解密数据使用。

Secret创建的时候,可以显示出来:它只是进行编码和解码,并不是真正非常安全的非对称加密。

Service有很多类型:

①:clusterIP类型

②:nodeport类型

③:loadbalancer类型

④:externalname类型

secret的类型:

①:Opaque 非透明的方式,它是默认的secret类型,它是用户定义的任意数据类型。用来存储密码、密钥、信息、证书等,类型标识符为generic。存储的数据需要编码以后放进去,所以看起来并不能直接看到原数据,所以是非透明的方式。

②:kubernetes.io/service-account-token 服务账号sa。用来访问kubernetes API,由kubernetes自动创建,并且会自动挂载到pod的/var/run/secrets/kubernetes.io/serviceaccount目录中。

③:kubernetes.io/dockercfg dockercfg文件的序列化形式。

④:kubernetes.io/dockerconfigjson docker的config.json文件的序列化形式,用来存储私有docker registry 的认证信息。

⑤:kubernetes.io/basic-auth 用于基本身份认证的凭据。

⑥:kubernetes.io/ssh-auth 用于ssh身份认证的凭据。

⑦:kubernetes.io/tls 用于TLS环境,保存crt证书和key证书。用于为ssl通信模式存储证书和私钥文件。

⑧:bootstrap.kubernetes.io/token 启动引导令牌数据。

金鱼图

鼓励的话语:谁也有下雨未带伞的时候,你今天搭的桥就是未来所走的路。本欲渡众人,反被众生渡!

来源:没谱的高中历史老师

相关推荐