首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我如何让一个入口由两个HAProxy入口控制器中的一个来处理?

我如何让一个入口由两个HAProxy入口控制器中的一个来处理?
EN

Stack Overflow用户
提问于 2021-07-29 17:11:29
回答 1查看 250关注 0票数 0

我有两个独立的IngressControllers,一个在内部,一个在外部。我想定义为每个入口使用哪个控制器。

我为外部控制器定义了--ingress.class=hapxroxy-ext arg,为内部控制器定义了--empty-ingress-class

入口服务

代码语言:javascript
复制
apiVersion: v1
kind: Service
metadata:
  annotations:
  labels:
    run: ext-haproxy-ingress
  name: ext-haproxy-ingress
  namespace: ext-haproxy-controller
spec:
  selector:
    run: ext-haproxy-ingress
  type: LoadBalancer
---
apiVersion: v1
kind: Service
metadata:
  annotations:
    "service.beta.kubernetes.io/azure-load-balancer-internal": "true"
  labels:
    run: haproxy-ingress
  name: haproxy-ingress
  namespace: haproxy-controller
spec:
  selector:
    run: haproxy-ingress
  type: LoadBalancer

我有IngressClasses。

代码语言:javascript
复制
apiVersion: networking.k8s.io/v1
kind: IngressClass
metadata:
  name: external-lb
spec:
  controller: haproxy.org/ingress-controller/hapxroxy-ext
---
apiVersion: networking.k8s.io/v1
kind: IngressClass
metadata:
  name: internal-lb
  annotations:
    "ingressclass.kubernetes.io/is-default-class": "true"
spec:
  controller: haproxy.org/ingress-controller

我有一个入口

代码语言:javascript
复制
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ingress
  annotations:
    "kubernetes.io/ingress.class": internal-lb
spec:
  ingressClassName: internal-lb
...

尽管只将入口映射到internal-lb,但internal-lbexternal-lb都处理请求。

这在docs中看起来很简单,但我遗漏了一些东西。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-25 03:26:56

此问题是由于在ingress.yaml中使用IngressClassName时https://github.com/haproxytech/kubernetes-ingress中的错误造成的。如果你从你的ingress.yaml中删除IngressClassName,只使用"kubernetes.io/ingress.class":注解这个问题就会消失,它更像是一种变通而不是修复。

此问题已提出,但仍处于打开状态,请参阅下面的链接以获取更新。

https://github.com/haproxytech/kubernetes-ingress/issues/354#issuecomment-904551220

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68580249

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档