错误 kubebootstrap:工人恐慌:ingresses.networking.k8s.io 被禁止:用户无法在 API 组 "networking.k8s.io" 中列出资源 "ingresses"

ERROR kubebootstrap: WORKER PANICKED: ingresses.networking.k8s.io is forbidden: User cannot list resource "ingresses" in API group "networking.k8s.io"

我目前在托管 Lucidworks Fusion 的 Amazon EKS 集群上遇到问题。首先,我有一个 Amazon EKS v1.18 集群,然后升级到 v1.19,一切顺利。我的集群中也有 ingress-nginx-3.7.1 运行 然后升级到 ingress-nginx-4.0.19那时一切似乎仍然正常运行。也就是说,一旦我将我的集群升级到 v1.20,当耗尽我的 pods 并在我的新工作节点中重新启动它们时,所有 pods 都正确重新启动,除了我的 Ambassador pod 现在卡在 CrashLoopBackOff 状态。我查看了这个 pod 的日志,发现了以下错误:

2022/04/08 14:00:35 ERROR(s): kubebootstrap: WORKER PANICKED: ingresses.networking.k8s.io is forbidden: User "system:serviceaccount:sandbox1:sandbox1-ambassador" cannot list resource "ingresses" in API group "networking.k8s.io" in the namespace "sandbox1"

有人知道这是什么意思吗?我相信这是在告诉我一些与权限相关的事情,但我不太确定。另外我想了解是什么导致了这个问题,是将我的 EKS 集群升级到 v1.20 还是升级了 ingress-nginx 或完全不同的东西?最后,我想了解如何解决此问题并再次正确获取此 pod 运行?欢迎任何帮助。

进一步深入研究后,我发现为了解决这个问题,我需要编辑 sandbox1-ambassador 角色。所以我执行了下面的命令

kubectl edit role sandbox1-ambassador

并且我将以下内容附加到此配置中:

- apiGroups:
  - networking.k8s.io
  resources:
  - ingresses
  verbs:
  - list
  - watch
  - get

保存这些更改并关闭编辑会话后,我重新启动了 Ambassador pod,一切又开始正常工作了。