`
lykops
  • 浏览: 86310 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

kubernetes资源类型--Volume

 
阅读更多

在Docker的设计实现中,容器中的数据是临时的,即当容器被销毁时,其中的数据将会丢失。如果需要持久化数据,需要使用Docker数据卷挂载宿主机上的文件或者目录到容器中。在K8S中,当Pod重建的时候,数据是会丢失的,K8S也是通过数据卷挂载来提供Pod数据的持久化的。K8S数据卷是对Docker数据卷的扩展,K8S数据卷是Pod级别的,可以用来实现Pod中容器的文件共享。

支持的类型

EmptyDir

HostPath

GCE PersistentDisk

AWS ElasticBlock Store

NFS

iSCSI

Flocker

GlusterFS

RBD

Git Repo

Secret

PersistentVolume Claim

Downward API

本地数据卷

EmptyDir、HostPath这两种类型的数据卷,只能用于本地文件系统。本地数据卷中的数据只会存在于一台机器上,所以当Pod发生迁移的时候,数据便会丢失。该类型Volume的用途是:Pod中容器间的文件共享、共享宿主机的文件系统

EmptyDir

如果Pod配置了EmpyDir数据卷,在Pod的生命周期内都会存在,当Pod被分配到Node上时,会在Node上创建EmptyDir数据卷,并挂载到Pod的容器中。只要Pod存在,EmpyDir数据卷都会存在(容器删除不会导致EmpyDir数据卷丟失数据),但是如果Pod的生命周期终结(Pod被删除),EmpyDir数据卷也会被删除,并且永久丢失。

EmpyDir数据卷非常适合实现Pod中容器的文件共享。Pod的设计提供了一个很好的容器组合的模型,容器之间各司其职,通过共享文件目录来完成交互,比如可以通过一个专职日志收集容器,在每个Pod中和业务容器中进行组合,来完成日志的收集和汇总。

HostPath

HostPath数据卷允许将容器宿主机上的文件系统挂载到Pod中。如果Pod需要使用宿主机上的某些文件,可以使用HostPath。

网络数据卷

K8S提供了很多类型的数据卷以集成第三方的存储系统,包括一些非常流行的分布式文件系统,也有在IaaS平台上提供的存储支持,这些存储系统都是分布式的,通过网络共享文件系统,因此我们称这一类数据卷为网络数据卷。

网络数据卷能够满足数据的持久化需求,Pod通过配置使用网络数据卷,每次Pod创建的时候都会将存储系统的远端文件目录挂载到容器中,数据卷中的数据将被永久保存,即使Pod被删除,只是除去挂载数据卷,数据卷中的数据仍然保存在存储系统中,且当新的Pod被创建时,仍是挂载同样的数据卷。网络数据卷包含以下几种:NFS、iSCISI、GlusterFS、RBD(Ceph Block Device)、Flocker、AWS Elastic Block Store、GCE Persistent Disk


信息数据卷

K8S中有一些数据卷,主要用来给容器传递配置信息,称之为信息数据卷,比如Secret(处理敏感配置信息,密码、Token等)、Downward API(通过环境变量的方式告诉容器Pod的信息)、Git Repo(将Git仓库下载到Pod中),都是将Pod的信息以文件形式保存,然后以数据卷方式挂载到容器中,容器通过读取文件获取相应的信息。

分享到:
评论

相关推荐

    kubernetes-server-linux-amd64.tar.gz

    Kubernetes提供了丰富的扩展机制,如自定义资源定义(CRD)、Operator模式、Webhooks等,允许开发者和管理员根据需要构建复杂的自动化流程和定制化功能。此外,Kubernetes社区还发展了一大批周边工具和服务,如Helm...

    kubernetes-in-action-master.zip

    4. **自定义资源和API扩展**:介绍如何通过CRD(Custom Resource Definition)和 Operator模式来自定义Kubernetes的资源类型,以适应特定的应用场景。 5. **监控和日志**:讲解如何集成Prometheus、Grafana等工具...

    kubernetes-basico-master.rar

    Volume是连接Pod和持久化存储的关键,如使用PersistentVolumeClaim(PVC)来动态请求存储资源。 通过深入研究“kubernetes-basico-master”的源码,你不仅能够掌握Kubernetes的基本操作,还能了解到如何利用K8s构建...

    kubernetes-server-linux-amd64-v1.19.15.tar.gz

    4. **存储增强**:支持更多类型的持久化存储,包括本地存储和云存储,为多种工作负载提供了更好的存储解决方案。 5. **监控与日志**:增强了内置的监控和日志收集功能,便于运维人员对集群健康状态进行实时监控。 ...

    kubernetes-rabbitmq-cluster:适用于kubernetes的可部署的Rabbitmq集群

    在项目"**kubernetes-rabbitmq-cluster-master**"中,包含了所有必要的Kubernetes资源定义,如Deployment、Service、PersistentVolumeClaim等,以及相关的配置文件。开发者可以根据自己的需求进行调整,例如更改存储...

    kubernetes-handbook-jimmysong-v1.4-20180903.pdf

    容器运行时接口(CRI)、容器网络接口(CNI)和容器存储接口(CSI)为Kubernetes提供了标准化的接口,允许与不同类型的容器运行时、网络和存储系统集成。 资源对象,如Nodes、Namespaces、Labels和Annotations,是...

    kubernetes-in-action.pdf.zip

    书中还会涵盖Kubernetes的扩展机制,包括自定义资源定义(CRDs)和Operator模式,它们使得Kubernetes能够支持更多的工作负载类型和复杂的应用场景。安全方面,Kubernetes的安全策略、Service Accounts和Role-Based ...

    kubernetes-in-action:来自 Kubernetes in Action 一书中的代码

    4. **存储管理**:Kubernetes 支持多种存储类型,包括本地存储、网络存储和云存储。代码示例可能涵盖 Persistent Volumes 和 Persistent Volume Claims 的使用,以持久化数据。 5. **滚动更新与回滚**:Deployments...

    certified-kubernetes-administrator-course:Kubernetes认证管理员-CKA课程

    4. **存储管理**:了解Persistent Volumes(PV)、Persistent Volume Claims(PVC)的概念,以及如何使用不同类型的存储类(StorageClass)为应用提供持久化存储。 5. **工作负载管理**:掌握Deployment、...

    Kubernetes指南-倪朋飞

    5. **Volume与持久化存储**:Kubernetes支持多种Volume类型,用于在Pod间共享数据或实现持久化存储。这对于需要在Pod重启后保持数据的应用至关重要。 6. **Horizontal Pod Autoscaler (HPA)**:HPA允许自动调整Pod...

    Kubernetes-Certified-Administrator:在线资源将帮助您准备参加CNCF CKA 2020“ Kubernetes认证管理员”认证考试。 随着时间的流逝,这不太可能是最新的完整列表-如果需要在此处添加一些内容,请提出拉取请求

    3. **网络与服务发现**:了解Kubernetes的网络模型,包括Service的类型(ClusterIP、NodePort、LoadBalancer)、Ingress和Network Policies,以及DNS解析。 4. **存储管理**:熟悉Persistent Volumes、Persistent ...

    Kubernetes资源清单模板

    Kubernetes支持多种资源类型,如工作负载类(Pod、ReplicaSet、ReplicationController、Deployment、StatefulSet、DaemonSet)、服务发现和负载均衡(Service、Ingress)、配置和存储(Volume、Persistent Volume、...

    4、Kubernetes - Persistent Volume(有StatefulSet的例子)1

    Persistent Volume(PV)是Kubernetes中的一种存储资源,由管理员设置,是集群的一部分。PV具有独立于使用PV的Pod的生命周期,包含存储实现的细节,如NFS、iSCSI或特定于云供应商的存储系统。 Persistent Volume ...

    kubernetes-zh中文手册

    - **CustomResourceDefinition**:允许用户自定义资源类型。 - **DaemonSet**:确保所有(或某些)节点上运行一个Pod的副本。 - **Deployment**:用于定义应用的部署方式,支持滚动更新和回滚。 - **Ingress**:提供...

    kubernetes-入门指南

    - persistent volumes (PV) 和 persistent volume claims (PVC):提供持久化存储,支持多种存储类型。 7. **监控与日志** - Metrics Server提供基础资源使用情况的度量。 - Kubernetes事件记录操作历史,方便...

    kubernetes基础入门

    - **Namespace**: Namespace用于隔离Kubernetes资源,可以实现多用户间的资源分配。 **1.4 Kubernetes101** 本节介绍Kubernetes的基本操作,包括安装Kubernetes环境、创建和管理Pod、Service等基本对象。 **1.5 ...

Global site tag (gtag.js) - Google Analytics