k8s1.5.4挂载volume之nfs

volume的例子集合

https://github.com/kubernetes/kubernetes/tree/master/examples/volumes
http://www.dockerinfo.net/2926.html
https://kubernetes.io/docs/user-guide/volumes/

其他相关文档

k8s集群安装部署
http://jerrymin.blog.51cto.com/3002256/1898243
k8s集群RC、SVC、POD部署
http://jerrymin.blog.51cto.com/3002256/1900260
k8s集群组件kubernetes-dashboard和kube-dns部署
http://jerrymin.blog.51cto.com/3002256/1900508
k8s集群监控组件heapster部署
http://jerrymin.blog.51cto.com/3002256/1904460
k8s集群反向代理负载均衡组件部署
http://jerrymin.blog.51cto.com/3002256/1904463
k8s集群挂载volume之nfs
http://jerrymin.blog.51cto.com/3002256/1906778
k8s集群挂载volume之glusterfs
http://jerrymin.blog.51cto.com/3002256/1907274

参考github上的例子

[root@k8s-master nfs]# pwd

/usr/local/kubernetes/examples/volumes/nfs

[root@k8s-master nfs]# cat README.md

## Quickstart
```console
$ kubectl create -f examples/volumes/nfs/provisioner/nfs-server-gce-pv.yaml
$ kubectl create -f examples/volumes/nfs/nfs-server-rc.yaml
$ kubectl create -f examples/volumes/nfs/nfs-server-service.yaml
# get the cluster IP of the server using the following command
$ kubectl describe services nfs-server
# use the NFS server IP to update nfs-pv.yaml and execute the following
$ kubectl create -f examples/volumes/nfs/nfs-pv.yaml
$ kubectl create -f examples/volumes/nfs/nfs-pvc.yaml
# run a fake backend
$ kubectl create -f examples/volumes/nfs/nfs-busybox-rc.yaml
# get pod name from this command
$ kubectl get pod -l name=nfs-busybox
# use the pod name to check the test file
$ kubectl exec nfs-busybox-jdhf3 -- cat /mnt/index.html
```

具体操作

[root@k8s-master nfs]# kubectl create -f provisioner/nfs-server-gce-pv.yaml

persistentvolumeclaim "nfs-pv-provisioning-demo" created

刚添加的PVC的状态是Pending,如果有合适的PV,这个Pending状态会立刻变为Bound,同时相应的PVC也会变为Bound。 你也可以先添加PVC,后添加PV,这样就能保证看到Pending状态。

[root@k8s-master nfs]# kubectl create -f nfs-server-rc.yaml

The ReplicationController "nfs-server" is invalid: spec.template.spec.containers[0].securityContext.privileged: Forbidden: disallowed by policy

查找参数--allow-privileged为true后k8s将允许在pod中运行拥有系统特权的容器应用

修改/etc/kubernetes/config  值KUBE_ALLOW_PRIV="--allow-privileged=true"后重启所有组件

但是这种方式出现了错误,错误见https://github.com/kubernetes/kubernetes/issues/43120

后调整了方案:

nfs服务器不在容器里部署,直接在节点上部署,然后容器挂载的方式测试,毕竟生存环境中存储一般也不会跑在容器里,开始图方便直接用nfs容器了。nfs服务器搭建比较简单,这里省略了。可以参考http://www.cnblogs.com/zhangmingcheng/p/6134210.html。

