我使用的是海底团队提供的kubernetes集群(不是minikube),我已经创建了traefik入口控制器和所有配置、入口容器,我们的应用程序正在集群中运行。现在我想使用域名或ip地址访问应用程序,为此,我创建了如下所示的侵入资源
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: traefik-web-ui
namespace: kube-system
spec:
rules:
- host: dummy.domain.com
http:
paths:
- path: /
backend:
serviceName: app-web-ui
servicePort: web我在这里没有得到主机名,因为应用程序在集群中运行,这个主机名应该是群集主节点名吗?实际prod环境中的主机名或ip地址应该是什么。
注意:我们没有使用任何云提供商,它只是简单的与kubernetes集群环境对接(集群是用Mirantis kubernetes配置的,客户端是Windows)。
发布于 2021-08-02 13:56:34
如果您使用入口后面的任何负载平衡器或任何带有负载均衡器的入口控制器,则必须在任何地方使用负载平衡器IP。
因此,您必须将Loadbalancer IP映射到DNS for dummy.domain.com,否则如果您不使用负载均衡器,则必须使用主IP。
您正在从local machine进行测试,您可以在etc/host文件中添加domain和IP的条目并进行检查。
发布于 2021-08-02 13:27:52
Ingress对象配置入口控制器,以将对dummy.domain.com的任何请求路由到您刚刚部署的应用程序。您需要更新主机上的dummy.domain.com /etc/ host 文件,以便将映射到入口控制器VM的IP地址,例如2192.168.50.212,该地址是主ip地址。
有关更多细节,请访问本教程:在您的Kubernetes集群之外运行HAProxy Kubernetes入侵控制器
发布于 2021-08-20 07:09:04
我能够通过向Infra请求新的域名(dns条目)来解决这个问题,对于这个域名,我已经映射了集群的主节点Ip地址,我们有3个管理节点,所以我将域名(dummy.domain.com)映射为3个manger节点Ip地址。
在此之后,我能够使用DNS名称和节点端口访问应用程序(app应用程序的service.yml中提到了节点端口)。
https://stackoverflow.com/questions/68622170
复制相似问题