前提:已存在一个nfs服务

  1. 192.168.137.11:/home/nfs_data

下面以rbac方式对接nfs

1、创建/root/k8s-nfs-rbac/serviceaccount.yaml

  1. apiVersion: v1
  2. kind: ServiceAccount
  3. metadata:
  4. name: nfs-client-provisioner

2、创建/root/k8s-nfs-rbac/rbac.yaml

  1. kind: ClusterRole
  2. apiVersion: rbac.authorization.k8s.io/v1
  3. metadata:
  4. name: nfs-provisioner-runner
  5. rules:
  6. - apiGroups: [""]
  7. resources: ["persistentvolumes"]
  8. verbs: ["get", "list", "watch", "create", "delete"]
  9. - apiGroups: [""]
  10. resources: ["persistentvolumeclaims"]
  11. verbs: ["get", "list", "watch", "update"]
  12. - apiGroups: ["storage.k8s.io"]
  13. resources: ["storageclasses"]
  14. verbs: ["get", "list", "watch"]
  15. - apiGroups: [""]
  16. resources: ["events"]
  17. verbs: ["list", "watch", "create", "update", "patch"]
  18. - apiGroups: [""]
  19. resources: ["services"]
  20. resourceNames: ["kube-dns","coredns"]
  21. verbs: ["list", "get"]
  22. - apiGroups: [""]
  23. resources: ["endpoints"]
  24. verbs: ["get", "list", "watch", "create", "update", "patch"]
  25.  
  26. ---
  27. kind: ClusterRoleBinding
  28. apiVersion: rbac.authorization.k8s.io/v1
  29. metadata:
  30. name: run-nfs-provisioner
  31. subjects:
  32. - kind: ServiceAccount
  33. name: nfs-provisioner
  34. namespace: default
  35. roleRef:
  36. kind: ClusterRole
  37. name: nfs-provisioner-runner
  38. apiGroup: rbac.authorization.k8s.io
  39.  
  40. ---
  41. kind: Role
  42. apiVersion: rbac.authorization.k8s.io/v1
  43. metadata:
  44. name: leader-locking-nfs-provisioner
  45. rules:
  46. - apiGroups: [""]
  47. resources: ["endpoints"]
  48. verbs: ["get", "list", "watch", "create", "update", "patch"]
  49.  
  50. ---
  51. kind: RoleBinding
  52. apiVersion: rbac.authorization.k8s.io/v1
  53. metadata:
  54. name: leader-locking-nfs-provisioner
  55. subjects:
  56. - kind: ServiceAccount
  57. name: nfs-provisioner
  58. namespace: default
  59. roleRef:
  60. kind: Role
  61. name: leader-locking-nfs-provisioner
  62. apiGroup: rbac.authorization.k8s.io

3、创建/root/k8s-nfs-rbac/deployment.yaml

  1. kind: Deployment
  2. apiVersion: extensions/v1beta1
  3. metadata:
  4. name: nfs-provisioner
  5. spec:
  6. replicas:
  7. strategy:
  8. type: Recreate
  9. template:
  10. metadata:
  11. labels:
  12. app: nfs-provisioner
  13. spec:
  14. serviceAccount: nfs-provisioner
  15. containers:
  16. - name: nfs-provisioner
  17. image: registry.cn-hangzhou.aliyuncs.com/boshen-ns/nfs-client-provisioner:latest
  18. imagePullPolicy: IfNotPresent
  19. volumeMounts:
  20. - name: nfs-client-root
  21. mountPath: /persistentvolumes
  22. env:
  23. - name: PROVISIONER_NAME
  24. value: example.com/nfs
  25. - name: NFS_SERVER
  26. value: 192.168.137.11
  27. - name: NFS_PATH
  28. value: /home/nfs_data
  29. volumes:
  30. - name: nfs-client-root
  31. nfs:
  32. server: 192.168.137.11
  33. path: /home/nfs_data

以上红色加粗的部分修改为真实的nfs服务的ip和path

4、执行以下命令创建资源

  1. cd /root/
  2. kubectl apply -f k8s-nfs-rbac/

5、创建一个pvc,看是否能成功

状态为Bound,表示创建成功

6、去nfs服务器查看,是否真正的创建成功

