【发布时间】:2019-10-31 10:36:59
【问题描述】:
我使用 Ingress Controller 在 GKE 上部署集群
我使用Helm 安装以下内容:
- 已安装Ingress Controller
- 已部署负载均衡器服务(也在 GCP 上创建负载均衡器)
我还部署了Ingress Object(配置如下)
然后我观察到以下状态...
入口控制器通过两个端点暴露(通过负载均衡器服务):35.197.XX.XX:80, 35.197.XX.XX:443
这两个端点由云负载均衡器公开。 我没有问题。
但是,当我执行kubectl get ing ingress-service -o wide 时,它会打印出以下信息。
NAME HOSTS ADDRESS PORTS AGE
ingress-service k8s.XX.com.tw 34.87.XX.XX 80, 443 5h50m
我真的不使用ADDRESS栏下的IP。
我还可以看到,Google 在我的 Ingress 配置文件的末尾添加了一些额外的信息,关于我的负载均衡器 IP。
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
....(ommitted)
spec:
rules:
- host: k8s.XX.com.tw
http:
paths:
- backend:
serviceName: client-cluster-ip-service
servicePort: 3000
path: /?(.*)
- backend:
serviceName: server-cluster-ip-service
servicePort: 5000
path: /api/?(.*)
tls:
- hosts:
- k8s.XX.com.tw
secretName: XX-com-tw
status:
loadBalancer:
ingress:
- ip: 34.87.XX.XX
根据Google's doc,这个(34.87.XX.XX)看起来像一个外部IP,但是我用http://34.87.XX.XX无法访问它
我的问题是,既然我们已经有一个外部 IP (35.197.XX.XX) 来接收流量,为什么我们需要这个地址用于 ingress-service?
如果它是内部或外部 IP 地址? 这个地址绑定到什么? 这个地址到底是做什么用的?
谁能解释一下?非常感谢!
【问题讨论】:
标签: kubernetes kubernetes-ingress nginx-ingress