Docker Kubernetes Volume 网络数据卷
Docker Kubernetes Volume 网络数据卷
由于支持网络数据卷众多 今天只拿nfs作为案例。
支持网络数据卷
- nfs
- iscsi
- glusterfs
- awsElasticBlockStore
- cephfs
- azureFileVolume
- azureDiskVolume
- vsphereVolume
- .....
环境:
- 系统:Centos 7.4 x64
- Docker版本:18.09.0
- Kubernetes版本:v1.8
- 管理节点:192.168.1.79
- 工作节点:192.168.1.78
- 工作节点:192.168.1.77
一、搭建NFS服务与客户端
1、管理节点:安装nfs服务端、配置nfs主配置文件、添加权限、启动
yum install nfs-utils -y
vim /etc/exports
# 添加目录给相应网段访问并添加读写权限
/data 192.168.1.0/24(insecure,rw,async,no_root_squash)
# 创建共享目录,添加权限
mkdir -p /data
chmod 777 /data
# 开启rpc服务
systemctl start rpcbind
# 启动服务并设置开机自启
systemctl start nfs
2、工作节点:安装nfs客户端、启动服务
yum install nfs-utils -y
# 开启rpc服务
systemctl start rpcbind
# 启动服务并设置开机自启
systemctl start nfs
二、共享NFS网络数据卷
1、管理节点:创建yaml文件
vim nginx-nfs.yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: nginx-deployment-nfs
spec:
replicas: 3
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.10
volumeMounts:
- name: wwwroot
mountPath: /var/www/html
ports:
- containerPort: 80
volumes:
- name:
nfs:
server: 192.168.1.79
path: /data
# 指定api版本
apiVersion: extensions/v1beta1
# 指定需要创建的资源对象
kind: Deployment
# 源数据、可以写name,命名空间,对象标签
metadata:
# 指定对象名称
name: nginx-deployment2-nfs
# 描述资源相关信息
spec:
# 指定pod 副本数,默认1
replicas: 3
# 描述资源具体信息
template:
# 匹配标签字段
metadata:
# 指定pod标签value:key
labels:
# 标签名
app: nginx
# 管理容器
spec:
# 指定容器信息
containers:
# 指定容器名称
- name: nginx
# 指定镜像名称
image: nginx:1.10
# 网络数据卷管理
volumeMounts:
# 数据卷名称
- name: wwwroot
# 容器数据卷挂载路径
mountPath: /var/www/html
# 端口管理
ports:
# 暴露端口
- containerPort: 80
# 网络共享数据卷管理
volumes:
# 数据卷名称两边需要相同
- name: wwwroot
# 数据卷类型为nfs
nfs:
# NFS服务器地址
server: 192.168.1.79
# 服务端共享路径
path: /data
文件注解
2、管理节点:创建Deployment
kubectl create -f nginx-nfs.yaml
命令:kubectl get pods -o wide NAME READY STATUS RESTARTS AGE IP NODE
nginx-deployment-nfs-5fbcddddb6-7btt4 1/1 Running 0 55s 172.17.2.11 192.168.1.78
nginx-deployment-nfs-5fbcddddb6-sf6bz 1/1 Running 0 55s 172.17.2.10 192.168.1.78
nginx-deployment-nfs-5fbcddddb6-ws8wk 1/1 Running 0 55s 172.17.1.9 192.168.1.77
查看创建情况
命令:kubectl describe nginx-deployment-nfs-5fbcddddb6-sf6bz Mounts:
/var/www/html from wwwroot (rw)
Conditions:
Type Status
Initialized True
Ready True
PodScheduled True
Volumes:
wwwroot:
Type: NFS (an NFS mount that lasts the lifetime of a pod)
Server: 192.168.1.79
Path: /data
ReadOnly: false
QoS Class: BestEffort
Node-Selectors: <none>
Tolerations: <none>
reated container
查看详细信息
3、测试
# 1、宿主端nfs共享文件内创建文件
命令:touch /data/123 # 2、进入容器内查看文件是否共享
命令:kubectl exec nginx-deployment-nfs-5fbcddddb6-sf6bz -it bash root@nginx-deployment-nfs-5fbcddddb6-sf6bz:/# ls /var/www/html/
123
Docker Kubernetes Volume 网络数据卷的更多相关文章
- Docker Kubernetes Volume 本地数据卷
Docker Kubernetes Volume 本地数据卷 emptyDir 当Pod分配到Node时,首先创建一个空卷,并挂载到Pod中的容器. Pod中的容器可以读取和写入卷中的文件. 当Pod ...
- Kubernetes Pod的数据卷Volume
概述 由于容器本身是非持久化的,因此需要解决在容器中运行应用程序遇到的一些问题.首先,当容器崩溃时,kubelet将重新启动容器,但是写入容器的文件将会丢失,容器将会以镜像的初始状态重新开始:第二,在 ...
- Docker系列教程05-Docker数据卷(Data Volume)学习
引言 在Docker中,容器的数据读写默认发生在容器的存储层,当容器被删除时其上的数据将会丢失.要想实现数据的持久化,需要将数据从宿主机挂载到容器中.目前Docker提供了三种方式将数据从宿主机挂载到 ...
- Docker 使用指南 (四)—— 数据卷的使用
一.数据卷的使用 有时候需要使用数据库,但是又希望它的数据能保存在本地,Docker中提供了数据卷可以供你方便的操作数据.数据卷是一个可供一个或多个容器使用的特殊目录,它绕过 UFS,可以提供很多有用 ...
- 基于Ceph分布式集群实现docker跨主机共享数据卷
上篇文章介绍了如何使用docker部署Ceph分布式存储集群,本篇在此基础之上,介绍如何基于Ceph分布式存储集群实现docker跨主机共享数据卷. 1.环境准备 在原来的环境基础之上,新增一台cen ...
- Docker Kubernetes Service 网络服务代理模式详解
Docker Kubernetes Service 网络服务代理模式详解 Service service是实现kubernetes网络通信的一个服务 主要功能:负载均衡.网络规则分布到具体pod 注 ...
- Docker容器数据管理(数据卷&数据卷容器)
一:前言 在Docker容器的实际使用中,经常会遇到容器的数据持久化,容器之间的数据共享等问题,通常我们有两种解决方案: 1)数据卷(Data Volumes):就是将容器内数据直接映射到本地主机环境 ...
- docker系列五之数据卷(volumn)
docker数据卷(volumn) 一. 为什么需要数据卷 docker镜像是由多个文件系统(只读层)叠加而成,当我们启动一个容器的时候,docker的服务端会加载镜像的只读层,并在最顶层创建一个可读 ...
- 在docker容器下利用数据卷实现在删除了mysql容器或者镜像的情况下恢复数据
当把mysql容器销毁,在新建一个容器,进行之前的数据恢复. 因为之前建立了数据卷,那么现在就可以利用这个数据卷进行数据恢复. 使用docker volume create volume_name命令 ...
随机推荐
- JVM监控和调优常用命令工具总结
JVM监控和调优 在Java应用和服务出现莫名的卡顿.CPU飙升等问题时总是要分析一下对应进程的JVM状态以定位问题和解决问题并作出相应的优化,在这过程中Java自带的一些状态监控命令和图形化工具就非 ...
- 【CF461E】Appleman and a Game 倍增floyd
[CF461E]Appleman and a Game 题意:你有一个字符串t(由A,B,C,D组成),你还需要构造一个长度为n的字符串s.你的对手需要用t的子串来拼出s,具体来说就是每次找一个t的子 ...
- 11.14 luffycity项目(6)
2018-11-14 21:26:45 实现了购物车功能! 涉及到了redis的使用 需要在pycharm中下载 django_redis 其他的看一下笔记,有购物车里面数据存储的结构才发现数据 ...
- 把一张图片变成base64
// image_file可为urlprivate function base64EncodeImage($image_file) { $image_info = getimagesize($imag ...
- CF3A Shortest path of the king
The king is left alone on the chessboard. In spite of this loneliness, he doesn't lose heart, becaus ...
- Oracle课程档案,第十四天
备份数据文件:SQL> select file_id, file_name from dba_data_files; backup:备用(备份) datafile:数据文件 backup tab ...
- Android adb调试
1.首先是adb 修改 devices/amlogic/p201_iptv/system.prop service.adb.tcp.port=5555 或者直接在盒子串口下修改 system/buil ...
- python学习之旅(十五)
Python基础知识(14):函数(Ⅴ) 一.装饰器 decorator:本质上就是函数,可以增强函数的功能. 定义起来虽然有点复杂,但使用起来非常灵活和方便 1.不修改被装饰函数的源代码 2.不修改 ...
- ML.NET 0.10特性简介
IDataView被单独作为一个类库包 IDataView组件为表格式数据提供了非常高效的处理方式,尤其是用于机器学习和高级分析应用.它被设计为可以高效地处理高维数据和大型数据集.并且也适合处理属于更 ...
- Luogu 1177 - 【模板】快速排序 - [快速排序][归并排序][无旋Treap]
题目链接:https://www.luogu.org/problemnew/show/P1177 题意:输入 $n$ 以及后续 $n$ 个整数,让你将这 $n$ 个整数从小到大排序输出. 归并排序(用 ...