如何在 ingress 中使用 DNS

yas*_*ini 3 kubernetes

app1我用和部署了一个入口app2

example.com/app1  ---> app1
example.com/app2  ---> app2
Run Code Online (Sandbox Code Playgroud)

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

192.168.1.10    example.com
Run Code Online (Sandbox Code Playgroud)

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

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

Ric*_*ico 6

对于 DNS,您不能只使用example.com(由IANAexample.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
Run Code Online (Sandbox Code Playgroud)

在上述情况下,您必须拥有mydomain.com. 您可以在任何主要域名注册商(例如GoDaddy)处购买域名。

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

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

希望能帮助到你!