首页 > 其他分享 >在K8S中,业务Pod数据如何存储?

在K8S中,业务Pod数据如何存储?

时间:2024-03-02 19:00:10浏览次数:13  
标签:ConfigMap 存储 name Secret Pod K8S example

在Kubernetes(K8S)中,业务Pod的数据存储及具体方法通常涉及多种存储选项,这些选项根据业务需求和场景的不同而有所不同。以下是关于业务Pod数据如何存储及其具体方法的详细说明:

1. 临时存储(EmptyDir)
  • 描述:EmptyDir是最简单的存储类型,它会在Pod被分配到Node时创建一个空目录,并挂载到Pod中的容器。这个目录是临时的,意味着当Pod被删除时,该目录下的数据也会被永久删除。
  • 用途:适用于需要在Pod内部容器间共享临时数据的场景,例如缓存数据。
  • 配置示例
volumes:  
- name: example-emptydir-volume  
  emptyDir: {}
2. 半持久化存储(HostPath)
  • 描述:HostPath允许你将Node的文件系统目录或文件挂载到Pod中。由于Pod可能会在不同的Node上漂移,因此这种存储方式不是完全持久的。
  • 用途:适用于需要访问宿主机文件系统的场景,例如挂载配置文件或日志文件。
  • 配置示例
volumes:  
- name: example-hostpath-volume  
  hostPath:  
    path: /data  
    type: Directory
