Open lvycoder opened 1 year ago
controller.go:1213] provision "default/rbd-pvc" class "ceph-ext4": unexpected error getting claim reference: selfLink was empty, can't make reference E0720 10:01:18.054984 7 controller.go:1213] provision "default/admin-9ktquk6q7gew-scratch" class "ceph-ext4": unexpected error getting claim reference: selfLink was empty, can't make reference
这个错误是由于 Kubernetes 1.20 版本中默认禁用了 selfLink。这是一个已知问题,并且已经在 Rook 的更新版本中修复。
selfLink 是 Kubernetes 对象的一个字段,用于表示该对象的 RESTful API 路径。但是由于一些原因,Kubernetes 1.20 版本开始默认禁用了这个字段。
解决这个问题的方法有两种:
更新 Rook/Ceph 版本:Rook 的更新版本已经修复了这个问题,不再依赖 selfLink 字段。如果可能的话,建议您更新 Rook/Ceph 到最新版本。
临时启用 selfLink:如果您不能立即更新 Rook/Ceph,可以临时启用 selfLink。在 Kubernetes API 服务器的启动参数中添加 --feature-gates=RemoveSelfLink=false。不过请注意,这只是一个临时的解决方案,因为未来的 Kubernetes 版本可能会完全移除 selfLink。
在应用上述修改后,您可能需要重启 Kubernetes API 服务器和 Rook/Ceph 服务。
报错内容:
报错解决:
这个错误是由于 Kubernetes 1.20 版本中默认禁用了 selfLink。这是一个已知问题,并且已经在 Rook 的更新版本中修复。
selfLink 是 Kubernetes 对象的一个字段,用于表示该对象的 RESTful API 路径。但是由于一些原因,Kubernetes 1.20 版本开始默认禁用了这个字段。
解决这个问题的方法有两种:
更新 Rook/Ceph 版本:Rook 的更新版本已经修复了这个问题,不再依赖 selfLink 字段。如果可能的话,建议您更新 Rook/Ceph 到最新版本。
临时启用 selfLink:如果您不能立即更新 Rook/Ceph,可以临时启用 selfLink。在 Kubernetes API 服务器的启动参数中添加 --feature-gates=RemoveSelfLink=false。不过请注意,这只是一个临时的解决方案,因为未来的 Kubernetes 版本可能会完全移除 selfLink。
在应用上述修改后,您可能需要重启 Kubernetes API 服务器和 Rook/Ceph 服务。