繁体   English   中英

使外部DNS与Kops AWS 1.7 K8s集群中的入口对象一起使用

[英]Getting External-DNS to work with Ingress Objects in Kops AWS 1.7 K8s Cluster

我试图弄清楚如何使此设置起作用:

  • 我正在使用从AWS中的kops旋转的Kube 1.7(无RBAC)
  • 我有一个用于整个集群的nginx入口控制器,该控制器在kube-system使用LoadBalancer服务,通过Helm安装了名称空间
  • 我在kube-systemcert-manager设置,通过Helm和使用ClusterIssuers安装
  • 我在通过Helm安装的kube-system安装了external-dns
  • 我有多个应用程序,每个名称空间一个,在每个名称空间中都有关联的Ingress对象。
  • 我正在使用cert-managercertmanager.k8s.io/cluster-issuer: letsencrypt-prod )和external-dnsdns.alpha.kubernetes.io/external: app.contoso.com )的适当注释对Ingress进行注释。

在这种情况下, cert-managerIngress对象做出了适当的反应(对其进行了修改以完成ACME挑战),但是external-dns没有做任何事情(日志显示所有主机名都是最新的)。 如果我为与LB服务关联的ELB手动添加Route53记录,那么一切都会按预期进行。 检查Ingress对象,我看到状态块如下所示:

status:
  loadBalancer:
    ingress:
    - {}

我想这就是为什么external-dns不响应的原因? 我该如何工作? 根据文档

可以在以下位置找到更多故障排除信息(pod定义,入口定义,控制器日志等): https : //gist.github.com/DWSR/f6d596850346223393bec23b289c9731

我自己解决了。 --publish-service入口控制器具有--publish-service命令行参数,这将导致它更新入口对象上的状态字段,从而使external-dns创建适当的DNS记录。 通过Helm安装时,只需将.Values.controller.publishService.enabled设置为true ,即可生效。

资料来源:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM