这个错误是因为 Kubernetes API 找不到名为 PodSecurityPolicy
的资源。 PodSecurityPolicy
是 Kubernetes 中的一个安全机制,它可以限制 pod 使用哪些安全特性。
在您的情况下,可能是因为您的集群中没有安装 PodSecurityPolicy
CRD。 您需要确保已在目标群集上安装了该CRD。 请按照以下步骤操作:
确认是否存在 PodSecurityPolicy 资源:运行
kubectl get psp
命令以查看已定义的 PodSecurityPolicy。如果不存在,则需要在目标集群上创建 PodSecurityPolicy 资源:运行以下命令之一(取决于您使用的 Kubernetes 版本):
对于 v1beta1 版本:
kubectl apply -f https://raw.githubusercontent.com/kubernetes/kubernetes/release-1.16/pkg/apis/policy/v1beta1/00-namespace-all.yaml
对于 v1 版本:
kubectl apply -f https://raw.githubusercontent.com/kubernetes/kubernetes/master/cluster/addons/rbac/rbac-pod-security-policy.yaml
确认是否成功创建了 PodSecurityPolicy 资源:运行
kubectl get psp
命令以查看新创建的 PodSecurityPolicy。
这样做后,再次尝试部署 metallb-controller 应用程序应该就可以正常工作了。