首页 > 其他分享 >数据共享

数据共享

时间:2025-01-17 11:45:52浏览次数:1  
标签:oldboyedu name 数据共享 nfs xiuxian Pod data

Pod数据持久化

1. emptyDir 存储卷

应用场景
emptyDir 主要用于同一个 Pod 内的多个容器之间的数据共享。典型应用包括日志存储与采集。

特点

  • 生命周期emptyDir 存储卷的生命周期与 Pod 绑定。如果删除 Pod,数据会丢失;如果只是删除其中的某个容器,数据仍然会保留。
  • 容器间数据共享:在同一个 Pod 内,不同容器可以通过挂载相同的 emptyDir 存储卷进行数据共享。

资源清单示例

apiVersion: v1
kind: Pod
metadata:
  name: xiuxian-emptydir-002
spec:
  nodeName: worker232
  volumes:
    - name: oldboyedu-linux92
      emptyDir: {}
    - name: oldboyedu-xixi
      emptyDir: {}
    - name: oldboyedu-haha
      emptyDir: {}
  containers:
    - image: harbor.oldboyedu.com/oldboyedu-web/xiuxian:v2
      name: xiuxian
      volumeMounts:
        - name: oldboyedu-linux92
          mountPath: /xixi
    - image: harbor.oldboyedu.com/oldboyedu-linux/alpine:3.20.2
      name: alpine
      volumeMounts:
        - name: oldboyedu-linux92
          mountPath: /haha

测试案例

  1. 创建并应用资源清单:
kubectl apply -f 06-pods-volume-emptyDir.yaml
  1. 验证容器中的数据共享:
kubectl exec xiuxian-emptydir-002 -c xiuxian -- ls -l /xixi
kubectl exec xiuxian-emptydir-002 -c alpine -- ls -l /haha
  1. 测试容器间的数据共享:
kubectl exec xiuxian-emptydir-002 -c alpine -it -- sh
cat /haha/hosts

2. hostPath 存储卷

应用场景
用于 Pod 内容器需要访问宿主机上的特定目录,通常在容器需要持久化数据或访问宿主机文件时使用。

特点

  • 数据持久性:无论 Pod 或容器是否删除,宿主机上的数据都不会丢失。
  • 节点共享:不同 Pod 可以在同一节点上共享宿主机的目录,但无法跨节点共享数据。

资源清单示例

apiVersion: v1
kind: Pod
metadata:
  name: xiuxian-hostpath-es
  labels:
    apps: es7
spec:
  nodeName: worker232
  volumes:
    - name: data
      hostPath:
        path: /oldboyedu/data/elasticsearch
  containers:
    - image: harbor.oldboyedu.com/oldboyedu-elasticstack/elasticsearch:7.17.16
      name: xiuxian
      env:
        - name: discovery.type
          value: single-node
        - name: SCHOOL
          value: oldboyedu
        - name: Class
          value: Linux92
      volumeMounts:
        - name: data
          mountPath: /usr/share/elasticsearch/data

测试案例

  1. 上传镜像并推送到 Harbor:
docker load -i oldboyedu-elasticsearch-7.17.16.tar.gz
docker tag harbor.oldboyedu.com/elasticstack-project/elasticsearch:7.17.16 harbor.oldboyedu.com/oldboyedu-elasticstack/elasticsearch:7.17.16
docker push harbor.oldboyedu.com/oldboyedu-elasticstack/elasticsearch:7.17.16
  1. 创建目录并授权:
mkdir -pv /oldboyedu/data/elasticsearch
chmod +777 /oldboyedu/data/elasticsearch
  1. 创建并应用资源清单:
kubectl apply -f 07-pods-volume-hostPath.yaml
  1. 验证服务:
curl 10.100.1.28:9200
curl -X PUT 10.100.1.28:9200/oldboyedu-linux92
curl -X PUT 10.100.1.28:9200/oldboyedu-xixi
curl -X PUT 10.100.1.28:9200/oldboyedu-haha
  1. 删除并重新创建 Pod:
kubectl delete -f 07-pods-volume-hostPath.yaml
kubectl apply -f 07-pods-volume-hostPath.yaml
kubectl get pods -o wide -l apps

3. NFS 存储卷

应用场景
在多个节点上共享数据,适用于跨多个 Pod 和节点的数据持久化。

步骤

  1. 在各个节点上安装 NFS:
apt -y install nfs-kernel-server
  1. 配置 NFS 服务端:
mkdir -pv /oldboyedu/data/nfs-server
tail -1 /etc/exports
/oldboyedu/data/nfs-server *(rw,no_root_squash)
systemctl restart nfs-server
  1. 编写资源清单:
apiVersion: v1
kind: Pod
metadata:
  name: xiuxian-nfs-001
spec:
  nodeName: worker232
  volumes:
    - name: data
      nfs:
        server: master231
        path: /oldboyedu/data/nfs-server
  containers:
    - image: harbor.oldboyedu.com/oldboyedu-web/xiuxian:v2
      name: xiuxian
      volumeMounts:
        - name: data
          mountPath: /xixi
  1. 验证:
