Docker Kubernetes Volume 本地数据卷

emptyDir

  • 当Pod分配到Node时,首先创建一个空卷,并挂载到Pod中的容器。
  • Pod中的容器可以读取和写入卷中的文件。
  • 当Pod从节点中删除emptyDir时,该数据也会被删除。
  • 注:适用于容器之间的数据共享。

hostPath

  • 一个hostPath卷挂载Node文件系统上的文件或目录到Pod中的容器。
  • 注:指定宿主级的数据目录挂载到容器中。

环境:

  • 系统:Centos 7.4 x64
  • Docker版本:18.09.0
  • Kubernetes版本:v1.8
  • 管理节点:192.168.1.79
  • 工作节点:192.168.1.78
  • 工作节点:192.168.1.77

创建emptydir实例

1、管理节点:创建yaml文件

vim emptydir.yaml

apiVersion: v1
kind: Pod
metadata:
name: test-pd
spec:
containers:
- image: nginx:1.12
name: test-container
volumeMounts:
- mountPath: /cache
name: cache-volume
volumes:
- name: cache-volume
emptyDir: {}
# api版本
apiVersion: v1
# 指定创建资源对象
kind: Pod
# 源数据、可以写name,命名空间,对象标签
metadata:
# 服务名称
name: test-pd
# 容器资源信息
spec:
# 容器管理
containers:
# 镜像名称
- image: nginx:1.12
# 容器名称
name: test-container
# 容器数据卷管理
volumeMounts:
# 容器内挂载目录
- mountPath: /cache
# 容器挂载数据名称
name: cache-volume
# 宿主数据卷管理
volumes:
# 创建数据卷名称
- name: cache-volume
# emptydir标准语法
emptyDir: {}

文件注解

2、管理节点:创建Pod

kubectl create -f emptydir.yaml

3、测试

命令:kubectl exec test-pd -it bash

root@test-pd:/# cd /cache/
root@test-pd:/cache# ls
root@test-pd:/cache#

测试挂载路径

命令:kubectl describe pods test-pd

    Mounts:
/cache from cache-volume (rw)
Conditions:
Type Status
Initialized True
Ready True
PodScheduled True
Volumes:
cache-volume:
Type: EmptyDir (a temporary directory that shares a pod's lifetime)
Medium:
QoS Class: BestEffort
Node-Selectors: <none>
Tolerations: <none>

查看容器挂载信息


创建hostPath实例

1、管理节点:创建yaml文件

apiVersion: v1
kind: Pod
metadata:
name: test-pd2
spec:
containers:
- image: nginx:1.12
name: test-container
volumeMounts:
- mountPath: /data
name: test-volume
volumes:
- name: test-volume
hostPath:
path: /etc/default
type: Directory
# api版本
apiVersion: v1
# 指定创建资源对象
kind: Pod
# 源数据、可以写name,命名空间,对象标签
metadata:
# 服务名称
name: test-pd2
# 容器资源信息
spec:
# 容器管理
containers:
# 镜像名称
- image: nginx:1.12
name: test-container
# 容器数据卷管理
volumeMounts:
# 容器挂载目录
- mountPath: /data
# 容器挂载数据名称
name: test-volume
# 宿主数据卷管理
volumes:
# 创建数据卷名称
- name: test-volume
# 数据卷地址
hostPath:
# 挂载到容器的宿主目录
path: /etc/default
# 类型为目录文件
type: Directory

文件注解

2、管理节点:创建Pod

kubectl create -f hostpath.yaml

3、测试

命令:kubectl exec test-pd2 -it bash

root@test-pd2:/# cd /data
root@test-pd2:/data# ls
grub nss useradd yyy

Docker Kubernetes Volume 本地数据卷的更多相关文章

  1. Docker Kubernetes Volume 网络数据卷

    Docker Kubernetes Volume 网络数据卷 由于支持网络数据卷众多 今天只拿nfs作为案例. 支持网络数据卷 nfs iscsi glusterfs awsElasticBlockS ...

  2. Kubernetes Pod的数据卷Volume

    概述 由于容器本身是非持久化的,因此需要解决在容器中运行应用程序遇到的一些问题.首先,当容器崩溃时,kubelet将重新启动容器,但是写入容器的文件将会丢失,容器将会以镜像的初始状态重新开始:第二,在 ...

  3. Docker系列教程05-Docker数据卷(Data Volume)学习

    引言 在Docker中,容器的数据读写默认发生在容器的存储层,当容器被删除时其上的数据将会丢失.要想实现数据的持久化,需要将数据从宿主机挂载到容器中.目前Docker提供了三种方式将数据从宿主机挂载到 ...

  4. 基于Ceph分布式集群实现docker跨主机共享数据卷

    上篇文章介绍了如何使用docker部署Ceph分布式存储集群,本篇在此基础之上,介绍如何基于Ceph分布式存储集群实现docker跨主机共享数据卷. 1.环境准备 在原来的环境基础之上,新增一台cen ...

  5. Docker 使用指南 (四)—— 数据卷的使用

    一.数据卷的使用 有时候需要使用数据库,但是又希望它的数据能保存在本地,Docker中提供了数据卷可以供你方便的操作数据.数据卷是一个可供一个或多个容器使用的特殊目录,它绕过 UFS,可以提供很多有用 ...

  6. Docker容器数据管理(数据卷&数据卷容器)

    一:前言 在Docker容器的实际使用中,经常会遇到容器的数据持久化,容器之间的数据共享等问题,通常我们有两种解决方案: 1)数据卷(Data Volumes):就是将容器内数据直接映射到本地主机环境 ...

  7. 在docker容器下利用数据卷实现在删除了mysql容器或者镜像的情况下恢复数据

    当把mysql容器销毁,在新建一个容器,进行之前的数据恢复. 因为之前建立了数据卷,那么现在就可以利用这个数据卷进行数据恢复. 使用docker volume create volume_name命令 ...

  8. Docker:网络及数据卷设置 [四]

    一.Docker网络设置 默认情况下,docker会创建一个桥接网卡[docker 0],docker有2种映射方式,一种是随机映射,一种是指定映射 提示:生产场景一般不使用随机映射,但是随机映射的好 ...

  9. Docker 安装mysql容器数据卷挂载到宿主机

    环境 Centos:7 Docker: 17.05-ce Mysql: 5.7 1. Mysql外部数据和配置文件路径 msyql配置文件路径:/etc/mysql mysql数据卷路径:/var/l ...

