Kubernetes nfs provisioner可以';无法创建共享文件夹 环境
Openshift版本:v4.3.8Kubernetes nfs provisioner可以';无法创建共享文件夹 环境,kubernetes,openshift,nfs,Kubernetes,Openshift,Nfs,Openshift版本:v4.3.8 Kubernetes版本:v1.16.2 已用映像:quay.io/external_storage/nfs客户端供应器:最新 问题 storageclass.yaml RBAC 供给者 应用这些yaml文件后,似乎一切正常。 pv和pvc创建良好,供应器日志成功 $oc获取pv,pvc 名称容量访问模式回收策略状态声明存储类原因期限 持久卷/pvc-3f5fa5dd-19a0-40d1-bd07-aa3b8c5e7dee 100Mi RWX删除绑定卷00/
Kubernetes版本:v1.16.2
已用映像:quay.io/external_storage/nfs客户端供应器:最新 问题 storageclass.yaml RBAC 供给者 应用这些yaml文件后,似乎一切正常。
pv和pvc创建良好,供应器日志成功
$oc获取pv,pvc
名称容量访问模式回收策略状态声明存储类原因期限
持久卷/pvc-3f5fa5dd-19a0-40d1-bd07-aa3b8c5e7dee 100Mi RWX删除绑定卷00/nfs pvc测试nfs存储类4s
名称状态卷容量访问模式STORAGECLASS年龄
persistentvolumeclaim/nfs pvc测试绑定pvc-3f5fa5dd-19a0-40d1-bd07-aa3b8c5e7dee 100Mi RWX nfs存储类13s
#供应器日志
$oc日志nfs-provisioner-6f4df6b8dc-v9n8j
I0615 02:10:08.298618 1 leaderelection.go:185]正在尝试获取leader租赁卷00/nfs-test-00。。。
I0615 02:10:25.688121 1 leaderelection.go:194]已成功获取租赁卷00/nfs-test-00
I0615 02:10:25.688297 1控制器。转到:631]启动供应器控制器nfs-test-00\u nfs-provisioner-6f4df6b8dc-v9n8j\u 55f60825-aead-11ea-86ce-0a580a810020!
I0615 02:10:25.688515 1 event.go:221]事件(v1.ObjectReference{Kind:“Endpoints”,命名空间:“volume00”,名称:“nfs-test-00”,UID:“c768d62e-b541-4f92-8c1c-60ce9df92f40”,APIVersion:“v1”,ResourceVersion:“437394”,字段路径:“}):类型:“正常”原因:“LeaderElection”nfs-provisioner-6f4df6b8dc-v9n8j_55f60825-aead-11ea-86ce-0a580a810020成为leader
I0615 02:10:25.788548 1控制器。转到:680]已启动供应器控制器nfs-test-00_nfs-provisioner-6f4df6b8dc-v9n8j_55f60825-aead-11ea-86ce-0a580a810020!
I0615 02:10:25.788603 1控制器。转到:1158]删除“pvc-133a671b-69f1-4d4e-911e-67065b4b4482”:开始
I0615 02:10:25.788716 1控制器。转到:987]提供“卷00/nfs pvc测试”类“nfs存储类”:已开始
I0615 02:10:25.790776 1控制器。转到:1087]提供“卷00/nfs pvc测试”类“nfs存储类”:提供卷“pvc-3f5fa5dd-19a0-40d1-bd07-aa3b8c5e7dee”
I0615 02:10:25.790792 1控制器。转到:1101]设置“卷00/nfs pvc测试”类“nfs存储类”:尝试保存持久卷“pvc-3f5fa5dd-19a0-40d1-bd07-aa3b8c5e7dee”
I0615 02:10:25.790818 1 event.go:221]事件(v1.ObjectReference{Kind:“PersistentVolumeClaim”,命名空间:“volume00”,名称:“nfs pvc测试”,UID:“3f5fa5dd-19a0-40d1-bd07-aa3b8c5e7dee”,APIVersion:“v1”,ResourceVersion:“437362”,FieldPath:}):类型:“正常”原因:“设置”外部设置器是请求的设置卷“卷00/nfs pvc测试”
W0615 02:10:25.792033 1 provisioner.go:104]路径/persistentvolumes/volume00-nfs-pvc-test-pvc-133a671b-69f1-4d4e-911e-67065b4b4482不存在,已跳过删除
I0615 02:10:25.792048 1控制器。转到:1186]删除“pvc-133a671b-69f1-4d4e-911e-67065b4b4482”:删除卷
I0615 02:10:25.793796 1控制器。转到:1108]提供“卷00/nfs pvc测试”类“nfs存储类”:保存持久卷“pvc-3f5fa5dd-19a0-40d1-bd07-aa3b8c5e7dee”
I0615 02:10:25.793819 1控制器。转到:1149]设置“volume00/nfs pvc测试”类“nfs存储类”:成功
I0615 02:10:25.793866 1 event.go:221]事件(v1.ObjectReference{Kind:“PersistentVolumeClaim”,命名空间:“volume00”,名称:“nfs pvc测试”,UID:“3f5fa5dd-19a0-40d1-bd07-aa3b8c5e7dee”,APIVersion:“v1”,ResourceVersion:“437362”,字段路径:“}):类型:“正常”原因:“ProvisioningSucceed”已成功调配卷pvc-3f5fa5dd-19a0-40d1-bd07-aa3b8c5e7dee
I0615 02:10:25.794970 1控制器。转到:1196]删除“pvc-133a671b-69f1-4d4e-911e-67065b4b4482”:持久卷已删除
I0615 02:10:25.794985 1控制器。转到:1198]删除“pvc-133a671b-69f1-4d4e-911e-67065b4b4482”:成功
看起来不错!但是当我检查我的NFS时,没有创建任何文件夹
nfs客户端供应器似乎无法在nfs服务器中创建文件夹
顺便说一下,我可以挂载文件夹在我的工人节点,并可以使文件夹作为我可以
现在我对这种情况感到困惑。为什么即使provisioner日志已成功,nfs客户端provisioner仍无法在nfs中创建文件夹?为什么您的卷已声明但未装入pod?与步骤4类似,请注意它可能与旧版本的k8s不一样。您是否已设法解决此问题?@HelloWorld Nope,仍在寻找。你有什么想法吗?我正在尝试使用helm chart:,但无法获得声明…为什么你的卷已声明但未装入pod?与第4步类似,请注意它可能与旧版本的k8s不一样。你解决了问题吗?@HelloWorld no,仍在寻找。你有什么想法吗?我很抱歉试图使用舵图:,但无法获得索赔。。。
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: nfs-storageclass # IMPORTANT pvc needs to mention this name
provisioner: nfs-test-00 # name can be anything
parameters:
archiveOnDelete: "false"
kind: ServiceAccount
apiVersion: v1
metadata:
name: nfs-pod-provisioner-sa
---
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-pod-provisioner-sa
namespace: volume00
roleRef:
kind: ClusterRole
name: nfs-provisioner-runner
apiGroup: rbac.authorization.k8s.io
---
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: leader-locking-nfs-provisioner
rules:
- apiGroups: [""]
resources: ["endpoints"]
verbs: ["get", "list", "watch", "create", "update", "patch"]
---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: leader-locking-nfs-provisioner
subjects:
- kind: ServiceAccount
name: nfs-pod-provisioner-sa
namespace: volume00
roleRef:
kind: Role
name: leader-locking-nfs-provisioner
apiGroup: rbac.authorization.k8s.io
kind: Deployment
apiVersion: apps/v1
metadata:
name: nfs-provisioner
spec:
selector:
matchLabels:
app: nfs-provisioner
replicas: 1
strategy:
type: Recreate
template:
metadata:
labels:
app: nfs-provisioner
spec:
serviceAccount: nfs-pod-provisioner-sa
containers:
- name: nfs-provisioner
image: quay.io/external_storage/nfs-client-provisioner:latest
env:
- name: PROVISIONER_NAME # do not change
value: nfs-test-00 # SAME AS PROVISONER NAME VALUE IN STORAGECLASS
- name: NFS_SERVER # do not change
value: x.x.x.x # Ip of the NFS SERVER
- name: NFS_PATH # do not change
value: /share/00 # path to nfs directory setup
imagePullPolicy: "IfNotPresent"
volumes:
- name: nfs-provisioner-v # same as volumemouts name
nfs:
server: x.x.x.x
path: /share/00