【发布时间】:2020-07-06 20:00:52
【问题描述】:
如果我不能正确解释,可能很难解释,非常抱歉。
在我们的 k8s 集群中,我们有两个 OpenStack-Load Balancer,因为我们希望通过必须面向 Internet 的入口公开我们的应用程序。在同一个集群中,我们还部署了 pgadmin4,它必须面向 Intranet。(只能从内部网络访问。)
所以在这些 OpenStack-LB 之前,我们还有 f5 负载均衡器,它处理 https 连接、ssl .. 以及通过 Intranet 或 Internet 公开的逻辑。
MyApp 面向互联网,需要通过 host.internet.net 访问
PgAdmin4 是 Intranet,需要通过 host.intranet.net/pgadmin4 访问
所以问题是,当我尝试使用 host.internet.net 通过入口公开我的应用程序时,它不起作用并且我收到以下错误,原因可能是它无法与正确的 openStack-LB 通信。当我尝试通过 openStack-lb IP 公开时,一切正常。
{"level":"error","msg":"找不到服务 开发/oneapihub-ui-dev","时间":"2020-03-26T05:20:05Z"} {"level":"error","msg":"找不到端点 dev/oneapihub-ui-dev","time":"2020-03-26T05:20:05Z"}
问题是,如何通过入口控制器处理这个问题?我应该安装另一个 traefik 入口控制器吗?
capel0068340585:~ semural$ kubectl get ingress -n ingress
NAME HOSTS ADDRESS PORTS AGE
ingress-traefik-dashboard * 80 21d
kubectl get tenantSpec -o yaml
loadBalancers:
- ip: <IP1>
name: LBaaS2
ports:
- extPort: 80
name: "80"
nodePort: 30001
- ip: <IP2>
name: LBaaS1
ports:
- extPort: 80
name: "80"
nodePort: 30000
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/oneapihub-ui-dev ClusterIP 10.254.173.130 <none> 80/TCP 15m
NAME ENDPOINTS AGE
endpoints/oneapihub-ui-dev 10.6.24.136:3000 15m
ingress:
enabled: true
annotations:
kubernetes.io/ingress.class: traefik
hosts:
- host: host.internet.net -> example
paths: [/]
tls: []
ingress:
enabled: ingress
annotations:
kubernetes.io/ingress.class: traefik
hosts:
- host: host.intranet.net
paths:
- /pgadmin4
【问题讨论】:
标签: kubernetes kubernetes-ingress traefik traefik-ingress