Kubernetes中的Secret是一种用于存储敏感数据的资源对象,如密码、令牌或密钥。 与ConfigMap类似,但专门设计用于保存需要加密或保护的信息。
还有用之前的mysql yml文件
yml# ==================== 命名空间配置 ====================
apiVersion: v1 # Kubernetes核心API版本标识
kind: Namespace # 声明资源类型为命名空间
metadata: # 资源元数据开始
name: ems # 定义命名空间名称为ems(Enterprise Management System)
---
# ==================== 有状态应用配置 ====================
apiVersion: apps/v1 # 应用API版本标识
kind: StatefulSet # 声明资源类型为有状态副本集
metadata: # 资源元数据开始
name: mysql # StatefulSet名称
namespace: ems # 归属ems命名空间
labels: # 标签集合开始
app: mysql # 应用标识标签
spec: # 规格定义开始
serviceName: mysql-headless # 关联的无头服务名(用于DNS解析)
replicas: 1 # 副本数配置(MySQL单实例部署)
template: # Pod模板定义开始
metadata: # Pod元数据开始
labels: # Pod标签集合开始
app: mysql # 应用标识标签(需与selector匹配)
spec: # Pod规格定义开始
containers: # 容器定义列表开始
- name: mysql # 容器名称标识
image: mysql/mysql-server:8.0 # 官方MySQL 8.0镜像
ports: # 端口映射列表开始
- containerPort: 3306 # MySQL服务默认端口
env: # 环境变量列表开始
- name: MYSQL_ROOT_PASSWORD # root密码变量名
valueFrom:
secretKeyRef:
name: mysql-secret # 引用的Secret名称
key: password # Secret中的键名
volumeMounts: # 存储卷挂载列表开始
- name: data # 引用下方PVC模板名称
mountPath: /var/lib/mysql # MySQL数据存储路径
volumeClaimTemplates: # PVC模板列表开始
- metadata: # PVC元数据开始
name: data # PVC资源名称
spec: # PVC规格定义开始
accessModes: [ "ReadWriteMany" ] # 存储访问模式(多节点读写)
storageClassName: "mysql-nfs-sc" # 绑定前文定义的存储类
resources: # 资源请求定义开始
requests: # 资源请求参数开始
storage: 2Gi # 存储空间大小请求值
selector: # Pod选择器定义开始
matchLabels: # 标签匹配规则开始
app: mysql # 需匹配的Pod标签键值
创建一个secre对象的yml文件
ymlapiVersion: v1
kind: Secret
metadata:
name: mysql-secret
namespace: ems
type: Opaque
data:
password: cm9vdA== # "root"的base64编码
配置文件都加载后,数据库的密码就会根据mysql-secret名字去找密码了
本文作者:松轩(^U^)
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!