06-k8s中的secrets资源01-初识secret
secrets资源,类似于configmap资源,只是secrets资源是用来传递重要的信息的;secret資源就是將value的值使用base64编译后传输,当pod引用secret后,k8s会自动将其base64的编码,反编译回正常的字符串;
secrets资源,类似于configmap资源,只是secrets资源是用来传递重要的信息的;
secret資源就是將value的值使用base64编译后传输,当pod引用secret后,k8s会自动将其base64的编码,反编译回正常的字符串;
一、创建secrets资源
1,创建工作目录
[root@k8s231 configmap]# mkdir /xinjizhiwa/secrets
[root@k8s231 configmap]# cd /xinjizhiwa/secrets
2,准备将“想要的数据”使用base64进行编码
· base64编码的操作命令
#正向编码
[root@k8s231 secrets]# echo xinjizhiwa | base64
eGluaml6aGl3YQo=[root@k8s231 configmap]# echo kubernetes | base64
a3ViZXJuZXRlcwo=
#反向编码
[root@k8s231 secrets]# echo eGluaml6aGl3YQo= | base64 -d
xinjizhiwa
3,声明式创建secrets资源
· 编辑secrets资源清单
[root@k8s231 secrets]# cat 01-secret.yaml
apiVersion: v1
kind: Secret
metadata:
name: s1#用户自定义的类型(Opaque为自定义类型;generic为)
type: Opaque
data:
k8s: eGluaml6aGl3YQo=
xinjizhiwa: a3ViZXJuZXRlcwo=
· 创建secret资源
[root@k8s231 secrets]# kubectl apply -f 01-secret.yaml
4,响应式创建secret
[root@k8s231 secrets]# kubectl create secret generic secret-02 --from-literal=school=eGluaml6aGl3YQo= --from-literal=class=Z29uZ3poZW5nCg==
1>docker-registry:创建一个给Docker registry容器镜像仓库使用的secret
2>generic: 从本地file, directory或者literal value创建一个 secret(这是大多数情况使用的)也就是资源清单中的type:Opaque是一个意思;
3>tls: 创建一个TLS secret
————————————————LQ@fenglq.com
原文链接:https://blog.csdn.net/flq18210105507/article/details/120749275
二、pod引用secret资源
1,pod资源env环境变量引用
· 创建pod资源
[root@k8s231 secrets]# cat pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: m13
spec:
containers:
- image: nginx:1.20.1-alpine
name: nginx
env:
- name: secret-env01
valueFrom:
#声明引用sercet
secretKeyRef:
#声明secret名称
name: s1
#声明secret的key
key: k8s
- name: secret-env02
valueFrom:
secretKeyRef:
name: s1
key: xinjizhiwa
[root@k8s231 secrets]# kubectl apply -f pod.yaml
pod/m13 created
· 查看pod资源
[root@k8s231 secrets]# kubectl get pods -o wide
· 登录pod资源查看env变量
[root@k8s231 secrets]# kubectl exec m13 -it -- sh
/ # env
...
secret-env01=xinjizhiwasecret-env02=kubernetes
2,pod資源volume存儲卷引用secret資源
· 編輯pod資源清單
[root@k8s231 secrets]# vim pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: m14
spec:
volumes:
- name: vol-secret
#生命存?卷挂在?ing
secret:
#指定secret?源名?
secretName: s1
containers:
- image: nginx:1.20.1-alpine
name: nginx
volumeMounts:
- name: vol-secret
mountPath: /xinjizhiwa/
· 創建Pod資源
[root@k8s231 secrets]# kubectl apply -f pod.yaml
· 進入容器查看是否挂在為文件
[root@k8s231 secrets]# kubectl exec m14 -it -- sh
/ # cd xinjizhiwa/
/xinjizhiwa # ls
k8s xinjizhiwa
/xinjizhiwa # cat k8s
xinjizhiwa
/xinjizhiwa # cat xinjizhiwa
kubernetes
更多推荐
所有评论(0)