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

posted @ 2025-01-21 17:26  一毛丶丶  阅读(47)  评论(0)    收藏  举报