ingress-nginx 可以用于许多用例,适用于各种云服务提供商,并支持多种配置。在本节中,您可以找到一个常见的使用场景,其中由 ingress-nginx 提供支持的单个负载均衡器将根据主机名将流量路由到 2 个不同的 HTTP 后端服务。
首先按照说明安装 ingress-nginx。然后想象一下,您需要暴露已经安装的两个 HTTP 服务,myServiceA
和 myServiceB
,并配置为 type: ClusterIP
。
假设你想在 myServiceA.foo.org
上暴露第一个,在 myServiceB.foo.org
上暴露第二个。
如果集群版本低于 1.19,您可以像这样创建两个 ingress 资源:
`apiVersion: networking.k8s.io/v1beta1 kind: Ingress metadata: name: ingress-myservicea spec: ingressClassName: nginx rules:
- host: myservicea.foo.org
http:
paths:
- path: / backend: serviceName: myservicea servicePort: 80
apiVersion: networking.k8s.io/v1beta1 kind: Ingress metadata: name: ingress-myserviceb annotations: # 使用共享的 ingress-nginx kubernetes.io/ingress.class: "nginx" spec: rules:
- host: myserviceb.foo.org
http:
paths:
- path: / backend: serviceName: myserviceb servicePort: 80`
如果集群使用 Kubernetes 版本 >= 1.19.x,则建议创建 2 个 ingress 资源,使用下面显示的 yaml 示例。这些示例符合 networking.kubernetes.io/v1
api。