我有一个 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