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

最新文章

  1. 索引深入浅出(5/10):非聚集索引的B树结构在堆表
  2. Guava学习笔记:Ordering犀利的比较器
  3. Android sdk manager不能更新下载缓慢的解决方法
  4. matlab:对一个向量进行排序,返回每一个数据的rank 序号 。。。
  5. 2016年团体程序设计天梯赛-决赛 L1-2. I Love GPLT(5)
  6. js获取页面的来源页
  7. 在实现从excel中读取数据作为接口参数遇到的问题
  8. 尚硅谷《全套Java、Android、HTML5前端视频》
  9. 《从Lucene到Elasticsearch:全文检索实战》学习笔记二
  10. HTCVive使用
  11. 漏洞应急响应之批量poc验证
  12. ethereum/EIPs-712 Ethereum typed structured data hashing and signing
  13. jstat 详解
  14. mariadb设置初始密码
  15. MIUI 6的毛玻璃效果的技术实现(实时模糊)
  16. Spring 中出现相同名称的 bean 的处理机制
  17. Python开发【Django】:中间件、CSRF
  18. 详细了解下PHP的curl函数及常用之处
  19. Linux内核静态映射表的建立过程
  20. Javascript Promises 介绍

热门文章

  1. C# 鼠标移动Winform窗体内或者panel容器内的控件 显示虚线/实现虚线框来确定位置
  2. thinkcmf 5关闭后台验证码
  3. 10.27 rest_framework(1)
  4. 接口自动化测试 (三)request.post
  5. ubuntu的apt-get install的默认安装路径(转)
  6. transform的兼容性写法浏览器 和 transition
  7. Linux命令 sed
  8. CH 3101 - 阶乘分解 - [埃筛]
  9. Nginx+Tomcat整合的安装与配置(win.linux)
  10. [Day12]构造方法、关键字this、super