当前位置: 首页 > 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/96587.html

相关文章:

  • 做视频网站 带宽计算网站怎么制作教程
  • 北京设计公司排行北京seo优化推广
  • 贸易公司寮步网站建设哪家好高级搜索引擎
  • 郑州怎么做外贸公司网站百度竞价系统
  • wordpress暴力西安seo外包行者seo
  • 个人网站做淘宝客会怎样企业宣传册
  • 在线解压缩网站网络seo排名
  • 手机传奇手游发布网站bt兔子磁力搜索引擎最新版
  • 网站备案查询是什么意思站长工具查询入口
  • 在线建设网站制作seo是哪个国家
  • 网站认证是什么电脑培训学校哪家最好
  • 城乡与住房建设厅网站首页怎么安装百度
  • 凯胜东营小程序开发沈阳seo推广
  • 做动态网站后台有单独的页面么北京网站优化企业
  • 福州做公司网站杭州排名优化软件
  • 做网站时怎样把文字放在中间长沙网站推广公司排名
  • 做蛋糕比较火的网站北京网站优化公司
  • 建设银行河南分行网站软件工程培训机构哪家好
  • 做管理信息的网站怎么做公司网站
  • 做外贸网站用哪些小语种青岛seo服务公司
  • 温岭手机网站建设百姓网推广电话
  • 怎么用webstorm做网站宁波厂家关键词优化
  • 汕头整站优化关键词推广软件
  • 湛江专业网站建设怎么做爱站小工具圣经
  • 黄冈商城网站建设百度提问首页
  • 电脑自己做网站可以吗国家高新技术企业查询
  • 图片网站模板上海培训机构
  • 专业提供网站建设服务包括哪些windows优化大师自动下载
  • 网络初始网站网络营销专业毕业论文
  • 杭州哪家公司可以做网站百度查重入口