Kubernetes(k8s)-ConfigMap&Secret
myluzh 发布于 阅读:443 Kubernetes
0x01 ConfigMap
数据库连接地址,这种可能根据部署环境变化的,我们不应该写死在代码里。
Kubernetes 为我们提供了 ConfigMap,可以方便的配置一些变量。
apiVersion: v1
kind: Pod
metadata:
name: my-app-pod
spec:
containers:
- name: my-app
image: my-app-image
env:
# 使用 ConfigMap 中的 DB_HOST 和 DB_PORT 配置
- name: DB_HOST
valueFrom:
configMapKeyRef:
name: my-config-map
key: DB_HOST
- name: DB_PORT
valueFrom:
configMapKeyRef:
name: my-config-map
key: DB_PORT
---
apiVersion: v1
kind: ConfigMap
metadata:
name: my-config-map
data:
# 定义一个 key/value 对
DB_HOST: "localhost"
DB_PORT: "5432"
0x02 Secret
一些重要数据,例如密码、TOKEN,我们可以放到 secret 中。注意,数据要进行 Base64 编码。
apiVersion: v1
kind: Pod
metadata:
name: my-pod
spec:
containers:
- name: my-container
image: my-image
env:
- name: DB_USERNAME
valueFrom:
secretKeyRef:
name: db-credentials
key: username
- name: DB_PASSWORD
valueFrom:
secretKeyRef:
name: db-credentials
key: password
---
apiVersion: v1
kind: Secret
metadata:
name: db-credentials
type: Opaque
data:
# 将用户名的内容编码为 base64 字符串
username: dXNlcm5hbWU=
# 将密码的内容编码为 base64 字符串
password: cGFzc3dvcmQ=
k8s kubernetes configmap secret