簡體   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