一、Secret实例演示
在kubernetes中,还存在一种configmap非常类似的对象,称为Secret对象,它主要用户存储敏感信息,例如密码,密钥、证书等等
1.1 首先使用base64对数据进行编码
如下,将admin和admin123使用base64编码
[root@master volume]# echo -n 'admin' | base64
YWRtaW4=
[root@master volume]# echo -n 'admin123' | base64
YWRtaW4xMjM=
[root@master volume]#
1.2 创建secret对象
编辑 secret.yaml文件,内容如下:
apiVersion: v1
kind: Namespace
metadata:
name: dev
---
apiVersion: v1
kind: Secret
metadata:
name: secret
namespace: dev
type: Opaque
data:
username: YWRtaW4=
password: YWRtaW4xMjM=
使用如下命令创建
[root@master volume]# kubectl apply -f secret.yaml
namespace/dev created
secret/secret created
[root@master volume]#
使用如下命令查看,这里不会显示内容,只会显示几个字符
[root@master volume]# kubectl describe secret secret -n dev
Name: secret
Namespace: dev
Labels: <none>
Annotations: <none>
Type: Opaque
Data
====
username: 5 bytes
password: 8 bytes
[root@master volume]#
1.3 在Pod中使用
编辑pod_secret.yaml文件,内容如下:
apiVersion: v1
kind: Pod
metadata:
name: pod-secret
namespace: dev
spec:
containers:
- name: nginx
image: nginx:1.17.1
volumeMounts:
- name: config
mountPath: /secret/config
volumes:
- name: config
secret:
secretName: secret
使用如下命令创建
[root@master volume]# kubectl apply -f pod_secret.yaml
pod/pod-secret created
[root@master volume]#
如下,查看pod
[root@master volume]# kubectl get pod -n dev
NAME READY STATUS RESTARTS AGE
pod-secret 1/1 Running 0 94s
[root@master volume]#
然后进入Pod中,查看配置文件内容如下:
[root@master volume]# kubectl exec -it pod-secret -n dev /bin/sh
kubectl exec [POD] [COMMAND] is DEPRECATED and will be removed in a future version. Use kubectl exec [POD] -- [COMMAND] instead.
# cd /secret
# ls
config
# cd config
# ls
password username
# cat username
admin#
# cat password
admin123#