企业网站推广服务协议,哪些网站做代理,天津企业模板建站哪个好,石家庄网站定做一、回顾secret资源的简单实用 第一步#xff1a;将想要的数据信息【key#xff1a;value】中的value值#xff0c;使用base64编码后#xff0c;写入secret资源清单中#xff1b; 第二步#xff1a;创建secret资源#xff1b; 第三步#xff1a;pod资源引用secret资源将想要的数据信息【keyvalue】中的value值使用base64编码后写入secret资源清单中 第二步创建secret资源 第三步pod资源引用secret资源 二、实战secret资源
1第一步将数据base64编码 [rootk8s231 ~]# echo xinjizhiwa | base64 eGluaml6aGl3YQo 2编辑secret资源清单 [rootk8s231 secrets]# vim secret.yaml apiVersion: v1 kind: Secret metadata: name: secret-01 #用户自定义的任意数据类型还有别的类型。。。 type: Opaque data: k8s: eGluaml6aGl3YQo 3创建secret资源 [rootk8s231 secrets]# kubectl apply -f secret.yaml 4pod引用secret资源
· 编辑资源清单 [rootk8s231 secrets]# cat pod.yaml #pod资源env环境变量方式引用secret apiVersion: v1 kind: Pod metadata: name: pod-secret-01 spec: containers: - name: c1 image: nginx:1.20.1-alpine env: - name: k8s valueFrom: #声明引用secret资源 secretKeyRef: name: secret-01 #声明使用secret资源中的那一个key key: k8s --- #vomlume方式引用 apiVersion: v1 kind: Pod metadata: name: pod-secret-02 spec: #声明存储卷 volumes: - name: vol-secret #声明存储卷的类型是secret secret: #指定secret资源的名称(使用哪个secret资源) secretName: secret-01 containers: - name: c2 image: nginx:1.24.0-alpine volumeMounts: - name: vol-secret #挂载到容器的哪个位置路径 mountPath: /secret/ · 创建pod资源 [rootk8s231 secrets]# kubectl apply -f pod.yaml 5进入容器查看是否引用成功
· env应用的pod容器 [rootk8s231 secrets]# kubectl exec pod-secret-01 -it -- sh / # env k8sxinjizhiwa · volumes引用的pod容器 [rootk8s231 secrets]# kubectl exec pod-secret-02 -it -- sh / # cat /secret/k8s xinjizhiwa 三、pod资源清单指定key引用secret
1编辑pod资源清单 [rootk8s231 secrets]# cat pod.yaml apiVersion: v1 kind: Pod metadata: name: pod-secret-02 spec: #声明存储卷 volumes: - name: vol-secret #声明存储卷的类型是secret secret: #1指定secret资源的名称(使用哪个secret资源) secretName: secret-01 #2指定secret资源中要引用的key items: - key: k8s path: xjzw.log containers: - name: c2 image: nginx:1.24.0-alpine volumeMounts: - name: vol-secret #挂载到容器的哪个位置路径 mountPath: /secret/xjzw.log #只挂在文件不清空容器原有文件夹 subPath: xjzw.log 2创建pod [rootk8s231 secrets]# kubectl apply -f pod.yaml 3进入pod查看 [rootk8s231 secrets]# kubectl exec pod-secret-02 -it -- sh / # ls /secret/ xjzw.log / # cat /secret/xjzw.log xinjizhiwa 四、secret类型之-私有镜像仓库使用 创建Docker harbor的secret信息 因为k8s拉取镜像与Docker拉取镜像是不同的方式所以k8s需要创建一个属于自己的来气镜像的方式 1docker-registry创建一个给Docker registry容器镜像仓库使用的secret 2generic 从本地file, directory或者literal value创建一个 secret这是大多数情况使用的 也就是资源清单中的typeOpaque是一个意思 3tls 创建一个TLS secret 1harbor创建私有仓库
harbor创建私有仓库 2推送镜像到私有仓库 [rootk8s233 ~]# docker push harbor.xinjizhiwa.com/xinjizhiwa01/nginx:1.20.1-alpine 3创建拉取镜像的secret资源
· 响应式创建secret资源
docker 拉取镜像的secret账号密码资源 [rootk8s231 secrets]# kubectl create secret docker-registry xinjizhiwa-harbor --docker-usernameadmin --docker-password1 --docker-email123qq.com --docker-serverharbor.xinjizhiwa.com 4创建pod引用拉取镜像的secret资源 [rootk8s231 secrets]# cat pod.yaml apiVersion: v1 kind: Pod metadata: name: pod-secret-02 spec: #指定镜像拉取的secret资源secret的拉取镜像类型; imagePullSecrets: - name: xinjizhiwa-harbor containers: - name: c3 image: harbor.xinjizhiwa.com/xinjizhiwa01/nginx:1.20.1-alpine 五、拓展如何声明式创建docker registry类型的secret资源
1【-o yaml】模仿系统声明式的写法
就是将已经创建好的docker registry资源方向使用yaml格式查看 [rootk8s231 secrets]# kubectl get secrets xinjizhiwa-harbor -o yaml apiVersion: v1 data: .dockerconfigjson: eyJhdXRocyI6eyJoYXJib3IueGluaml6aGl3YS5jb20iOnsidXNlcm5hbWUiOiJhZG1pbiIsInBhc3N3b3JkIjoiMSIsImVtYWlsIjoiMTIzQHFxLmNvbSIsImF1dGgiOiJZV1J0YVc0Nk1RPT0ifX19 kind: Secret metadata: creationTimestamp: 2024-02-14T05:08:30Z name: xinjizhiwa-harbor namespace: default resourceVersion: 597638 uid: 33a3d025-047f-4d22-be5e-b92ed97b3310 type: kubernetes.io/dockerconfigjson 2base64反向编译查看内容 [rootk8s231 ~]# echo eyJhdXRocyI6eyJoYXJib3IueGluaml6aGl3YS5jb20iOnsidXNlcm5hbWUiOiJhZG1pbiIsInBhc3N3b3JkIjoiMSIsImVtYWlsIjoiMTIzQHFxLmNvbSIsImF1dGgiOiJZV1J0YVc0Nk1RPT0ifX19 | base64 -d {auths:{harbor.xinjizhiwa.com:{username:admin,password:1,email:123qq.com,auth:YWRtaW46MQ}}} [rootk8s231 ~]# echo YWRtaW46MQ | base64 -d admin:1 也就是说dacker registy使用了两次base64的编码
3根据上述信息自己编辑secret声明式资源清单 [rootk8s231 ~]# vim docker.yaml apiVersion: v1 kind: Secret metadata: name: xinjizhiwa-harbor02 type: kubernetes.io/dockerconfigjson data: .dockerconfigjson: eyJhdXRocyI6eyJoYXJib3IueGluaml6aGl3YS5jb20iOnsidXNlcm5hbWUiOiJhZG1pbiIsInBhc3N3b3JkIjoiMSIsImVtYWlsIjoiMTIzQHFxLmNvbSIsImF1dGgiOiJZV1J0YVc0Nk1RPT0ifX19 了解到私有仓库的镜像拉取secret资源的使用即可
#######################################################################3
编译过程二次base64编译方向过程 [rootk8s233 ~]# echo -n eyJhdXRocyI6eyJoYXJib3IueGluaml6aGl3YS5jb20iOnsidXNlcm5hbWUiOiJhZG1pbiIsInBhc3N3b3JkIjoiMSIsImVtYWlsIjoiMTIzQHFxLmNvbSIsImF1dGgiOiJZV1J0YVc0Nk1RPT0ifX19 |base64 -d {auths:{harbor.xinjizhiwa.com:{username:admin,password:1,email:123qq.com,auth:YWRtaW46MQ}}} [rootk8s233 ~]# echo -n YWRtaW46MQ | base64 -d admin:1 [rootk8s233 ~]# echo -n {auths:{harbor.xinjizhiwa.com:{username:admin,password:1,email:123qq.com,auth:YWRtaW46MQ}}} | base64 eyJhdXRocyI6eyJoYXJib3IueGluaml6aGl3YS5jb20iOnsidXNlcm5hbWUiOiJhZG1pbiIsInBh c3N3b3JkIjoiMSIsImVtYWlsIjoiMTIzQHFxLmNvbSIsImF1dGgiOiJZV1J0YVc0Nk1RPT0ifX19