kubernetes学习笔记16:secret和initcontroller

secret用来存储经过base64编码的密码token等敏感信息的资源对象,有type属性(opaque,service-account-token,dockerconfigjson,bootstrap.token),data属性,是用来存储secret数据的,以key-value形式。

创建方式有系统创建和用户手动创建,通过kubectl get secret看看创建了多少,再通过kubectl describe secret secretName获取secret详情,使用方式:主要被pod使用,一般通过volumn挂载到指定容器目录了。

可以直接指定挂载,还有就是系统自动生成,把serviceaccount-secret自动挂载到容器目录(路径可以通过kibectl describe pod podID|grep token)。另外需要访问私有镜像仓库,可以通过secret来实现。

在pod里使用imagepullsecrets来配置,或者自动注入,在pod里使用serviceaccount来配置imagepullsecrets,pod创建时自动注入imagepullsecrets。

secret大小限制1M,读取secret的最佳实践不要用list和watch,推荐使用get,获取需要secret。serviceaccount用来解决pod在集群里身份认证的问题,信息存储在secret里。
resource是容器的一个资源配置管理,目前支持cpu,内存,临时存储。
securitycontext用于限制容器的一些行为,保证系统和其他容器的安全,分为容器级别,级别,集群级别。控制项有用户ID,组ID,特权容器,SELinux,APParmor,子进程获取父进程,capaliblities,系统调用控制。
initcontroller,它比普通controller先启动,直到所有initcontroller启动成功,普通controller才启动,它按照定义的次序启动,而普通controller是并发启动,initcontroller执行成功后会退出,普通controller会一直执行,甚至会重启恢复。

initcontroller为普通controller服务,初始化一些东西,前置条件的检验。

posted @ 2020-04-28 16:35  ppjj  阅读(62)  评论(0编辑  收藏  举报