[root@k8s-master nfs]# vim /etc/exports
[root@k8s-master nfs]# systemctl enable rpcbind.service
[root@k8s-master nfs]# systemctl enable nfs-server.service
Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.
[root@k8s-master nfs]# systemctl start rpcbind.service
[root@k8s-master nfs]# systemctl start nfs-server.service
[root@k8s-master nfs]# rpcinfo -pprogram vers proto   port  service100000    4   tcp    111  portmapper100000    3   tcp    111  portmapper100000    2   tcp    111  portmapper100000    4   udp    111  portmapper100000    3   udp    111  portmapper100000    2   udp    111  portmapper100024    1   udp  37284  status100024    1   tcp  57305  status100005    1   udp  20048  mountd100005    1   tcp  20048  mountd100005    2   udp  20048  mountd100005    2   tcp  20048  mountd100005    3   udp  20048  mountd100005    3   tcp  20048  mountd100003    3   tcp   2049  nfs100003    4   tcp   2049  nfs100227    3   tcp   2049  nfs_acl100003    3   udp   2049  nfs100003    4   udp   2049  nfs100227    3   udp   2049  nfs_acl100021    1   udp  36397  nlockmgr100021    3   udp  36397  nlockmgr100021    4   udp  36397  nlockmgr100021    1   tcp  40459  nlockmgr100021    3   tcp  40459  nlockmgr100021    4   tcp  40459  nlockmgr

主要node节点, flanneld,docker网络都要有挂载权限才行

[root@k8s-master nfs]# exportfs
/data/nfs     10.1.0.0/16
/data/nfs     10.254.0.0/16
/data/nfs     172.17.3.0/24
[root@k8s-master nfs]# showmount -e
Export list for k8s-master:
/data/nfs 172.17.3.0/24,10.254.0.0/16,10.1.0.0/16
[root@k8s-master nfs]# vim nfs-pv.yaml nfs:# FIXME: use the right IPserver: 172.17.3.20path: "/data/nfs"
[root@k8s-master nfs]# kubectl create -f nfs-pv.yaml
persistentvolume "nfs" created
[root@k8s-master nfs]# kubectl create -f nfs-pvc.yaml
persistentvolumeclaim "nfs" created
[root@k8s-master nfs]# kubectl create -f nfs-web-rc.yaml
replicationcontroller "nfs-web" created
[root@k8s-master nfs]# kubectl create -f nfs-web-service.yaml
service "nfs-web" created

查看PV\PVC状态

[root@k8s-master nfs]# kubectl get pv
NAME         CAPACITY   ACCESSMODES   RECLAIMPOLICY   STATUS      CLAIM         REASON    AGE
nfs          100Mi      RWX           Retain          Bound       default/nfs             25m
[root@k8s-master nfs]# kubectl get pvc
NAME      STATUS    VOLUME    CAPACITY   ACCESSMODES   AGE
nfs       Bound     nfs       100Mi      RWX           25m

进入容器验证

[root@k8s-master ~]# kubectl get pods |grep nfs-web
nfs-web-gj1qr        1/1       Running   0          7m
nfs-web-vrzh4        1/1       Running   0          8m
root@nfs-web-vrzh4:/usr/share/nginx/html# df -h |grep nginx
172.17.3.20:/data/nfs                                                                               422G  925M  421G   1% /usr/share/nginx/html
[root@k8s-master ~]# cd /data/nfs/
[root@k8s-master nfs]# echo 'hello world!' > index.html
root@nfs-web-vrzh4:/usr/share/nginx/html# cat index.html
hello world!
[root@k8s-master nfs]# kubectl get ep|grep nfs-web
nfs-web        10.1.15.2:80,10.1.39.11:80               15m
[root@k8s-master nfs]# curl  10.1.15.2:80
hello world!
[root@k8s-master nfs]# curl 10.1.39.11:80
hello world!

转载于:https://blog.51cto.com/jerrymin/1906778