kubectl apply -f 09-pods-volumes-nfs.yaml
kubectl get pods -o wide -l apps=es7 --show-labels
curl 10.100.1.28:9200

总结:

  • emptyDir 适用于同一 Pod 内多个容器间共享数据,数据随 Pod 生命周期。
  • hostPath 用于容器访问宿主机上的目录,适合持久化数据,且不受容器生命周期影响。
  • NFS 是一种跨节点共享数据的解决方案,适用于多个节点上的 Pod 共享数据。

-这里的nfs数据共享有点片面,在后续的文章中,我将详细讲解一篇关于nfs数据持久化的文章,请大家多多支持哦~~~

标签:oldboyedu,name,数据共享,nfs,xiuxian,Pod,data
From: https://www.cnblogs.com/leojazz/p/18676614

相关文章

  • 在 Blazor 和 ASP.NET Core 中使用依赖注入和Scoped 服务实现数据共享方法详解
        依赖注入(DependencyInjection,简称DI)是一种设计模式,用于将对象的依赖关系从对象内部解耦出来,由外部容器进行管理和提供。在Blazor和ASP.NETCore中,DI是内置的核心功能,它通过服务生命周期(Transient、Scoped、Singleton)来管理依赖项。依赖注入(DependencyInj......
  • EHOME视频平台EasyCVR矿山封闭局域网环境如何将内网视频数据共享到政务云?
    在探讨矿企智能化建设的进程中,一个关键议题便是如何在封闭局域网环境下,高效且安全地将内网的AI分析数据以及视频数据共享至政务云。这不仅是矿企提升安全生产水平、优化运营效率的重要途径,也是实现可持续发展目标不可或缺的一环。矿企智能化建设中的AI分析、视频监控与上云解决......
  • 数据共享(基础知识回顾)
    函数之间数据共享的方式有以下几种:1.全局变量和局部变量2.类的数据成员3.类的静态数据成员。静态数据成员存放的是类的所有对象的某个共同特征的数据,对于每个对象而言,该数据都是相同的,在内存中只存在一份。这与类的一般数据成员不同,一般数据成员会在每个对象中都有一个拷贝,......
  • 计算机毕设选题推荐-基于python的校园教学数据共享平台
    ......
  • 极速数据共享,超越想象——反射内存卡,您的实时通信卓越之选
    在当今数字化的快节奏世界中,数据的快速、准确和实时传输是成功的关键。反射内存卡,作为一种尖端的数据传输解决方案,正引领着行业的变革,为您开启高速数据共享的新篇章。超高速传输,微秒级延迟反射内存卡以其令人惊叹的传输速度脱颖而出。在瞬息万变的业务环境中,每一刻都至关重要。......
  • 数据共享(浅拷贝)与数据独立(深拷贝)
    在FFmpeg中,数据共享和数据独立的区别在于浅拷贝和深拷贝的使用。让我们详细探讨这两个概念及其在FFmpeg内存模型中的实现。数据共享(浅拷贝)浅拷贝是指在拷贝对象时,只拷贝对象的引用,而不拷贝实际的数据内容。对于FFmpeg中的AVPacket来说,浅拷贝意味着两个Packet共享同一个数据缓冲......
  • springboot智慧医疗数据共享和个性化推荐系统-计算机毕业设计源码05875
    目 录摘要1绪论1.1研究背景1.2 研究意义1.3论文结构与章节安排2 智慧医疗数据共享和个性化推荐系统分析2.1可行性分析2.2系统流程分析2.2.1数据增加流程2.2.2数据修改流程2.2.3数据删除流程2.3 系统功能分析2.3.1功能性分析2.4 系......
  • 组件之间的数据共享
    文章目录1.知识回顾2.使用方法3.示例代码4.经验分享我们在上一章回中介绍了组件之间共享数据相关的内容,本章回中将继续介绍该内容.闲话休提,让我们一起TalkFlutter吧。1.知识回顾我们在前面章回中介绍了全局共享数据相关的内容,当时介绍了获取共享数据的三种......
  • 跨行业数据资产共享与协同:构建一体化数据共享平台,解锁数据资产潜力,促进多行业数据流通
    一、引言随着信息技术的飞速发展,数据已成为推动社会进步和经济发展的关键要素。然而,在传统行业领域,数据往往被限制在各自的“孤岛”中,难以实现跨行业的流通与共享。这不仅限制了数据的价值发挥,也阻碍了行业的创新与发展。因此,构建一体化数据共享平台,实现跨行业数据资产共享与......
  • Redis在微服务架构中的角色:服务间通信与数据共享
    I.引言A.介绍微服务架构的概念和特点 微服务架构是一种设计模式,它将一个大型的单体应用分解成一组小的服务,每个服务都运行在其自身的进程中,独立地进行部署和扩展。这些服务之间通过轻量级的通信机制(如HTTPRESTfulAPI)进行交互,每个服务都围绕一个特定的业务功能进行组......