Kubernetes 如何在入口中使用DNS

Kubernetes 如何在入口中使用DNS,kubernetes,Kubernetes,我使用app1和app2部署入口 example.com/app1 ---> app1 example.com/app2 ---> app2 并在所有计算机中定义/etc/hosts 192.168.1.10 example.com 但我想知道在操作中如何使用DNS和入口 我该怎么办? 你给我带来了什么? 我被入口弄糊涂了。我应该如何在实际环境中使用它?我在K8s上部署了一组10或12个服务,需要一种方法将它们公开给移动客户端。我可以为每个服务创建loadBalance

我使用
app1
app2
部署入口

example.com/app1  ---> app1
example.com/app2  ---> app2
并在所有计算机中定义/etc/hosts

192.168.1.10    example.com
但我想知道在操作中如何使用DNS和入口

我该怎么办? 你给我带来了什么?
我被入口弄糊涂了。我应该如何在实际环境中使用它?

我在K8s上部署了一组10或12个服务,需要一种方法将它们公开给移动客户端。我可以为每个服务创建loadBalancer类型的服务,但它需要在AWS上有10个或更多loadBalancer,所有这些都指向同一组机器。取而代之的是,它只创建了loadBalancer类型的一个服务,即入口服务,它根据路径重定向到相应的服务。 入口用于在集群外部进行访问,在集群内部,您可以使用集群DNS进行访问。例如:my-svc.my-namespace.svc.cluster.local

检查此链接:

还有这个:

对于DNS,您不能只使用
example.com
example.com
归其所有)。您必须拥有入口上配置的DNS。例如:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: simple-fanout-example
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
  - host: mydomain.com
    http:
      paths:
      - path: /foo
        backend:
          serviceName: service1
          servicePort: 4200
在上述情况下,您必须拥有
mydomain.com
。你可以在任何专业购买你的域名

然后,您必须根据Kubernetes服务的设置(AWS、裸机等)对外公开入口,并在域注册管理器上有一个入口,指向该外部端点(对于
mydomain.com
)。例如,在AWS上,该条目将是如下所示的CNAME:
xxxxx-xxxxxxxxxx.us-west-2.elb.amazonaws.com

注意:您可以完全忽略主机,但入口将只为默认后端提供所述的最低入口资源。至于使用您自己的DNS服务器,只要您的DNS服务器正确地将mydomain.com解析为入口控制器所面对的外部IP,您也可以


希望有帮助

所以ingress和loadbalancer做同样的事情?我没有为云设计的loud providerK8s,所以有必要在本地做一些变通。我在amazon上运行它,k8s会自动为我创建一个loadbalancer。loadbalancer在机器级别为每个节点划分流量。入口使用相同的负载平衡器将传入的请求转发到正确的服务。该服务还可以将流量分配到不同的节点。我可以使用DNS服务器并且在入口中不使用域名吗?您可以完全忽略主机,但入口将只服务于所述的
默认
后端。DNS服务器,只要您的DNS服务器正确地将
mydomain.com
解析为入口控制器的外部IP,您就可以