您当前所在位置:幽门梗阻 > 疾病影响 > K8SNFSProvisioner

K8SNFSProvisioner

北京中科医院是假的 https://m-mip.39.net/baidianfeng/mipso_5154116.html

组件K8SNFSProvisioner是Kubernetes中存储资源动态分配器,不过现在已经已经停止维护,且在Kubernetes1.20.x及以后版本已经不兼容。

官方比较推荐的NFS动态分配器组组件为NFSSubdirExternalProvisioner,本文将介绍并部署如何使用该组件。

系统环境:

操作系统:CentOS7.9Docker版本:19.03.13Kubernetes版本:1.20.2NFSSubdirExternalProvisioner版本:v4.0.0一、什么是NFS-Subdir-External-Provisioner

存储组件NFSsubdirexternalprovisioner是一个存储资源自动调配器,它可用将现有的NFS服务器通过持久卷声明来支持Kubernetes持久卷的动态分配。自动新建的文件夹将被命名为{namespace}-{pvcName}-{pvName},由三个资源名称拼合而成。

此组件是对nfs-client-provisioner的扩展,nfs-client-provisioner已经不提供更新,且nfs-client-provisioner的Github仓库已经迁移到NFS-Subdir-External-Provisioner的仓库。

二、创建NFSServer端

我们先创建NFSServer端才能够正常使用NFS文件系统,下面介绍下如何在CentOS7系统中安装NFSServer的过程。

关闭防火墙

为了方便部署,我们直接将防火墙关闭,可以执行下面命令:

systemctlstopfirewalldsystemctldisablefirewalld安装nfs-utils和rpcbind

为了能够正常使用NFS,我们需要在使用Kubernetes集群中的所有服务器上安装以下依赖,命令如下:

yuminstall-ynfs-utilsrpcbind创建存储数据的文件夹

创建用于共享数据的文件夹,命令如下:

#创建文件夹mkdir/nfs#更改归属组与用户chown-Rnfsnobody:nfsnobody/nfs配置NFSServer

配置NFSServer,指定共享文件夹目录以及能够使用共享文件夹的IP段,命令如下:

#编辑exportsvi/etc/exports#输入以下内容(格式:FS共享的目录NFS客户端地址1(参数1,参数2,...)客户端地址2(参数1,参数2,...))/nfs..2.0/24(rw,async,no_root_squash)

如果设置为/nfs*(rw,async,no_root_squash)则对所以的IP都有效

常用选项:ro:客户端挂载后,其权限为只读,默认选项;rw:读写权限;sync:同时将数据写入到内存与硬盘中;async:异步,优先将数据保存到内存,然后再写入硬盘;Secure:要求请求源的端口小于用户映射:root_squash:当NFS客户端使用root用户访问时,映射到NFS服务器的匿名用户;no_root_squash:当NFS客户端使用root用户访问时,映射到NFS服务器的root用户;all_squash:全部用户都映射为服务器端的匿名用户;anonuid=UID:将客户端登录用户映射为此处指定的用户uid;anongid=GID:将客户端登录用户映射为此处指定的用户gid启动NFSServer

可与执行下面命令启动且开机就启动NFSServer:

##重启rpcbindsystemctlrestartrpcbind##重启NFSServer并设置开机就启动systemctlenablenfssystemctlrestartnfs

到此我们就成功启动NFSServer,这里服务器IP为..2.11,NFS目录为/nfs。

三、创建ServiceAccount

现在的Kubernetes集群大部分是基于RBAC的权限控制,所以我们需要创建一个拥有一定权限的ServiceAccount与后面要部署的NFSSubdirExternaProvisioner组件绑定。

创建RBAC资源文件

创建RBAC资源文件nfs-rbac.yaml,文件内容如下:

apiVersion:v1kind:ServiceAccountmetadata:name:nfs-client-provisionernamespace:kube-system---kind:ClusterRoleapiVersion:rbac.authorization.k8s.io/v1metadata:name:nfs-client-provisioner-runnerrules:-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"]---kind:ClusterRoleBindingapiVersion:rbac.authorization.k8s.io/v1metadata:name:run-nfs-client-provisionersubjects:-kind:ServiceAccountname:nfs-client-provisionernamespace:kube-systemroleRef:kind:ClusterRolename:nfs-client-provisioner-runnerapiGroup:rbac.authorization.k8s.io---kind:RoleapiVersion:rbac.authorization.k8s.io/v1metadata:name:leader-locking-nfs-client-provisionernamespace:kube-systemrules:-apiGroups:[""]resources:["endpoints"]verbs:["get","list","watch","create","update","patch"]---kind:RoleBindingapiVersion:rbac.authorization.k8s.io/v1metadata:name:leader-locking-nfs-client-provisionernamespace:kube-systemsubjects:-kind:ServiceAccountname:nfs-client-provisionernamespace:kube-systemroleRef:kind:Rolename:leader-locking-nfs-client-provisionerapiGroup:rbac.authorization.k8s.io

注意:请提前修改里面的Namespace名称为你要想部署Namespace空间。

部署RBAC资源

执行kubectl命令将RBAC文件部署到Kubernetes集群,命令如下:

-f:指定资源文件名称。

kubectlapply-fnfs-rbac.yaml四、部署NFS-Subdir-External-Provisioner

设置NFS-Subdir-External-Provisioner部署文件,这里将其部署到kube-system命令空间中。

创建NFS-Subdir-External-Provisioner部署文件

创建一个用于部署的Deployment资源文件nfs-provisioner-deploy.yaml,文件内容如下:

apiVersion:apps/v1kind:Deploymentmetadata:name:nfs-client-provisionerlabels:app:nfs-client-provisionerspec:replicas:1strategy:type:Recreate##设置升级策略为删除再创建(默认为滚动更新)selector:matchLabels:app:nfs-client-provisionertemplate:metadata:labels:app:nfs-client-provisionerspec:serviceAccountName:nfs-client-provisionercontainers:-name:nfs-client-provisioner#image:gcr.io/k8s-staging-sig-storage/nfs-subdir-external-provisioner:v4.0.0image:registry.cn-beijing.aliyuncs.


转载请注明:http://www.zpwkh.com/jbyx/14085.html

  • 上一篇文章:
  •   
  • 下一篇文章: 没有了

  • 当前时间: