一.报错问题
[root@k8s-master-1 nfs.4.0]# kubectl get sc
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
nfs-storage (default) nfs-client Delete Immediate false 21h
二.查看pvc事件详情
[root@k8s-master-1 nfs.4.0]# kubectl describe pvc pmm-v
Name: pmm-v
Namespace: default
StorageClass: nfs-storage
Status: Pending
Volume:
Labels: <none>
Annotations: volume.beta.kubernetes.io/storage-provisioner: nfs-client
volume.kubernetes.io/storage-provisioner: nfs-client
Finalizers: [kubernetes.io/pvc-protection]
Capacity:
Access Modes:
VolumeMode: Filesystem
Used By: <none>
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal ExternalProvisioning 57m (x41 over 67m) persistentvolume-controller waiting for a volume to be created, either by external provisioner "nfs-client" or manually created by system administrator
Normal ExternalProvisioning 46m (x41 over 56m) persistentvolume-controller waiting for a volume to be created, either by external provisioner "nfs-client" or manually created by system administrator
Normal ExternalProvisioning 35m (x41 over 45m) persistentvolume-controller waiting for a volume to be created, either by external provisioner "nfs-client" or manually created by system administrator
Normal ExternalProvisioning 7m55s (x122 over 37m) persistentvolume-controller waiting for a volume to be created, either by external provisioner "nfs-client" or manually created by system administrator
Normal ExternalProvisioning 13s (x20 over 4m58s) persistentvolume-controller waiting for a volume to be created, either by external provisioner "nfs-client" or manually created by system administrator
# 从persistentvolume-controller反馈出来的信息是 没有权限来创建出pvc。
三.查看 nfs-provisioner pod日志
kubectl logs nfs-client-provisioner-5548ffc98f-b5h42 -n default
# 注:Kubernetes 1.20及以后版本废弃了 selfLink 所致。

四.解决方案
# 修改kube-apiserver.yaml参数
vim /etc/kubernetes/manifests/kube-apiserver.yaml
添加 - --feature-gates=RemoveSelfLink=false 后重启apiserver
systemctl daemon-reload
systemctl restart kubelet
1.发现如下的新报错信息
[root@k8s-master-1 nfs.4.0]# kubectl get nodes
The connection to the server 192.168.112.156:6443 was refused - did you specify the right host or port?
sed -e '/insecure-port/s/^/#/g' -i /etc/kubernetes/manifests/kube-apiserver.yaml
2.问题解决
[root@k8s-master-1 ~]# kubectl get pvc
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
pmm-v Bound pvc-80f08935-1358-4372-bb5a-737a5708ed67 10Gi RWO nfs-storage 3d22h