【问题标题】:multiple ingress controller in kubernetesKubernetes 中的多个入口控制器
【发布时间】:2022-07-04 21:33:29
【问题描述】:

我有一个运行在裸机 kubernetes 集群上的微服务架构。我们主要有两个服务,其中一个是公开的,另一个是内部可用的。我正在使用 ingress nginx 在内部公开我的服务,但现在我还必须公开其他服务,所以我想为此使用另一个入口控制器。 当我尝试在不同的命名空间中部署另一个入口控制器时,我收到如下错误:

错误:无法观看 *v1.Endpoints:未能列出 *v1.Endpoints:端点被禁止:用户“system:serviceaccount:ingress-nginx:ingress-nginx”无法列出 API 组“”中的资源“endpoints”在集群范围内

我的第一个入口也停止正常工作。

我正在使用的入口部署 yaml 是:
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.1.0/deploy/static/provider/baremetal/deploy.yaml

然而,我在另一个命名空间中使用的第二个入口 yaml 是:https://github.com/wali97/second-ingress-controller.yaml/blob/main/ingress.yaml

【问题讨论】:

  • 你不应该需要多个入口控制器。入口控制器的全部意义在于,单个应用程序将管理入口流量路由到所有面向外部的服务(即那些定义了入口资源的服务)。
  • @user31601 我想使用多入口概念,因为我不想路由来自同一个 IP 的所有请求。我希望为这两种服务保留单独的路线。
  • 很公平。我预计该错误与您在两个文件中定义相同的集群角色(集群角色没有命名空间)这一事实有关。我不知道重新应用相同的角色定义是否会删除现有的绑定(我希望不会),或者也许在某些时候你做了kubectl delete -f?无论如何,我认为首先要尝试的是确保集群角色只在一个地方定义。您可以将同一个角色绑定到多个服务帐户。如果每个命名空间有一个单独的控制器,则删除集群角色并改用角色可能更安全。

标签: kubernetes-ingress ingress-controller


【解决方案1】:

你解决了吗?

谢谢!

【讨论】:

猜你喜欢
  • 2018-07-22
  • 2021-01-28
  • 1970-01-01
  • 2021-04-17
  • 2021-11-20
  • 2021-12-23
  • 1970-01-01
  • 2020-02-10
  • 2018-10-29
相关资源
最近更新 更多