k8sSecret资源

时间:2019-08-20 12:55:38   收藏:0   阅读:111

Secret资源的功能类似于ConfigMap,但它专用于存放敏感数据,如密码、数字证书、私钥、令牌和ssh key等。

一、概述

Secret对象存储数据以键值方式存储数据,再pod资源中通过环境变量或存储卷进行数据访问。Secret对象仅会被分发至调用了此对象的pod资源所在的工作节点,且只能由节点将其存储于内存中。另外,Secret对象的数据的存储及打印格式为base64编码的字符串,因此用户在创建对象时也要提供此种编码格式的数据。不过,在容器中以环境变量或存储卷的方式访问时,他们会被自动解码为明文格式。

在master节点上,Secret对象以非加密的格式存储于etcd中,因此管理员必须加以精心管控以确保敏感数据的机密性,必须确保etcd集群节点间以及与APIserver的安全通信,etcd服务的访问授权,还包括用户访问APIServer时的授权,因为拥有创建pod资源的用户都可以使用Secret资源并能够通过pod中的容器访问其数据。

Secret对象主要有两种用途,一是作为存储卷注入到pod上,由容器应用程序所使用,二是用于kubelet为pod里的容器拉取镜像时向私有仓库提供认证信息。Secret资源主要有四种类型组成:

1、Opaque:自定义数据内容;base64编码,用来存储密码、密钥、信息、证书等数据,类型标识符为generic

2、kubernetes.io/service-account-token:ServiceAccount的认证信息,可在创建service account时由kubernetes自动创建

3、kubernetes.io/dockerconfigjson: 用来存储Docker镜像仓库的认证信息,类型标识符为docker-registry

4、kubernetes.io/tls:用于为ssl通信模式存储证书和私钥文件,命令式创建时类型标识符为tls。

二、创建Secret资源

1、命令式创建

$ kubectl create secrete generic mysql-auth --from-literal=username=root --from-literal=password=123456

 

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!