如何在入口使用DNS

时间:2019-03-20 17:53:48

标签: kubernetes

我使用"The price for this month is:' + r"$\bf{" + USD${df.price.iloc[-1]} + "}$" app1部署一个入口。

app2

并在所有机器上定义/ etc / hosts。

example.com/app1  ---> app1
example.com/app2  ---> app2

但是我想知道在操作中如何使用 DNS 和入口。

我该怎么办? 什么入口带给我? 我对入口感到困惑。我应该如何在实际环境中使用它?

2 个答案:

答案 0 :(得分:2)

使用DNS不能仅使用example.comexample.comIANA拥有)。您必须拥有在入口上配置的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。您可以在domain registrar之类的任何主要GoDaddy上购买域名。

然后,您必须根据自己的设置(AWS,裸机等)使用LoadBalancer Kubernetes服务在外部公开您的Ingress,并在域注册服务商经理上输入A, or CNAME条目,指向该外部端点(用于mydomain.com)。例如,在AWS上,该条目将是一个如下所示的CNAME:xxxxx-xxxxxxxxxxxx.us-west-2.elb.amazonaws.com

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

希望有帮助!

答案 1 :(得分:0)

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

检查此链接:https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/

还有这个: https://kubernetes.io/docs/concepts/services-networking/ingress/