K8S v1.20 及以上版本 StorageClass 创建 PVC Pending 不成功问题解决
故障描述:
PVC 显示创建不成功:kubectl get pvc 显示 Pending,这是由于版本太高导致的。k8sv1.20 以上版本默认禁止使用 selfLink。(selfLink:通过 API 访问资源自身的 URL,例如一个 Pod 的 link 可能是 /api/v1/namespaces/ns36aa5455/pods/sc-cluster-test-1-6bc58d44d6-r8xld)。
故障解决:
[root@k8s-master ]# vi /etc/kubernetes/manifests/kube-apiserver.yaml
apiVersion: v1
···
- --tls-private-key-file=/etc/kubernetes/pki/apiserver.key
- --feature-gates=RemoveSelfLink=false # 添加这个配置
重启下kube-apiserver.yaml
# 如果是二进制安装的 k8s,执行 systemctl restart kube-apiserver
# 如果是 kubeadm 安装的 k8s
[root@k8s-master manifests]# ps aux|grep kube-apiserver
[root@k8s-master manifests]# kill -9 [Pid]
[root@k8s-master manifests]# kubectl apply -f /etc/kubernetes/manifests/kube-apiserver.yaml
...
[root@k8s-master storage]# kubectl get pvc # 查看 pvc 显示 Bound
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
my-pvc Bound pvc-rv9f6d4b-fc4c-4e19-8854-7bfa25233a04 2Gi RWX example-nfs 9m
作者:一毛
本博客所有文章仅用于学习、研究和交流目的,欢迎非商业性质转载。
不管遇到了什么烦心事,都不要自己为难自己;无论今天发生多么糟糕的事,都不应该感到悲伤。记住一句话:越努力,越幸运。

浙公网安备 33010602011771号