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

网站源码交易平台网页设计需要学什么

网站源码交易平台,网页设计需要学什么,在线智能识图,广东十大排名建筑公司目录 一、 Volume 的概念 二、 Volume 的类型 三、 通过 emptyDir 共享数据 1. EmptyDir 特性 2. EmptyDir 共享数据 四:使用 HostPath 挂载宿主机文件 1. HostPath 特性 2. 挂载宿主机时区文件 五、 挂载 NFS 至容器 1. 前置准备(所有 K8s 节…

目录

一、 Volume 的概念

二、 Volume 的类型

三、 通过 emptyDir 共享数据

1. EmptyDir 特性

2. EmptyDir 共享数据

四:使用 HostPath 挂载宿主机文件

1.  HostPath 特性

2. 挂载宿主机时区文件

五、 挂载 NFS 至容器

1. 前置准备(所有 K8s 节点 + NFS 服务器)

六、PersistentVolume(PV,持久卷)

1. 引入背景

2. 核心特性

3. 回收策略

4. 访问策略

5. 静态配置实践

七、PersistentVolumeClaim(PVC,持久卷声明)

1.  核心作用

2. PVC 配置与绑定

3. PVC 挂载到 Pod


一、 Volume 的概念

对于大多数项目而言,数据文件存储是常见需求(如用户头像、文件、数据库数据)。在 Kubernetes 中,应用部署的高扩展性和编排性,决定了容器内存储数据不可取(无法保障安全)。

应将有状态应用剥离为无状态:数据从应用中分离,存储到云端(如分布式存储、公有云 NAS 服务)。常见方案:

  • NFS(生产不建议,单点故障);
  • Ceph、GlusterFS、Minio 等分布式存储。

传统架构中,存储需提前在宿主机挂载,新增节点易忘挂载引发问题。Kubernetes 抽象出 Volume 概念,解决数据存储难题。

二、 Volume 的类型

Kubernetes 支持多种 Volume 类型:

  • 通用类型:RBDHostPath 等;
  • 独有类型:
    • ConfigMap:存储配置文件;
    • Secret:存储敏感数据;
    • EmptyDir:同 Pod 内多容器共享数据;
    • PersistentVolumeClaim:申请 PersistentVolume。

三、 通过 emptyDir 共享数据

1. EmptyDir 特性

  • 特殊 Volume:Pod 删除时,EmptyDir 数据也删除;
  • 场景:同 Pod 内容器共享数据(如 Filebeat 收集容器日志)。

2. EmptyDir 共享数据

(1) 编写 Deployment 文件

[root@k8s-master ~]# cat <<EOF>nginx-empty.yaml
apiVersion: apps/v1
kind: Deployment
metadata:labels:app: nginxname: nginxnamespace: default
spec:replicas: 1selector:matchLabels:app: nginxtemplate:metadata:labels:app: nginxspec:containers:- image: nginx:1.7.9imagePullPolicy: IfNotPresentname: nginx01volumeMounts:  # 容器1挂载:/opt → share-volume- mountPath: /optname: share-volume- image: nginx:1.7.9imagePullPolicy: IfNotPresentname: nginx02command: ["sh", "-c", "sleep 3600"]  # 保持容器运行volumeMounts:  # 容器2挂载:/mnt → share-volume- mountPath: /mntname: share-volumevolumes:  # 定义共享卷:share-volume 类型为 emptyDir- name: share-volumeemptyDir: {}  # 可添加 medium: Memory 使用 tmpfs(内存存储,节点重启数据清除)
EOF

(2) 部署与验证

  • 部署kubectl create -f nginx-empty.yaml
  • 查看 Podkubectl get pod(示例:nginx-6fffbd7c7b-jrw7f 2/2 Running

容器 1 写入数据

kubectl exec -ti <pod-name> -c nginx01 -- sh  
# 在 /opt 创建文件(如 touch /opt/test.txt)

容器 2 验证共享

kubectl exec -ti <pod-name> -c nginx02 -- sh  
# 查看 /mnt 下是否有 test.txt
  • 删除 Podkubectl delete -f nginx-empty.yaml

四:使用 HostPath 挂载宿主机文件

1.  HostPath 特性

将宿主机文件 / 目录挂载到 Pod,实现 Pod 与宿主机数据共享(如挂载时区文件解决容器时间偏差)。

2. 挂载宿主机时区文件

(1) 编写 Deployment 文件

[root@k8s-master ~]# cat <<EOF>nginx-hostPath.yaml
apiVersion: apps/v1
kind: Deployment
metadata:labels:app: nginxname: nginxnamespace: default
spec:replicas: 1selector:matchLabels:app: nginxtemplate:metadata:labels:app: nginxspec:containers:- image: nginx:1.7.9imagePullPolicy: IfNotPresentname: nginxvolumeMounts:  # 容器内挂载:/etc/localtime → timezone-time- mountPath: /etc/localtimename: timezone-timevolumes:  # 定义 HostPath 卷:挂载宿主机 /etc/localtime- name: timezone-timehostPath:path: /etc/localtime  # 宿主机路径type: file  # 类型:文件必须存在
EOF

(2) 部署与验证

  • 部署kubectl create -f nginx-hostPath.yaml

验证时间

kubectl exec -ti <pod-name> -c nginx -- sh  
date  # 检查时区是否为 Asia/Shanghai

HostPath 类型说明

类型说明
DirectoryOrCreate路径不存在则创建空目录(权限 0755)
Directory路径必须是已存在的目录
FileOrCreate路径不存在则创建空文件(权限 0644)
File路径必须是已存在的文件
Socket/CharDevice/BlockDevice对应类型的设备必须存在

五、 挂载 NFS 至容器

1. 前置准备(所有 K8s 节点 + NFS 服务器)

  • 安装 NFS 工具yum -y install nfs-utils(所有节点);

NFS 服务器配置:

# 创建共享目录
mkdir /opt/wwwroot && echo "NFS Test" > /opt/wwwroot/index.html  
# 配置共享规则(/etc/exports)
echo "/opt/wwwroot 192.168.10.0/24(rw,sync,no_root_squash)" >> /etc/exports  
# 启动服务
systemctl start nfs && systemctl start rpcbind  

2.  编写 Deployment 文件(挂载 NFS)

[root@k8s-master ~]# cat <<EOF>nginx-nfsVolume.yaml
apiVersion: apps/v1
kind: Deployment
metadata:labels:app: nginxname: nginxnamespace: default
spec:replicas: 1selector:matchLabels:app: nginxtemplate:metadata:labels:app: nginxspec:containers:- image: nginx:1.7.9imagePullPolicy: IfNotPresentname: nginxvolumeMounts:  # 容器内挂载:/usr/share/nginx/html → nfs-volume- mountPath: /usr/share/nginx/htmlname: nfs-volumevolumes:  # 定义 NFS 卷- name: nfs-volumenfs:server: 192.168.10.101  # NFS 服务器IPpath: /opt/wwwroot      # NFS 共享目录
EOF

3. 部署与验证

  • 部署kubectl create -f nginx-nfsVolume.yaml
  • 查看 Podkubectl get pod(示例:nginx-fbd476c4c-zscq9 1/1 Running

验证挂载

kubectl exec -ti <pod-name> -c nginx -- bash  
cat /usr/share/nginx/html/index.html  # 应输出 "NFS Test"

六、PersistentVolume(PV,持久卷)

1. 引入背景

  • Volume 无法解决 数据回收、访问模式、单 Pod 挂载 等复杂需求,且非 K8s 管理员难以配置。
  • 引入 PV(管理员预配存储) 和 PVC(用户申请 PV),解耦存储管理与使用。

2. 核心特性

  • 生命周期独立:不受 Pod 影响,管理员可单独操作。
  • 支持存储:NFS、Ceph 等,可配置 访问模式、容量、回收策略
  • 提供方式:静态(预创建)、动态(依赖 StorageClass 自动创建)。

3. 回收策略

策略行为支持存储
Retain删除 PVC 后,PV 及数据保留,需手动回收。全类型
Recycle删除 PVC 后,执行 rm -rf 清理数据(已废弃,仅 NFS/HostPath 支持)。NFS、HostPath
Delete删除 PVC 时,自动删除 PV 及数据(动态 PV 默认策略)。云存储(如 AWS EBS)

4. 访问策略

策略说明存储限制
ReadWriteOnce(RWO)单节点读写通用
ReadOnlyMany(ROX)多节点只读通用
ReadWriteMany(RWX)多节点读写(块存储多不支持,如 Ceph 块)NFS、GlusterFS 等
ReadWriteOncePod(RWOP)单 Pod 读写(K8s 1.22+)-

5. 静态配置实践

(1) HostPath 类型 PV

所有 Node 创建目录:mkdir /mnt/data

编写 hostpath-pv.yaml

kind: PersistentVolume
apiVersion: v1
metadata:name: mypv-hostpath
spec:storageClassName: pv-hostpathcapacity: { storage: 10Gi }accessModes: [ReadWriteOnce]hostPath: { path: "/mnt/data" }

(2) NFS 类型 PV(依赖 NFS 服务)

编写 nfs-pv.yaml

apiVersion: v1
kind: PersistentVolume
metadata: { name: mypv-nfs }
spec:storageClassName: pv-nfscapacity: { storage: 5Gi }accessModes: [ReadWriteOnce]persistentVolumeReclaimPolicy: Recyclenfs:path: /opt/wwwrootserver: 192.168.10.101  # NFS 服务器 IP

创建 & 查看:kubectl create -f nfs-pv.yaml && kubectl get pv

七、PersistentVolumeClaim(PVC,持久卷声明)

1.  核心作用

  • 用户通过 PVC 声明 容量、访问模式、StorageClass,自动绑定匹配的 PV,无需关心存储细节。

2. PVC 配置与绑定

(1) HostPath PV 的 PVC

kind: PersistentVolumeClaim
apiVersion: v1
metadata: { name: mypvc-hostpath }
spec:storageClassName: pv-hostpath  # 与 PV 一致accessModes: [ReadWriteOnce]resources: { requests: { storage: 10Gi } }

创建 & 查看kubectl create -f pvc-hostpath.yaml && kubectl get pvc(状态为 Bound

(2) NFS PV 的 PVC

kind: PersistentVolumeClaim
apiVersion: v1
metadata: { name: mypvc-nfs }
spec:storageClassName: pv-nfs  # 与 PV 一致accessModes: [ReadWriteOnce]resources: { requests: { storage: 3Gi } }  # ≤ PV 容量(5Gi)

创建 & 查看kubectl create -f pvc-nfs.yaml && kubectl get pvc(状态为 Bound

3. PVC 挂载到 Pod

kind: Pod
apiVersion: v1
metadata: { name: hostpath-pv-pod }
spec:volumes:- name: pv-volumepersistentVolumeClaim: { claimName: mypvc-hostpath }  # 绑定 PVCcontainers:- name: test-containerimage: nginx:1.7.9volumeMounts:- mountPath: "/data"name: pv-volume

验证kubectl exec -ti hostpath-pv-pod -- ls /data

http://www.dtcms.com/wzjs/804164.html

相关文章:

  • 外贸网站模板 免费淄博网站建设优惠臻动传媒
  • 数码网站建设论文公司网页设计模板图片
  • php网站开发常用的插件个人中心页面设计html
  • 南阳建网站磐石市住房和城乡建设局网站
  • 北京定制网站开发公司网站形象
  • 建网站用html专业机票网站建设
  • 终身免费建站wordpress只显示文章标题摘要
  • 企业做网站做什么科目微信 分享网站开发
  • 如何给网站做防御免费装修设计效果图
  • 有哪些制作网站的公司吗wordpress域名重定义
  • 食品餐饮网站建设什么是最经典最常用的网站推广方式
  • 基于wordpress门户网站岳阳网站开发公司推荐
  • 兴文移动网站建设如何给网站添加音乐
  • 广安网站设计做网站多少
  • 网站建设客户沟通模块国家企业信用公示信息年报全国
  • 网站制作完成后为了王烨
  • 客户网站建设确认书网易企业邮箱怎么申请
  • 做网站百度关键排名天津网站建设营销
  • 快速优化网站排名搜索普陀区网站建设
  • 珠海网站制作策划仿网站建设教程视频
  • html网页设计代码作业网站淘宝客网站哪个好
  • 网站地图怎么设置德州市市政工程建设总公司网站
  • 注册域名怎么建设网站wordpress换域名换服务器
  • 马鞍山建设银行网站找网页模板的网站好
  • 国外域名注册商网站软件开发必备编程工具
  • 做塑料的网站网站网页设计费用
  • 网站建设 翰臣科技公司专注新乡网站建设
  • 有网站加金币的做弊器吗6百度域名是什么
  • 郑州做网站天强科技德米萨erp
  • 怎么让百度快速收录网站广州网站建设 乐云seo