构建
2024年11月13日
一、认识
二、作为环境变量
以下是一个定义 Secret
的 YAML
文件
apiVersion: v1
kind: Secret
metadata:
name: my-secret
type: Opaque
data:
username: YWRtaW4= # Base64 编码的 "admin"
password: cGFzc3dvcmQ= # Base64 编码的 "password"
将 Secret
数据注入到 Pod
的环境变量:
apiVersion: v1
kind: Pod
metadata:
name: secret-env-pod
spec:
containers:
- name: my-container
image: nginx
env:
- name: USERNAME
valueFrom:
secretKeyRef:
name: my-secret
key: username
- name: PASSWORD
valueFrom:
secretKeyRef:
name: my-secret
key: password
查看 Secret
数据
kubectl get secret my-secret
解码并查看 Secret
数据内容:
kubectl get secret my-secret -o yaml
echo "YWRtaW4=" | base64 --decode
三、作为挂载文件
以下是一个定义 Secret
的 YAML
文件
apiVersion: v1
kind: Secret
metadata:
name: my-secret
type: Opaque
data:
username: YWRtaW4= # Base64 编码的 "admin"
password: cGFzc3dvcmQ= # Base64 编码的 "password"
将 Secret
数据以文件形式挂载到容器中:
apiVersion: v1
kind: Pod
metadata:
name: secret-volume-pod
spec:
containers:
- name: my-container
image: nginx
volumeMounts:
- name: secret-volume
mountPath: "/etc/secret"
volumes:
- name: secret-volume
secret:
secretName: my-secret
挂载后,容器内 /etc/secret/
目录将包含 username
和 password
文件。
查看 Secret
数据
kubectl get secret my-secret
解码并查看 Secret
数据内容:
kubectl get secret my-secret -o yaml
echo "YWRtaW4=" | base64 --decode
四、作为镜像拉取凭据
以下是一个定义 Secret
的 YAML
文件
apiVersion: v1
kind: Secret
metadata:
name: my-secret
type: Opaque
data:
username: YWRtaW4= # Base64 编码的 "admin"
password: cGFzc3dvcmQ= # Base64 编码的 "password"
配置 Pod
使用 Secret
进行私有镜像拉取:
apiVersion: v1
kind: Pod
metadata:
name: private-reg-pod
spec:
containers:
- name: my-container
image: my-private-registry/my-image:tag
imagePullSecrets:
- name: my-docker-secret
查看 Secret
数据
kubectl get secret my-secret
解码并查看 Secret
数据内容:
kubectl get secret my-secret -o yaml
echo "YWRtaW4=" | base64 --decode