跳到主要内容

构建

2024年11月13日
柏拉文
越努力,越幸运

一、认识


二、作为环境变量


以下是一个定义 SecretYAML 文件

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

三、作为挂载文件


以下是一个定义 SecretYAML 文件

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/ 目录将包含 usernamepassword 文件。

查看 Secret 数据

kubectl get secret my-secret

解码并查看 Secret 数据内容

kubectl get secret my-secret -o yaml

echo "YWRtaW4=" | base64 --decode

四、作为镜像拉取凭据


以下是一个定义 SecretYAML 文件

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