Kubernetes详解——Secret创建

一、–from-literal参数创建

Secret创建的命令格式为:

kubectl create secret 【Secret类型】 【Secret名称】

但是根据给Secret指定数据方式的不同,我们可以有四种方法来创建Secret。
–from-literal参数可以在命令行中指定Secret具体内容。例如,执行命令:

kubectl create secret generic secret1 --from-literal=user=root --from-literal=password=root123

Kubernetes详解——Secret创建_第1张图片

该命令执行结果如下:

从上图中可以看出,我们的Secret创建成功!

二、–from-file参数创建


除了使用–from-literal参数外,我们还可以使用–from-file参数从文件中指定Secret的具体内容。例如,我们创建username和password两个文件,并且向文件中写入内容,执行命令:

echo "root" > ./username
echo "root123" > ./password

之后,我们执行命令:

kubectl create secret generic secret2 --from-file=./username --from-file=./password 

该命令执行结果如下:

Kubernetes详解——Secret创建_第2张图片

Kubernetes详解——Secret创建_第3张图片

从上图中可以看出,我们的Secret创建成功!
使用这种类型创建时要注意,文件名为Secret的键,该文件中的具体内容为该键的值。

三、–from-env-file参数创建


–from-file参数可以允许我们将Secret的内容写入文件中,但是这种一个文件一个参数的方式还是比较麻烦。如果我们使用–from-env-file参数,就可以把Secret的所有内容写入一个文件中。
首先,我们创建env文件,并在文件中写入如下内容:

之后,我们执行命令:

kubectl create secret generic secret3 --from-env-file=env

该命令执行结果如下所示:

Kubernetes详解——Secret创建_第4张图片

从上图中可以看出,我们也成功的创建了Secret。

四、清单创建


以上三种方式,我们都是使用命令行的方式来创建Secret,Secret其实也支持使用资源配置清单的方式来进行创建。但是Secret中存储的base64编码的信息,因此,我们在写资源配置清单的时候,我们首先要得到secret值得base64编码。
得到指定字符串的base64编码可以通过如下命令:

echo 【指定字符串】 | base64



例如,执行命令:

echo root | base64
echo root123 | base64

就可以得到root和root123的base64编码,如下所示:

在得到Secret值得base64编码后,我们就可以配置资源清单了,一个Secret的资源清单内容如下:

vim secret.yaml

apiVersion: v1
data:
  password: cm9vdDEyMwo=
  username: cm9vdAo=
kind: Secret
metadata:
  name: secret4
  namespace: default



该资源清单配置完成后如下所示:

之后,我们可以执行命令:

kubectl apply -f secret.yaml



创建该Secret,该命令执行结果如下:

从上图可以看出,我们的资源清单方式配置Secret成功!
 

你可能感兴趣的:(kubernetes,容器,云原生)