Ingress yml kubernetes 集群中的主机名

问题描述 投票:0回答:4

我使用的是 infra 团队提供的 kubernetes 集群(不是 minikube),我创建了 traefik 入口控制器以及所有配置、入口容器,我们的应用程序在集群中运行。现在我想使用域名或IP地址访问应用程序,为此,我创建了一个Ingress资源,如下所示

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

我在这里没有得到的是主机名,因为应用程序在集群中运行,所以这个主机名应该是集群主节点名称吗?实际生产环境中的主机名或IP地址应该是什么。

注意:我们没有使用任何云提供商,它只是带有 kubernetes 集群环境的普通 docker(集群在 Mirantis kubernetes 中配置,客户端是 Windows)。

kubernetes kubectl kubernetes-ingress kubernetes-pod
4个回答
4
投票

如果您在入口后面使用任何负载均衡器或任何带有负载均衡器的入口控制器,则必须在任何地方使用负载均衡器 IP。

因此,您必须将

Loadbalancer IP
映射到
DNS
dummy.domain.com
,否则,如果您不使用负载均衡器,则必须使用主 IP。

您正在从

local machine
进行测试,您可以在
domain
文件中添加
etc/host
和IP的条目并检查。


2
投票

Ingress 对象配置入口控制器,将对 dummy.domain.com 的任何请求路由到您刚刚部署的应用程序。您需要更新主机上的 /etc/hosts 文件,以将 dummy.domain.com 映射到入口控制器虚拟机的 IP 地址,例如 2192.168.50.212,该地址是主 IP 地址。

有关更多详细信息,请访问本教程:在 Kubernetes 集群外部运行 HAProxy Kubernetes 入口控制器


0
投票

我能够通过向 Infra 团队请求新域名(dns 条目)来解决这个问题,对于这个域名,我已经映射了集群的主节点 IP 地址,我们有 3 个管理节点,所以我已经映射了域名(dummy.domain.com) 具有 3 个管理节点 Ip 地址。

此后,我能够使用 DNS 名称和节点端口访问应用程序(节点端口在 app-web-ui 应用程序的 service.yml 中提到)。

https://dummy.domain.com:3429


0
投票

在针对不同环境的 EKS 私有集群之前,我在 api 网关中使用单个 nlb 作为 vpc 链接。在我的入口文件中,我知道我可以使用主机名区分环境,因为不同环境的路径是相同的。我可以使用什么作为主机名。我应该使用单个 nlb IP 为不同的环境创建不同的域,并在 dev 入口和 qa 入口的主机中提及

© www.soinside.com 2019 - 2024. All rights reserved.