使用 Ingress Controller 向外部域公开 OpenShift 服务

使用 Ingress Controller 向外部域公开 OpenShift 服务

我有一个 OpenShift 集群,其中设置了内部域的默认 Ingress 控制器,比如 app.internal.com。我需要将特定服务公开到互联网,并通过现有外部域的 Ingress 访问它们,例如 app.external.com/api/...

我尝试为该外部域创建第二个 Ingress 控制器,但遇到了问题。我的所有路由和 Ingress 资源似乎都自动分配给了默认的内部 Ingress 控制器。

我正在寻求有关如何成功设置外部 Ingress 控制器来处理这些路由并将流量引导至适当服务的指导。如果您能提供有关潜在配置、最佳实践以及安全性和可扩展性方面的任何注意事项的见解,我将不胜感激。

提前感谢您的帮助!

答案1

这种拥有多个不同路由器(Ingress Controller)的过程称为入口共享或路由器共享。有多种方法可以确定哪些路由通向哪个 IngressController,例如匹配标签或匹配命名空间。

有关详细信息,请参阅文档:https://docs.openshift.com/container-platform/4.12/networking/ingress-sharding.html

但是这里有一个直接来自文档的标签选择器匹配的示例:

apiVersion: v1
items:
- apiVersion: operator.openshift.io/v1
  kind: IngressController
  metadata:
    name: dev-router
    namespace: openshift-ingress-operator
  spec:
    namespaceSelector:
      matchLabels:
        name: dev

相关内容