k8s storageClass对接nfs的更多相关文章

  1. K8S的StorageClass实战(NFS)

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  2. (转)原理到实现 | K8S 存储之 NFS

    转:https://mp.weixin.qq.com/s/Mrr1Rnl_594Gyyn9fHekjw 1NFS介绍 NFS是Network File System的简写,即网络文件系统,NFS是Fr ...

  3. (转)k8s存储之NFS

    转:https://www.cnblogs.com/DaweiJ/articles/9131762.html 1 NFS介绍 NFS是Network File System的简写,即网络文件系统,NF ...

  4. 搭建eBackup对接NFS服务

    环境准备 两个虚拟机需要是仅主机并且同一网段 先搭建一个eBackup环境虚拟机 搭建步骤可访问:(https://www.cnblogs.com/zhengyan6/p/16220774.html) ...

  5. K8S 使用NFS 创建PV和PVC的例子 学习From https://blog.csdn.net/xts_huangxin/article/details/51494472

    1. 获取资料 网址: https://blog.csdn.net/xts_huangxin/article/details/51494472  感谢原作者 这里面 按照自己的机器情况进行了学习模仿 ...

  6. K8S使用群晖DS218+的NFS

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  7. k8s数据管理(八)

    volume 我们经常会说:容器和 Pod 是短暂的.其含义是它们的生命周期可能很短,会被频繁地销毁和创建.容器销毁时,保存在容器内部文件系统中的数据都会被清除. 为了持久化保存容器的数据,可以使用 ...

  8. K8S面试应知必回

    目录 面试不要不懂装懂,不会就是不会,不可能每个人都接触过所有的知识! 1. 基础问题 1.1 Service是怎么关联Pod的?(课程Service章节) 1.2 HPA V1 V2的区别 1.3 ...

  9. glusterfs+heketi为k8s提供共享存储

    背景 近来在研究k8s,学习到pv.pvc .storageclass的时候,自己捣腾的时候使用nfs手工提供pv的方式,看到官方文档大量文档都是使用storageclass来定义一个后端存储服务, ...

随机推荐

  1. (转)Thinkpad X1 Carbon 扩展硬盘

    http://tieba.baidu.com/p/5837920925 网上看到有人成功利用X1C空闲的4G模块来实现了扩充用的是东芝RC100或者建兴的T11 其实难点应该是2242这种尺寸的SSD ...

  2. .Net23种设计模式

    C#常见的设计模式 一.概要: 模式分为三种,设计模式.体系结构模式与惯用法.其中惯用法是一种语言紧密相关的模式,例如,定界加锁模式其实是一种惯用法. 在C#项目开发过程中,很多情况下您已经使用了某些 ...

  3. spring @Autowired与@Resource的区别

    1.@Autowired与@Resource都可以用来装配bean. 都可以写在字段上,或写在setter方法上. 2.@Autowired默认按类型装配(这个注解是属业spring的),默认情况下必 ...

  4. html入门第二天。

    二·1.图片与多媒体:-------------- img标签(重中之重): 网页中的图片展示就是用的img标签实现,img元素相网页中嵌入一幅图形,行内标签,单标签. 基础语句:<img sr ...

  5. 编写一个 rpc

    手动编写一个 RPC 调用 package com.alibaba.study.rpc.framework; import java.io.ObjectInputStream; import java ...

  6. Linux 使用nmcli配置网络

    Linux 使用nmcli配置网络 前提: 在虚拟机中添加一张桥接模式的网卡,如果是VirtualBox虚拟机中要shutdown才能添加. 1.启动NetworkManager工具,安装nmcli命 ...

  7. Ubuntu 通过apt安装VSCode

    1. sudo vim /etc/apt/sources.list.d/vscode.list 并向里面添加:deb [arch=amd64] http://packages.microsoft.co ...

  8. 基于centos7+nginx+uwsgi+python3+django2.0部署Django项目

    0.序言 本文讲解如何基于centos7+nginx+uwsgi+python3+django2.0把windows上的本地项目部署到云服务器上. 本文服务器上的django项目和虚拟环境的路径将建立 ...

  9. mac相关功能

    打开和关闭索引功能 打开:sudo mdutil -a -i on 关闭:sudo mdutil -a -i off 关闭后则无法搜

  10. mongodb cxx driver学习

    mongodb 增删改查 insert 向集合中增加一个文档 remove 删除文档 update 更新(修改)某些文档 文档替换 文档修改器,只修改文档某个部分 find 返回集合中所有文档 fin ...