一、概念
-
概念:secret是k8s中用来存储敏感认证信息的一种重要资源,大致可以分为三种类型:
docker-registry
,generic
和tls
,从名称上就可以看出来,分别用于存储镜像仓库认证信息,一般信息和证书信息。其中generic类型的最常用,比较典型的就是用来存放数据库的认证信息。 -
相关帮助指令:kubectl create secret -h
二、相关操作
-
创建generic 加密资源:kubectl create secret generic my-generic --from-literal=username=admin --from-literal=password=ffcsict123
ps:对于需要加密的字符串,如果有特殊符号的,需要带上单引号,否则会被默认移除。如:–from-literal=password=‘ffcsict123’
-
查看generic 加密资源:kubectl describe secret my-generic
-
创建docker-registry加密资源
kubectl create secret docker-registry my-harbor-secret --docker-username=admin --docker-password=ffcsict123 --docker-server=192.168.248.12:180
-
编辑docker-registry加密资源,拷贝加密串:kubectl edit secret my-harbor-secret
-
打印加密串
echo 'eyJhdXRocyI6eyIxOTIuMTY4LjI0OC4xMjoxODAiOnsidXNlcm5hbWUiOiJhZG1pbiIsInBhc3N3b3JkIjoiZmZjc2ljdDEyMyIsImF1dGgiOiJZV1J0YVc0NlptWmpjMmxqZERFeU13PT0ifX19' | base64 --decode
三、harbor仓库加密资源
ps:前面文章部署springboot项目的时候,我们将项目打成镜像上传到harbor仓库,然后编写资源文件拉取部署。由于我的harbor仓库设置成了公开,所以不需要账号密码。接下来就演示下非公开仓库的使用。
-
打开harbor,将仓库设为私有
-
编写yaml文件:vi /opt/springboot-docker.yaml
apiVersion: apps/v1 kind: Deployment metadata: name: sptest labels: controller: deploy spec: replicas: 1 selector: matchLabels: app: sptest template: metadata: labels: app: sptest spec: containers: - name: k8stest image: 192.168.248.12:180/myresponsity/springboot-docker:v1 ports: - name: k8stest-port containerPort: 8080 protocol: TCP
-
启动pod:kubectl apply -f /opt/springboot-docker.yaml
-
查看:kubectl get pod
-
查看详情:kubectl describe pod sptest-bc65fb8cd-sxgz9
ps:无权限拉取
-
给资源文件配置secret资源:vi /opt/springboot-docker.yaml
ps:设置imagePullSecrets属性
apiVersion: apps/v1 kind: Deployment metadata: name: sptest labels: controller: deploy spec: replicas: 1 selector: matchLabels: app: sptest template: metadata: labels: app: sptest spec: imagePullSecrets: - name: my-harbor-secret containers: - name: k8stest image: 192.168.248.12:180/myresponsity/springboot-docker:v1 ports: - name: k8stest-port containerPort: 8080 protocol: TCP
-
更新:kubectl apply -f /opt/springboot-docker.yaml
-
查看pod:kubectl get pod
-
说明密码设置成功!