k8s关于secret

k8s关于secret

   运维菜鸟     2022年10月1日 07:32     3907    

Secret与ConfigMap都是用来存储配置信息的,不同之处在于ConfigMap是明文存储的,而Secret用来保存敏感信息,如:密码、OAuth令牌,ssh key等等


Secret常用有三种类型:

  1. Opaque:使用base64编码格式存储密码等信息,加密性很弱。

  2. kubernetes.io/dockerconfigjson:用来存储私有docker registry的认证信息(仓库地址、登录用户名密码)。

  3. kubernetes.io/service-account-token:用来创建服务账号(Service Account),是一种自动被启用的用户认证机制,用来验证请求的合法性。

  4. kubernetes.io/tls:用于tls通讯模式认证信息

  5. kubernetes.io/ssh-auth:用于ssh认证信息

  6. bootstrap.kubernetes.io/token:启动引导token



1、Opaque类型

命令行创建

kubectl create secret generic mysecret1 --from-literal=username=root --from-literal=password=123456


将文件引入secret

kubectl create secret generic  mysecret --from-file=./keystore.jks


文件创建

因为Opaque类型是base64加密,所以可以使用以下命令先进行加密

echo -n "admin" | base64 --->YWRtaW4=

echo -n "654321" | base64--->NjU0MzIx

在下边的username和password中去引用。


apiVersion: v1

kind: Secret

metadata:

  name: mysecret2

type: Opaque

data:

  username: YWRtaW4=

  password: NjU0MzIx

执行以下命令去进行创建

kubectl create -f secret-my2.yaml


2、kubernetes.io/dockerconfigjson类型

(1)创建

kubectl create secret docker-registry dockerregistry(随便定义,在secret中的名字) 

--docker-server=192.168.1.1(docker地址)

--docker-username=admin (docker用户名)

--docker-password=admin(docker密码)

--docker-email=DOCKER_EMAIL(随便一个email)


(2)查看

kubectl get secret dockerregistry -o yaml


(3)引用

apiVersion: v1

kind: Pod

metadata:

  name: xxx

spec:

  containers:

    - name: xxx 

      image: xxx/xxx

  imagePullSecrets:

    - name: dockerregistry

可以在spce:imagePullSecrets中去进行引用


3、kubernetes.io/tls类型

其实就是创建普通类型的文件

kubectl create secret generic mytls(这里随便定义)

--from-file=key.pem

--from-file=cert.pem

文章评论

6

其他文章