随机推荐

  1. ES6 export

    一.默认导出(default export)// 1.一个模块只能有一个默认导出, 对于默认导出, 导入的名称可以和导出的名称不一致, 这对于导出匿名函数或类非常有用. <!---- page. ...

  2. [转]MapReduce:详解Shuffle过程

    Shuffle过程是MapReduce的核心,也被称为奇迹发生的地方.要想理解MapReduce, Shuffle是必须要了解的.我看过很多相关的资料,但每次看完都云里雾里的绕着,很难理清大致的逻辑, ...

  3. C++对windows控制面板的操作

    经常碰到程序无法卸载, 就老是骂微软搞的什么安装方式,安装好了不能卸载. 后来就打算研究一下windows是如何卸载程序的,一个程序安装完后留下了什么信息用于后面的卸载. 研究对象win7 64位, ...

  4. 剑指offer——python【第2题】替换空格

    题目描述 请实现一个函数,将一个字符串中的每个空格替换成“%20”. 例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy. 理解 很容易想到用pytho ...

  5. liunx系统问题总结

    1.Unable to locate package错误      解决办法 :输入命令 sudo apt-get update,进行软件的更新

  6. hadoop-1.0.1根目录下的jar包

  7. 探究Java中的锁

    一.锁的作用和比较 1.Lock接口及其类图 Lock接口:是Java提供的用来控制多个线程访问共享资源的方式. ReentrantLock:Lock的实现类,提供了可重入的加锁语义 ReadWrit ...

  8. 14.0-uC/OS-III挂起队列

    1.当任务等待信号量. mutex.事件标志组.消息队列时,该任务会被放入挂起队列. 挂起队列是一个OS_PEND_LIST类型的数据结构,它包含了三部分内容. .NbrEntries 挂起队列中有几 ...

  9. 深入浅出--UNIX多进程编程之fork()函数

    0前言 上周都在看都在学习unix环境高级编程的第八章--进程控制.也就是这一章中.让我理解了unix中一些进程的原理.以下我就主要依照进程中最重要的三个函数来进行解说.让大家通过阅读这一篇文章彻底明 ...

  10. 2.1 Html

    一.Head中常用标签 <head>元素出现在文档的开头部分,会书写一些和浏览器中的配置信息. <head>与</head>之间的内容不会在浏览器的文档窗口显示,但 ...