k8s1.5.4挂载volume之nfs相关推荐

  1. 嵌入式环境:挂载开发板根NFS文件系统失败

    挂载开发板根NFS文件系统的时候,发现了下面的问题: Looking up port of RPC 100003/2 on 192.168.2.109 rpcbind: server 192.168. ...

  2. esxi挂载Linux的nfs盘,ESXi安装centos7挂载群晖NFS

    前段时间折腾了ESXi,然后无尽的折腾接踵而来,今天要说的是如何安装centos7并挂载群晖虚拟机的NFS共享文件夹 直接步入正题!先是下载centos7镜像,因为我是用来当服务器的,所以只需要min ...

  3. Pod挂载Volume失败问题分析

    Kubernetes环境偶尔出现StatefulSet中的Pod被删除,新启动的Pod(还是调度到原有节点)挂载volume失败的问题,如下图,经过一番定位分析,也让我们对于Kubernetes系统复 ...

  4. linux查看nfs挂载信息,Linux NFS挂载

    Linux NFS挂载 一.NFS挂载 192.25.10.101/home/sharedata/azkaban/ODS_HS08 挂载到 192.25.10.102/home/data_azkaba ...

  5. 容器挂载volume出现“Permission denied”的问题定位解决

    容器挂载volume出现"Permission denied"的问题定位解决 参考文章: (1)容器挂载volume出现"Permission denied"的 ...

  6. OpenWrt 挂载群晖NFS

    OpenWrt 挂载群晖NFS 使用OpenWrt软路由挂载群晖NFS文件夹,再利用OpenWrt中的Samba,对文件夹进行局域网开放访问 前言 家中有个群晖.小米电视盒子3S,想方便通过小米盒子访 ...

  7. linux服务器挂载不上nfs,我遇上的挂载不上NFS文件系统的坑

    主机平台:window7 vmware9.0 linux系统 开发板平台: mini2440 使用的根文件系统 :友善之臂的 rootfs_qtopia_qt4 使用的linux kernel : 友 ...

  8. Linux系统怎么挂载安卓手机,NFS挂载Android文件系统

    1.安装NFS服务 $sudo apt-get install nfs-kernel-serverportmap $sudo mkdir /nfsboot $sudo vim /etc/exports ...

  9. Android 5.x系统nfs挂载系统启动记录 nfs挂载文件记录

    应该有不少开发Android系统的人有这样的感觉,修改好了hal或者jni后,编译,验证的时候需要把编译的文件发到机器上去,那么发送的时候使用什么方式,应该是adb吧,我也是使用该方法.可是实际使用的 ...

最新文章

  1. hadoop 2 java hdfs_Hadoop2.6.0学习笔记(二)HDFS访问
  2. 冒泡 MS Azure 不便宜。。。
  3. 中科院包云岗:开源模式打造处理器芯片生态,总共要几步?
  4. EdgeX Foundry理论篇
  5. VS2010 不能将参数 2 从“char [20]”转换为“LPCWSTR”的错误解决
  6. DNN Module PictureGallery 效果图
  7. 交叉验证 cross validation 与 K-fold Cross Validation K折叠验证
  8. 快速了解c#中的索引器
  9. MaskRCNN要点
  10. Python中append()和extend方法的使用和区别
  11. html5小游戏源码_[源码和报告分享]基于HTML5实现的贪吃蛇小游戏
  12. 这样的AI技术实战方式,大boss都看不下去了!
  13. python 实现的huffman 编码压缩,解码解压缩
  14. C/C++学校运动会管理系统
  15. 【已解决】平板远程控制WIN10电脑
  16. 【SONY PS2模拟器】[PCSX2 V0.93 R7完美教程]+最新版模拟器
  17. idea_设置项目编码
  18. CSS雪碧图制作emoji表情包
  19. 为什么看不到局域网其他计算机名,windows10系统局域网看不到计算机名怎么办
  20. 把AS代码链接到fla文件

热门文章

  1. [转] 让Visual Studio生成Release版本的可执行文件
  2. 计算机操作系统——页面置换算法
  3. android 经纬度的范围内,在Android里如何判断一个指定的经纬度点是否落在一个多边形区域内...
  4. Oracle查看死锁 .
  5. [BZOJ5303] [HAOI2018] 反色游戏
  6. HDU - 4348 To the moon
  7. jQuery对象与dom对象不能划等号
  8. javascript装饰者模式
  9. QQ号码采集及邮件发送系统2009
  10. 通过NetMassDownloader批量下载和使用微软.NET框架源代码