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

nab*_*llo -1 kubernetes nginx-ingress ambassador k8s-serviceaccount k8s-rolebinding

我目前在托管 Lucidworks Fusion 的 Amazon EKS 集群上遇到问题。首先,我有一个 Amazon EKS v1.18集群,然后我将其升级到v1.19,一切进展顺利。我的集群中还运行了ingress-nginx-3.7.1,然后我将其升级到ingress-nginx-4.0.19,此时一切似乎仍然正常运行。也就是说,一旦我将集群升级到v1.20,当耗尽我的 Pod 并在新工作节点中重新启动它们时,所有 Pod 都会正确重新启动,除了我的大使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"
Run Code Online (Sandbox Code Playgroud)

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

nab*_*llo 7

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

kubectl edit role sandbox1-ambassador
Run Code Online (Sandbox Code Playgroud)

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

- apiGroups:
  - networking.k8s.io
  resources:
  - ingresses
  verbs:
  - list
  - watch
  - get
Run Code Online (Sandbox Code Playgroud)

保存这些更改并关闭编辑会话后,我重新启动了大使窗格,一切都再次开始正常工作。