问题:
pod一直处于pending状态,describe pod查看报错信息,发现pvc一直处于pending状态。
报错信息如下:
waiting for a volume to be created, either by external provisioner "data-wordpress-mariadb-0" or manually created by system administrator
解决:
当前集群版本是v1.22。k8s从v1.20开始默认删除了 metadata.selfLink 字段,然而,部分应用仍然依赖于这个字段,例如 nfs-client-provisioner。
而wordpress-mariadb正是使用的nfs作为存储卷。
修改api server配置,添加如下字段:
- --feature-gates=RemoveSelfLink=false
修改后,apiserver会自动重启,删除pod后,再次查看pvc状态恢复正常。
PS:
网上也有第二种解决方案:
更改nfs-subdir-external-provisioner为v4.0.0以上的版本,就会自动解决这个问题。
相关文档:https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner/issues/25
我当前的版本是3.1.0,没有测试。