【发布时间】:2019-08-14 09:27:25
【问题描述】:
我正在为谷歌云实例中的 Web 应用程序设置裸机 kubernetes 集群,我正在通过入口控制器连接到微服务。如何从所有传入主机访问入口控制器?
有一个 Pod 运行 Angular Web 应用程序,另一个 Pod 运行一个节点 API 微服务。 Angular Web 应用程序已在全球范围内公开。当从外部访问微服务并传递带有主机名的标头时,我能够获得预期的响应。在入口 yaml 中删除主机时,我无法访问入口。
kind: Ingress
metadata:
annotations:
ingress.kubernetes.io/rewrite-target: nginx
creationTimestamp: "2019-08-12T07:41:37Z"
generation: 7
name: test
namespace: default
resourceVersion: "546400"
selfLink: /apis/extensions/v1beta1/namespaces/default/ingresses/test
uid: 374836d2-34c3-4053-b0e3-9fe3f63167cc
spec:
rules:
- host: bar.com
http:
paths:
- backend:
serviceName: login-service
servicePort: 3000
path: /login-service
- backend:
serviceName: organization-service
servicePort: 3000
path: /organization-service
status:
loadBalancer:
ingress:
- ip: 10.128.0.16
- ip: 203.0.113.2
我除了要从ingress中指定的host(bar.com)以外的所有主机访问的ingress。
还有其他方式从外部集群(全局)访问 API 微服务吗?
【问题讨论】:
-
Ingress 本身不是由 Service 暴露的吗?
-
@weibeld 是的,我已经暴露了 ingress-nginx 服务。
标签: kubernetes web-hosting kubernetes-ingress resolve nginx-ingress