3. 持久化存储(PersistentVolume 和 PersistentVolumeClaim)
  • 描述:PV是集群中的一块存储,它是持久化的,并且独立于使用它的Pod的生命周期。PVC是用户对存储的请求,Pod通过PVC来使用PV。

  • 用途:适用于需要持久化存储数据的场景,例如数据库数据、日志文件等。

  • 配置示例

    • 创建PV:
    apiVersion: v1  
    kind: PersistentVolume  
    metadata:  
      name: example-pv  
    spec:  
      capacity:  
        storage: 1Gi  
      volumeMode: Filesystem  
      accessModes:  
        - ReadWriteOnce  
      persistentVolumeReclaimPolicy: Retain  
      storageClassName: example-storage-class  
      hostPath:  
        path: "/data/example-pv"`
    
    • 创建PVC:
    apiVersion: v1  
    kind: PersistentVolumeClaim  
    metadata:  
      name: example-pvc  
    spec:  
      storageClassName: example-storage-class  
      accessModes:  
        - ReadWriteOnce  
      resources:  
        requests:  
          storage: 1Gi`
    
    • 在Pod中使用PVC:
    volumes:  
    - name: example-pv-storage  
      persistentVolumeClaim:  
        claimName: example-pvc`
    
4. 配置存储(ConfigMap 和 Secret)
  • 描述:ConfigMap用于存储配置数据,如环境变量、配置文件等。Secret用于存储敏感信息,如密码、密钥等。

  • 用途:适用于需要在Pod内部容器间共享配置或敏感信息的场景。

  • 配置示例

    • 创建ConfigMap:
    apiVersion: v1  
    kind: ConfigMap  
    metadata:  
      name: example-configmap  
    data:  
      key1: value1  
      key2: value2`
    
    • 在Pod中使用ConfigMap:
    volumes:  
    - name: example-configmap-volume  
      configMap:  
        name: example-configmap`
    
    • 创建Secret:
    apiVersion: v1  
    kind: Secret  
    metadata:  
      name: example-secret  
    type: Opaque  
    data:  
      key1: dmFsdWUx  
      key2: dmFsdWUy`
    
    • 在Pod中使用Secret:
    volumes:  
    - name: example-secret-volume  
      secret:  
        secretName: example-secret`
    

注意事项:

  • 选择合适的存储类型取决于业务需求和场景。
  • 考虑数据的安全性和可访问性,特别是当使用Secret时。
  • 根据Pod的生命周期和数据的持久性要求来选择存储类型。
  • 确保在Kubernetes集群中有足够的存储资源来满足PVC的请求。

综上所述,这些存储选项提供了在Kubernetes中存储业务Pod数据的灵活性和多样性。

标签:ConfigMap,存储,name,Secret,Pod,K8S,example
From: https://www.cnblogs.com/huangjiabobk/p/18049080

相关文章

  • k8s master不可以被调度,修改deploy配置让这个可以单独调度上去
    给两个节点添加标签,让pod调度上去,但是kubectldescribepod 发现报错了,因为master不可以被调度,kube002也是设置了污点禁止被调度了WarningFailedScheduling4m33s(x2over9m34s)default-scheduler0/4nodesareavailable:1node(s)haduntoleratedtaint{key:k......
  • 在K8S中,"lsof" 作用有哪些?
    在Kubernetes(K8s)中,虽然lsof命令不是专门为Kubernetes设计的工具,但它仍然可以在单个Pod或节点级别的Linux环境中提供重要信息。lsof(ListOpenFiles)命令主要用于列出系统当前打开的所有文件,这对于在Kubernetes环境中进行问题排查同样具有价值,尤其是在以下几个方面:查看Pod进......
  • Pod的优先级和抢占策略
    Pod优先级Pod优先级是一个用于指示Pod相对重要程度的整数值。优先级高的Pod在调度时会优先被考虑,并且在资源不足时,优先级较低的Pod可能会被驱逐以释放资源给优先级较高的Pod。Pod优先级的值范围是从0到1000000000,其中0是默认优先级,而大于1000000000的优先级值预留给系统级的关键P......
  • 共享存储服务nfs
    已知samba主要用于linux与windows之间共享文件夹那用于Linux之间进行文件共享则是用NFS服务(NetworkFileSystem)目的在于让不同的机器,不同的操作系统可以彼此分享各自的文件数据。NFS服务可以将远程Linux系统上的文件共享资源挂载到本地机器的目录上。企业生产集群为什么需要......
  • k8s
     如何查看该节点是否可以被调度要查看一个节点是否可以被调度,你可以使用Kubernetes的命令行工具kubectl来检查节点的状态、标签和可调度性。以下是一些步骤和命令,可以帮助你确认节点是否可以被调度:检查节点状态:使用kubectlgetnodes命令可以查看集群中所有节点的状态。节点......
  • 邻接矩阵 存储图
    存储图可以用邻接表和邻接矩阵以下代码来自https://www.acwing.com/blog/content/405///对于每个点k,开一个单链表,存储k所有可以走到的点。h[k]存储这个单链表的头结点inth[N],e[N],ne[N],idx,w[N];//添加一条边a->b,权重是wvoidadd(inta,intb,intw){e[id......
  • scrapy——分别存储在文本文件和mysql数据库中
    笔记如何将爬取到的数据一份存储到本地一份存储到数据库?-创建一个管道类-爬虫文件提交到的item指挥给管道文件中的第一个被执行的管道类接收-process_item方法中的returnitem表示将item提交给下一个管道类在pipelines类中加入MysqlPiplines类#Defineyour......
  • scrapy——基于管道持久化存储
    笔记-基于管道:-编码流程-数据解析-在item类中定义相关的属性-将解析的数据封装到item对象中-将item类型的对象提交给管道进行持久化存储-在管道类的process_item中要将其接收到的item对象中存储的数据进行持久化存储......
  • centos安装单机k8s
    为了在CentOS上搭建单机版的Kubernetes,您可以按照以下步骤进行操作:安装Docker:Kubernetes使用Docker作为容器运行时。您可以通过以下命令安装Docker:sudoyuminstalldocker-ysudosystemctlenabledockersudosystemctlstartdocker配置Kubernetes的yum仓库:执行以下命......
  • scrapy——终端持久化存储
    笔记-基于终端指令:-要求:只可以将parse方法的返回值存储到本地的文本文件中scrapycrawldou-o./douban.csv-注意:持久化存储的类型只可以是'json','jsonlines','jsonl','jl','csv','xml','marshal','pickle'这些......