k8s测试九 Secret
Secret 存在的意义Secret 解决了密码、token、密钥等敏感数据的配置问题,而不需要把这些敏感数据暴露到镜像或者Pod Spec中。Secret 可以以Volume或者环境变量的方式使用。类型:Service Account:用来访问Kubernetes API,由Kubernetes自动创建,并且会自动挂载到Pod的 /run/sercrets/kubernetes.io...
·
Secret 存在的意义
Secret 解决了密码、token、密钥等敏感数据的配置问题,而不需要把这些敏感数据暴露到镜像或者Pod Spec中。Secret 可以以Volume或者环境变量的方式使用。
类型:
- Service Account:用来访问Kubernetes API,由Kubernetes自动创建,并且会自动挂载到Pod的 /run/sercrets/kubernetes.io/serviceaccount目录中。
- Opaque:base64编码格式的Secret,用来存储密码、密钥等。
- kubernetes.io/dockerconfigjson:用来存储私有docker registry的认证信息
Service Account
Opaque Secret
创建说明:
Opaque 类型的数据是一个map类型,要求value是base64编码格式:
base64 编码:
echo-n"root" | base64
base64 解码:
echo-n"cm9vdA==" | base64
secrets.yaml:
apiVersion: v1
kind: Secret
metadata:
name: mysecret
type: Opaque
data:
username: cm9vdA==
password: MTIzNDU2
使用方式:
挂在到 Volume:
apiVersion: v1
kind: Pod
metadata:
name: seret-test
spec:
volumes:
- name: secrets
secret:
secretName: mysecret
containers:
- image: wangyanglinux/myapp:v1
name: db
volumeMounts:
- name: secrets
mountPath: /etc/secrets
readOnly: true
导出到环境变量中:
apiVersion: v1
kind: Pod
metadata:
name: seret-test
spec:
volumes:
- name: secrets
secret:
secretName: mysecret
containers:
- image: wangyanglinux/myapp:v1
name: db
volumeMounts:
- name: secrets
mountPath: /etc/secrets
readOnly: true
env:
- name: TEST_USER
valueFrom:
secretKeyRef:
name: mysecret
key: username
- name: TEST_PASSWORD
valueFrom:
secretKeyRef:
name: mysecret
key: password
kubernetes.io/dockerconfigjson
首先测试一下是否可以pull到私有仓库的image(这里肯定是失败的没有权限):
使用 Kuberctl 创建 docker registry 认证的 secret,我这里使用 aliyun提供的私有仓库进行创建.
kubectl create secret docker-registry my-secret --docker-server=DOCKER_REGISTRY_SERVER --docker-username=DOCKER_USER
--docker-password=DOCKER_PASSWORD --docker-email=DOCKER_EMAIL
这里我们需要对pod.yaml做一些改动:
apiVersion: v1
kind: Pod
metadata:
name: seret-test
spec:
volumes:
- name: secrets
secret:
secretName: mysecret
containers:
- image: registry.cn-hangzhou.aliyuncs.com/netcoredemo/demo1:v1
name: db
volumeMounts:
- name: secrets
mountPath: /etc/secrets
readOnly: true
env:
- name: TEST_USER
valueFrom:
secretKeyRef:
name: mysecret
key: username
- name: TEST_PASSWORD
valueFrom:
secretKeyRef:
name: mysecret
key: password
imagePullSecrets:
- name: aliyundocker #通过刚才创建的secret pull image
更多推荐
已为社区贡献19条内容
所有评论(0)