当前位置: 首页 > wzjs >正文

深圳做营销网站的公司哪家好产品导航网站源码

深圳做营销网站的公司哪家好,产品导航网站源码,中国风网站设计,微信公众平台模板制作一、引言 在 Kubernetes 中,容器默认采用临时存储(Ephemeral Storage),这意味着 Pod 一旦重启或重建,其内部数据将完全丢失。 然而,在生产环境中,许多关键应用(如数据库、日志系统…

一、引言

在 Kubernetes 中,容器默认采用临时存储(Ephemeral Storage),这意味着 Pod 一旦重启或重建,其内部数据将完全丢失。

然而,在生产环境中,许多关键应用(如数据库、日志系统、内容管理平台)都需要保证数据持久化与高可用性。为此,Kubernetes 提供了以下核心机制:

• Volume:为 Pod 提供临时或持久的存储挂载能力。

• PersistentVolume (PV):集群级别的存储资源抽象,独立于 Pod 生命周期。

• PersistentVolumeClaim (PVC):用户对存储资源的声明,可实现动态或静态绑定 PV。

二、核心原理

2.1 Volume:Pod 级别的存储机制

Volume 是 Pod 内部的存储抽象,其生命周期与 Pod 一致。常见类型如下:

在这里插入图片描述

局限性:

• 临时性存储无法满足数据持久化需求

• 配置复杂,缺乏资源解耦能力

2.2 PV 与 PVC:存储资源的解耦模型

Kubernetes 通过 PV/PVC 模型实现应用与底层存储的解耦:

PersistentVolume(PV)

• 静态供给:管理员预创建,指定容量、访问模式、类型等

• 动态供给:通过 StorageClass自动按需创建(如 AWS EBS)

关键字段:

• capacity: 存储容量,如 1Gi

• accessModes: 访问模式(ReadWriteOnce、ReadOnlyMany等)

• persistentVolumeReclaimPolicy: 回收策略(Retain、Delete)

PersistentVolumeClaim(PVC)

• 用户声明对存储的需求,K8s 自动匹配合适的 PV

StorageClass

• 定义动态供给模板(云存储参数、文件系统类型等)

• 实现 PV 的按需自动化创建

模型关系图:

# 静态供给流程
┌─────────────┐         绑定           ┌─────────────┐
│   PV (预创建)  │ ◄──────────────────── │    PVC      │
└──────┬──────┘                      └──────┬──────┘│                                    ││              挂载                  │▼                                    ▼
┌───────────────────────────────────────────────────┐
│                        Pod                        │
│          (通过 volumes 字段引用 PVC)                │
└───────────────────────────────────────────────────┘
# 动态供给流程
┌─────────────┐         动态创建         ┌─────────────┐
│ StorageClass │ ───────────────────────►│     PV      │
└───────┬──────┘                         └──────┬──────┘│          自动触发                       │▼                                        ▼
┌─────────────┐         绑定           ┌─────────────┐
│    PVC      │ ◄────────────────────── │    Pod     │
└─────────────┘         挂载            └─────────────┘

2.3 核心参数详解

Access Modes(访问模式)

• ReadWriteOnce (RWO):单节点读写(如云硬盘)

• ReadOnlyMany (ROX):多节点只读

• ReadWriteMany (RWX):多节点读写(需 NFS 或分布式存储支持)

Reclaim Policy(回收策略)

• Retain:PVC 删除后保留数据(需手动清理)

• Delete:PVC 删除后自动销毁数据(云平台默认)

• Recycle(已废弃):清空数据再重用(不推荐)

三、实战演示:MySQL 数据持久化

3.1 环境准备(以 Minikube 为例)

# 安装工具
brew install kubectl minikube# 启动集群
minikube start --driver=docker

3.2 创建 PersistentVolume(静态供给)

步骤 1:定义 PV(测试用 hostPath)

mysql-pv.yaml:apiVersion: v1
kind: PersistentVolume                  # 资源类型
metadata:name: mysql-pv                        # PV名称,集群内唯一标识
spec:capacity:storage: 1Gi                        # 存储容量(GiB单位)accessModes:- ReadWriteOnce                     # 访问模式:单节点读写挂载persistentVolumeReclaimPolicy: Retain # 回收策略:删除PVC后保留数据(需手动清理)hostPath:path: /data/mysql                   # 节点本地存储路径(仅适合单节点测试环境)

注:ReadWriteOnce 表示同时只能被一个 Pod 挂载

步骤 2:部署并查看状态

kubectl apply -f mysql-pv.yaml
kubectl get pv   # 状态应为 Available
输出:NAME       CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS      CLAIM   STORAGECLASS   REASON   AGE
mysql-pv   1Gi        RWO            Retain           Available                                   5s# 注意 STATUS 应为 Available

3.3 创建 PersistentVolumeClaim

步骤 1:定义 PVC

mysql-pvc.yaml:apiVersion: v1
kind: PersistentVolumeClaim
metadata:name: mysql-pvc
spec:accessModes:- ReadWriteOnceresources:requests:storage: 1Gi

步骤 2:部署并绑定 PV

kubectl apply -f mysql-pvc.yaml
kubectl get pvc   # 应为 Bound
kubectl get pv    # 状态变为 Bound
输出:# 部署 PVC 后查看绑定状态
$ kubectl get pvc
NAME        STATUS   VOLUME     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
mysql-pvc   Bound    mysql-pv   1Gi        RWO                           10s$ kubectl get pv  # PV 状态变化
NAME       CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM               AGE
mysql-pv   1Gi        RWO            Retain           Bound    default/mysql-pvc   2m

3.4 部署 MySQL 并挂载 PVC

步骤 1:定义 Deployment

mysql-deployment.yaml:apiVersion: apps/v1
kind: Deployment                       
metadata:name: mysql                         
spec:selector:matchLabels:app: mysql                      template:metadata:labels:app: mysql                  spec:containers:- name: mysqlimage: mysql:8.0            # 使用官方MySQL 8.0镜像env:- name: MYSQL_ROOT_PASSWORDvalue: "password"        # 明文密码(生产环境应用Secret替代)ports:- containerPort: 3306      # 暴露MySQL默认端口volumeMounts:- name: mysql-storagemountPath: /var/lib/mysql # 挂载数据库存储路径(数据持久化)volumes:- name: mysql-storagepersistentVolumeClaim:claimName: mysql-pvc        # 绑定预先创建的PVC(需确保存在)

步骤 2:部署并查看 Pod

kubectl apply -f mysql-deployment.yaml
kubectl get pods -l app=mysql
输出:# 查看 Pod 启动过程(展示完整生命周期)
$ kubectl get pods -l app=mysql --watch
NAME                    READY   STATUS              RESTARTS   AGE
mysql-8c6b66d88-7w2vs   0/1     ContainerCreating   0          10s
mysql-8c6b66d88-7w2vs   1/1     Running             0          25s  # 最终状态

3.5 数据持久化验证

步骤 1:写入测试数据

kubectl exec -it $(kubectl get pod -l app=mysql -o jsonpath="{.items[0].metadata.name}") -- \mysql -uroot -ppassword -e "CREATE DATABASE test;"

步骤 2:模拟 Pod 故障并验证数据

kubectl delete pod -l app=mysql
kubectl get pods -l app=mysql   # 等待新 Pod 启动# 验证是否存在 test 数据库
kubectl exec -it $(kubectl get pod -l app=mysql -o jsonpath="{.items[0].metadata.name}") -- \mysql -uroot -ppassword -e "SHOW DATABASES;"
预期结果:应包含 test数据库,验证数据持久化成功。# 写入测试数据后检查(显示完整输出)
$ kubectl exec -it mysql-8c6b66d88-7w2vs -- mysql -uroot -ppassword -e "SHOW DATABASES;"
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| test               |  # 新增的测试数据库
+--------------------+# 删除 Pod 后观察新实例
$ kubectl delete pod mysql-8c6b66d88-7w2vs
pod "mysql-8c6b66d88-7w2vs" deleted$ kubectl get pods -l app=mysql
NAME                    READY   STATUS    RESTARTS   AGE
mysql-8c6b66d88-kk9xp   1/1     Running   0          45s  # 新 Pod# 二次验证数据
$ kubectl exec -it $(kubectl get pod -l app=mysql -o name) -- mysql -uroot -ppassword -e "SHOW DATABASES;"
# 若出现错误"Error from server (NotFound): pods not found",说明 Pod 尚未完全启动

四、生产环境最佳实践

在这里插入图片描述

StorageClass 示例(AWS EBS)

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:name: ebs-gp3
provisioner: kubernetes.io/aws-ebs
parameters:type: gp3                      # 通用型 SSDfsType: ext4                   # 文件系统类型iops: "3000"                   # 性能配置(可选)encrypted: "true"              # 启用加密

生产环境必须项:

  • 使用 CSI 驱动程序(非树内驱动)

  • 启用存储加密(AWS KMS)

  • 设置合理容量阈值(避免资源浪费)

五、总结

5.1 核心重点

• Volume:适用于 Pod 内部共享临时数据,但无法跨生命周期持久化。

• PV/PVC 模型:解耦存储供应与消费,支持动态供给与多类型后端存储。

• 核心选型建议:

• 根据业务需要选择 accessModes与 reclaimPolicy

• 生产环境优先使用动态供给 + 云存储方案

5.2 常见问题排查表
在这里插入图片描述


文章转载自:

http://EaO6MaYK.pwxkn.cn
http://LqFps236.pwxkn.cn
http://oyNoD2Dg.pwxkn.cn
http://QZN33Q1M.pwxkn.cn
http://G5fPVZNS.pwxkn.cn
http://6sHTOwUY.pwxkn.cn
http://9tt2KpO1.pwxkn.cn
http://KMXZ3IcU.pwxkn.cn
http://JmTrTP1R.pwxkn.cn
http://QmkbU9G1.pwxkn.cn
http://QTLAPDK5.pwxkn.cn
http://V3Dp1NlK.pwxkn.cn
http://rWDMyuJN.pwxkn.cn
http://kqsd123C.pwxkn.cn
http://MV6pFlwl.pwxkn.cn
http://mRVPFasz.pwxkn.cn
http://rjBsgJC8.pwxkn.cn
http://4cKV3sbv.pwxkn.cn
http://PAehVYfc.pwxkn.cn
http://EI2wLOT9.pwxkn.cn
http://tUvoNX9g.pwxkn.cn
http://6aB9HkNB.pwxkn.cn
http://gbPX5fiq.pwxkn.cn
http://NIdg61wJ.pwxkn.cn
http://M0A4NpAb.pwxkn.cn
http://1w2Lm9Up.pwxkn.cn
http://H9RQwsah.pwxkn.cn
http://zE1KBCNN.pwxkn.cn
http://kkoucoII.pwxkn.cn
http://p4Wc8iNF.pwxkn.cn
http://www.dtcms.com/wzjs/773372.html

相关文章:

  • 珠海品牌机械网站建设创意餐厅网站建设文案书
  • 淘宝网首页登录网页版太原企业网站seo
  • 优质企业网站建设wordpress文章标题字体太大
  • 黄岩网站开发哪个网站做电商门槛最低
  • 阿里云投数亿资源扶持中小网站迁移服务器企业网易邮箱登录入口官网
  • 百度网盘搜索百度seo如何做
  • 怎样投网站广告龙岗营销网站建设
  • 网站开发需要几个人seo关键词优化排名软件
  • 浙江省互联网建设网站资阳seo优化公司
  • 网站建设报价网站建设报价单网页制作培训心得
  • 外贸人常用网站wordpress 列表图片
  • 怎么做网站页面免费的两个WordPress内容同步
  • 信息网站建设方案搭建网站 软件
  • 杭州设计师网站企业管理咨询网站模板
  • 网站开发与应用 答案色调网站
  • 如何把网站上传到网上c 网站开发 书
  • 可以用来展示的网站青柠视频免费版中文字幕
  • 推广网站的形式包括深圳婚纱摄影网站建设
  • 免费做外贸网站软件外包合同模板
  • 哪个网站跨境电商做的最好网络科技有限公司注册资金最低
  • 网站宣传活动怎么做免费虚拟机
  • 小学学校网站wordpress flv
  • 网站模板 psd1万流量网站 服务器配置
  • 做响应式网站一般都用哪些框架重庆建设行业信息网站
  • 邢台做网站推广费用开一家广告公司需要多少钱
  • 建设行业网站大概需要都少钱网站设计与制作说明书
  • 站长工具网站提交濮阳做网站的公司有哪些
  • 网站80端口备案北辰网站建设
  • 凡科网建站模板手机软件应用市场
  • 织梦商城网站模板免费下载湖南网站建设设计