Kubernetes 学习12 kubernetes 存储卷

一、概述

  1、我们此前讲过根据应用本身是否需要持久存储数据以及某一次请求和之前的请求是否有联系,可以分为四类应用

    a、有状态,要存储

    b、有状态,无持久存储

    c、无状态,要存储

    d、无状态,无持久存储

  其中,大多数和数据存储服务相关的应用和有状态应用几乎都是需要持久存储数据的。在docker中说过,容器有生命周期,为了使容器将来终结以后可以把其删除,甚至是编排到其它节点上去运行,意味着我们数据不能放在容器本地,不能放在容器自己的名称空间中。注意这是两套逻辑,以k8s为例,pod运行时应该是运行在某个节点上的,只要不出故障他就一直在这个节点上运行,节点故障它才会重新调度,只要节点不故障他就不会走,就一直重启重启,因此只要pod故障被删除,那么这个pod的生命周期也就结束了,其上面的数据也就随着结束一起消失,为了突破pod生命周期受限的现状,我们需要在pod自由文件系统之外的地方来存放数据。我们使用存储卷,相当于把pod内部某一目录与我们节点上某一目录建立关联关系,随后在容器内该目录存放的数据都被存放在节点上了,所以我们删除容器再重建容器只要卷不受影响那么数据都是没问题的,在一定程度上拥有了持久功能,但是在k8s中当pod生命周期结束后下一次启动有可能不会在相同的节点上,因此我们需要使用脱离节点而存在的存储设备,共享存储设备。为此,我们k8s就提供了能应付各种类型的存储卷来让我们使用或非持久,或半持久或一直持久的功能。

  2、对k8s中的pod我们知道有这样一个特定,对同一个pod内的各个容器可共享访问同一组卷,因为对k8s来讲,存储卷不属于容器而属于pod,所以如果两个容器都挂载了就相当于两个容器共享数据了,而pod为什么能有存储卷和名称空间呢,我们此前讲过,pod底层有个基础容器但是默认不启动而且是靠一个基础镜像来创建的

原文地址:https://www.cnblogs.com/Presley-lpc/p/11038210.html

时间: 2024-10-08 02:39:31

Kubernetes 学习12 kubernetes 存储卷的相关文章

kubernetes学习01—kubernetes介绍

一.简介 1.Kubernetes代码托管在GitHub上:https://github.com/kubernetes/kubernetes/. 2.Kubernetes是一个开源的,容器集群管理系统,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制.通过Kubernetes你可以: 快速部署应用 快速扩展应用 无缝对接新的应用功能 节省资源,优化硬件资源的使用 3.Kubernetes一个核心的特点就

Kubernetes学习之Kubernetes架构

架构 Kubernetes历史 原文地址:https://www.cnblogs.com/twodoge/p/10296034.html

Kubernetes 学习21 kubernetes高级调度方式

一.概述 1.上集讲了Scheduler在实现调度时分三步实现调度过程.首先是预选,即从所有节点中选择基本符合选择条件的节点.而后在基本符合条件的节点中使用优选函数计算他们各自的得分并加以比较.并从最高得分的节点中随机选择出一个运行pod的节点,这就是我们的控制平面中scheduler所实现负责的主要功用.同时如果在某些调度场景中我们期望能够通过自己的预设去影响他的一些调度方式,比如就是把我们的pod运行在某些特定的节点之上的时候可以通过自己的预设操作去影响他的预选和优选过程从而使得调度操作能符

Kubernetes 学习11 kubernetes ingress及ingress controller

一.上集回顾 1.Service 3种模型:userspace,iptables,ipvs 2.Service类型 ClusterIP,NodePort NodePort:client -> NodeIP:NodePort -> ClusterIP:ServicePort -> PodIP:containerPort LoadBalancer ExternelName No ClusterIP: Hedless Service serviceName -> PodIP 二.ingr

Kubernetes学习之路(十六)之存储卷

一.存储卷的概念和类型 为了保证数据的持久性,必须保证数据在外部存储在docker容器中,为了实现数据的持久性存储,在宿主机和容器内做映射,可以保证在容器的生命周期结束,数据依旧可以实现持久性存储.但是在k8s中,由于pod分布在各个不同的节点之上,并不能实现不同节点之间持久性数据的共享,并且,在节点故障时,可能会导致数据的永久性丢失.为此,k8s就引入了外部存储卷的功能. k8s的存储卷类型: [[email protected] ~]# kubectl explain pod.spec.vo

Kubernetes之存储卷

存储卷概述 容器磁盘上的文件的生命周期是短暂的,这就使得在容器中运行重要应用时会出现一些问题.首先,当容器崩溃时,kubelet 会重启它,但是容器中的文件将丢失--容器以干净的状态(镜像最初的状态)重新启动.其次,在 Pod 中同时运行多个容器时,这些容器之间通常需要共享文件.Kubernetes 中的 Volume 抽象就很好的解决了这些问题.在原docker环境中也有存储卷的概念,但docker环境的存储卷调度在宿主机上的目录,当docker重新创建的时候存储卷还会挂载统一宿主机上,但我们

Kubernetes 存储卷管理 PV&PVC(十)

为了持久化保存容器的数据,可以使用 Kubernetes Volume. Volume 的生命周期独立于容器,Pod 中的容器可能被销毁和重建,但 Volume 会被保留. 本质上,Kubernetes Volume 是一个目录,这一点与 Docker Volume 类似.当 Volume 被 mount 到 Pod,Pod 中的所有容器都可以访问这个 Volume.Kubernetes Volume 也支持多种 backend 类型,包括 emptyDir.hostPath.GCE Persi

Kubernetes之(十二)存储卷

目录 Kubernetes之(十二)存储卷 简介 emptyDir存储卷 hostPath存储卷 nfs共享存储卷 PV和PVC NFS使用PV和PVC 配置NFS存储 定义PV 定义PVC 查看验证 测试访问 StorageClass Kubernetes之(十二)存储卷 简介 为了保证数据的持久性,必须保证数据在外部存储在docker容器中,为了实现数据的持久性存储,在宿主机和容器内做映射,可以保证在容器的生命周期结束,数据依旧可以实现持久性存储.但是在k8s中,由于pod分布在各个不同的节

Kubernetes 学习总结(1) Synopsis

同类产品docker compose.docker swarm.docker machine.mesos.marathon Kubernetes 项目地址https://github.com/kubernetes/kubernetes/releases Schema? 核心组件:1) API server :接收.分析用户请求,并处理用户请求2) Scheduler :调度资源(通过初选.优选.选定三个阶段调度创建container的请求)3) Controller manager 控制器管理器