人生处万类,知识最为贤。这篇文章主要讲述kubernetes使用NFS作为存储的操作步骤(保姆式分享)相关的知识,希望能为你提供帮助。
目录
- 前言
- 环境说明
- 安装NFS服务端
- 安装客户端驱动
- 创建运行nfs-provisioner的sa账号
- 对sa账号做rbac授权
- 创建外部存储提供商
- Pod中使用NFS服务
- 使用NFS创建StorageClass
- 使用StorageClass动态划分pv卷
nfs支持多个客户端挂载,可以创建多个pod,挂载同一个nfs服务器共享出来的目录;但是nfs如果宕机了,数据也就丢失了,所以需要使用分布式存储,常见的分布式存储有??
?glusterfs?
??和???cephfs?
?。环境说明
- NFS服务器地址:192.168.2.30
- NFS共享目录:/data/nfs/efk
安装NFS服务端
$ yuminstall -ynfs-utils
$ systemctl start nfs
$ systemctl enable nfs
$ systemctl status nfs
$ chkconfig nfs on//设置为开机自启
注意:正在将请求转发到“systemctl enable nfs.service”。
- 创建共享目录
[root@sc-node2 ~]#mkdir-p/data/nfs/efk#创建共享目录
[root@sc-node2 ~]#cat /etc/exports
/data/nfs/efk192.168.2.0/24(rw,no_root_squash)
[root@sc-node2 ~]#exportfs -arv//使配置文件生效
exporting 192.168.2.0/24:/data/v1
[root@sc-node2 ~]#systemctl restart nfs
[root@sc-node2 ~]#showmount-e localhost//检查共享目录信息
Export list for localhost:
/data/nfs/efk192.168.2.0/24 .
安装客户端驱动客户端即是kubernetes集群中的每个节点,每个节点都需要本步骤操作。
[root@sc-node2 ~]#yum -y install nfs-utils
[root@sc-node2 ~]#systemctl start nfs-utils
[root@sc-node2 ~]# systemctl enable nfs-utils
[root@sc-node2 ~]# systemctl statusnfs-utils
创建运行nfs-provisioner的sa账号nfs的外部供应商将使用该SA账号访问相关的资源。
- 编写资源清单文件
[root@sc-master1 ~]# vim nfs-provisioner-sa.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
name: nfs-provisioner
namespace: kube-login
- 创建sa账号
[root@sc-master1 ~]# kubectl apply -fnfs-provisioner-sa.yaml
对sa账号做rbac授权
[root@sc-master1 ~]# vim nfs-rbac.yaml
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: nfs-provisioner-runner
rules:
- apiGroups: [""]
resources: ["persistentvolumes"]
verbs: ["get", "list", "watch", "create", "delete"]
- apiGroups: [""]
resources: ["persistentvolumeclaims"]
verbs: ["get", "list", "watch", "update"]
- apiGroups: ["storage.k8s.io"]
resources: ["storageclasses"]
verbs: ["get", "list", "watch"]
- apiGroups: [""]
resources: ["events"]
verbs: ["create", "update", "patch"]
- apiGroups: [""]
resources: ["services", "endpoints"]
verbs: ["get"]
- apiGroups: ["extensions"]
resources: ["podsecuritypolicies"]
resourceNames: ["nfs-provisioner"]
verbs: ["use"]
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: run-nfs-provisioner
subjects:
- kind: ServiceAccount
name: nfs-provisioner
namespace: kube-logging
roleRef:
kind: ClusterRole
name: nfs-provisioner-runner
apiGroup: rbac.推荐阅读
- Android的12个最佳天气应用程序和小部件下载推荐列表
- 微信小游戏开发实战1:让计算机理解你的想法
- 记录一次数据库drop磁盘组,drop磁盘组中盘的操作。
- 辅助域控如何抢占角色(主域控已经down机不可恢复了)
- 大数据学习常见问题
- Python 第三方库详解
- #yyds干货盘点#cmd命令find
- 设置计划云行的系统管理任务
- virbox-centos桥接上网