问题标签 [external-dns]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
258 浏览

kubernetes - gke 和自动创建的域以启用 http 路由

我需要使用 GKE 集群的域来访问集群和应用程序的入口,类似于 azure AKS http 插件,它提供了一个通用创建的域(不是自定义域) https://docs.microsoft.com/en -us/azure/aks/http-application-routing 谷歌云上也有解决方案吗?

我们的 GKE 创建/删除流程是 IaC 工具的一部分,我们正在自动化集群和我们的开发/测试/暂存应用程序部署。通用域创建和将托管 dns 区域绑定到集群资源为我们提供了极大的灵活性。否则,我们必须创建自定义域和托管 dns 区域,它们将是静态的,并给配置工具带来不必要的复杂性。

0 投票
1 回答
199 浏览

kubernetes - 如何找出 Kubernetes dns-controller 没有为我们自己/公司域创建记录的原因?

我们在 AWS 中基于 KOPS 的 Kubernetes 集群停止在 Route53 中创建外部 dns 记录,例如:service-name-svc.testing.companydomain.com。有什么方法可以检查为集群中工作的 dns-controller 设置了什么标志?欢迎任何其他有关如何对其进行故障排除的建议!

考虑到这一点,如下记录: service-name-svc.namespace.svc.cluster.local 可以很好地解析。

0 投票
0 回答
365 浏览

kubernetes - kubernetes external-dns 未更新 dns:“HTTP 请求失败:获取 [url]:x509:证书对 [router domain] 有效,而不是 api.cloudflare.com”

我正在尝试按照文档中所述为裸机 microk8s 服务器设置外部 DNS,使用 Cloudflare 作为我的 DNS 服务。使用 cloudflare 的 API 令牌部署他们的 pod 似乎工作正常,但在我部署测试 pod 的那一刻,我开始收到如下所示的消息流:

而且我的 DNS 没有更新。

我发现我得到 'unifi.local' 很奇怪 - 这是我的 Ubiquiti 路由器/网关设备的证书,但我不确定它为什么要寻找 api.cloudflare.com?我也不确定是什么我应该在这里做 - 'unifi.local' 证书可能并不理想,但我绝对不应该将证书更改为似乎来自 api.cloudflare.com .... 对吗?

  • 更新信息:

根据用户 x4k3p 的要求,提供更多信息:

  • 我正在使用 microk8s 附带的标准核心 DNS。这是 microk8s 状态输出:

挖掘 api.cloudflare.com 的输出:

(这些都不是我的 IP;我在 50.xxx.xxx.xxx 范围内)

  • 挖谷歌:
0 投票
0 回答
768 浏览

amazon-web-services - 外部 DNS - 所有记录都是最新的,匹配的托管区域没有更改

我在集群上创建了一个外部 DNS,但没有为 alb 端点创建记录。日志显示“跳过记​​录,因为没有检测到托管区域匹配记录 DNS 名称所有记录已经是最新的,匹配的托管区域没有更改”

这是我的外部 DNS 清单:我遵循了这个 [tutorial][1]

[1]:http://%20https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/aws.md)

以下是服务清单:

这是我的入口清单:

0 投票
5 回答
13211 浏览

amazon-web-services - 无权执行 sts:AssumeRoleWithWebIdentity-403

我一直在尝试使用 k8s-sig 组提供的指南运行 external-dns pod。我已遵循指南的每一步,并收到以下错误。

我使用 Terraform 创建了 AWS IAM 策略,并成功创建了它。除了我使用过的服务帐户的 IAM 角色外eksctl,其他一切都是通过 Terraform 旋转的。

但后来我找到了这篇文章,它说使用 awscli 创建 AWS IAM 策略可以消除这个错误。所以我删除了使用 Terraform 创建的策略,并使用 awscli 重新创建了它。然而,它抛出了同样的错误错误。

下面是我的外部 dns yaml 文件。

我摸不着头脑,因为在网络的任何地方都没有适当的解决方案来解决这个错误。希望在这个论坛中找到解决这个问题的方法。

最终结果必须显示如下内容并填写托管区域中的记录。

0 投票
1 回答
612 浏览

azure - 通过 Terraform 和 Helm 添加和安装 Bitnami 外部 DNS 后 NMI pod 中出现错误 - 找不到 pod 的 AzureIdentityBinding

我正在努力为 ExternalDNS 绑定 azureIdentity 并将 DNS 条目放入我们的区域。

关键错误:I0423 19:27:52.830107 1 mic.go:610] 找不到与选择器匹配的 pod default/external-dns-84dcc5f68c-cl5h5 的 AzureIdentityBinding:external-dns。它将被忽略此外,由于 pod 和选择器/aadpodidbinding 不匹配,因此不会创建 azureAssignedIdentity。

我正在使用 Terraform、Helm、Azure、Azure AKS、VSCODE 以及到目前为止的三个 Kubernetes 附加组件——aad pod identity、application-gateway-kubernetes-ingress 和 Bitnami external-dns 构建 IaaC。

由于未绑定身份,因此未创建 azureAssignedIdentity,并且 ExternalDNS 无法将记录放入我们的 DNS 区域。

名称和 aadpodidbindings 似乎是正确的。我已经尝试在 Terraform kubectl_manifest 提供程序中为 Bitnami ExternalDNS 的 Helm 安装传递 fullnameOverride。我试过禁止 ExternalDNS 名称和标签上的后缀。我尝试在集群本身上编辑 Helm 和 Kubernetes YAML 以尝试强制绑定。我尝试使用用于 AAD Pod 标识并位于集群的 nodepools 资源组中的 AKS 用户托管标识。我试过让 Bitnami ExternalDNS 配置和添加一个 azure.json 文件,并且在添加和安装 ExternalDNS 之前我也手动完成了。我尝试将托管标识分配给 AKS 群集的 VMSS。

谢谢!

JBP

0 投票
2 回答
103 浏览

amazon-web-services - AWS Route53 是否支持 ACL 以将 TXT 记录限制为公共

AWS Route53 DNS 是否支持任何类型的专有访问列表 (ACL) 以将某些 DNS 记录(TXT 记录)限制为公众,但仍保持这些 TXT 记录可从 AWS 账户内访问?

我知道 DNS 服务器的目的是向公众公开所有 DNS 记录,但一些 TXT 记录可能对实施过于暴露。

示例:Kubernetes“外部 DNS 控制器”创建 A 记录并添加 TXT 记录。DNS 控制器依赖于 TXT 记录中的“所有者”属性来确定它是否允许对该记录进行更改,因此无法完全删除 TXT 记录。

0 投票
1 回答
146 浏览

amazon-web-services - kubernetes (eks) 中是否有用于外部 DNS 的选择器,以路由到正确的 Fargate 实例?

我刚刚使用外部 DNS 设置了一个私有 EKS 集群。服务在 Fargate 实例上公开,并可通过 https://IP 访问。该服务还带有注释

因此,DNS 条目由外部 DNS (bitnami) 创建。然而,它会路由到我在我的 EKS 集群中运行的所有 IP 地址,而不是运行该服务的一个(IP)地址,我不知道为什么。

Ingress 的类似设置只是找到了 DNS 条目路由到负载均衡器的位置。所以我的问题是我是否错过了某种选择器来将 DNS 条目路由到唯一一个正确的 IP。

我的服务看起来像这样

提前致谢,

埃里克

0 投票
1 回答
391 浏览

google-cloud-platform - google-cloud-platform:外部 DNS 配置不起作用

基本信息:

我按照以下链接在 google-cloud-platform 中配置了外部 DNS。

https://cloud.google.com/migrate/compute-engine/docs/4.2/how-to/networking/using-external-dns

但我认为 google-cloud-platform 不使用给定的肉数据密钥及其使用这些密钥来配置 DNS 的 Velostrata。

另一种方法是在“Cloud DNS”->“DNS Server Policies”下添加外部 DNS 配置。

在 google-cloud-platform 中配置外部 DNS 的步骤:

  1. 使用内部(10.36.2.15)和外部 IP 在区域“us-west1-a”中创建 Windows2016 服务器并配置 DNS
  2. 在“计算引擎”->“设置”->“元数据”中添加了以下键值对,如上述链接所述:
  1. 转到“网络服务”->“云 DNS”->“DNS 服务器策略”->“创建策略”并添加以下内容:
  1. 转到“VPC 网络”->“VPC 网络”-> 选择“默认”VPC 检查“DNS 服务器策略”:已应用“gcp-dns-server1”

  2. 现在,当我在“默认”子网中创建一个新的虚拟机并检查“/etc/resolv.conf”时,机器配置了内部 DNS

    虚拟机成功连接到网络并能够 ping DNS。

  3. 我期待“/etc/resolv.conf”中的新虚拟机 DNS 是“10.36.2.15”,VM 应该自动选择它,但它不起作用。

注意:当我在“/etc/resolv.conf”中手动提供 DNS“10.36.2.15”时,它可以正常工作并具有预期的名称解析。这意味着没有端口问题,VM 可以与 DNS 成功通信。

我需要的是 VM 应该在启动时自动采用外部 DNS,并且条目应该反映在 google-cloud-platform 的 VM 中的“/etc/resolv.conf”中。dhclient 文件也有内部 DNS 条目。

有什么方法可以告诉 google-cloud-platform 使用外部配置的 DNS(或覆盖内部 DNS 条目)并使用外部 DNS 自动更新 VM(在启动时或刷新 dhclient 服务时)上的“/etc/resolv.conf” ?

0 投票
0 回答
133 浏览

kubernetes - Kubernetes ExternalDNS 未在 Azure DNS 区域中创建记录集

我按照这个来部署 K8s ExternalDNS 并做了以下事情:

  • 创建了 Azure 应用服务域和 DNS 区域(即demo.com
  • 为 AKS 群集启用托管标识
  • 为 DNS 区域的 AKS 托管标识分配了参与者角色
  • 为 ExternalDNS 创建了 K8s 密钥(使用azure.json
  • 在默认 K8s (AKS) 命名空间中部署 ExternalDNS
  • host: api.demo.com使用路径和创建了 2 个入口/foo& /bar(仅供参考,AKS AGIC 已启用,并且“静态公共 IP”正在被应用程序网关使用)

如果我理解正确,ExternalDNS 应该在 Azure DNS 区域中创建记录集,并且入口应该可以工作。但是 ExternalDNS 没有创建记录集(入口不起作用)。

仅供参考,如果我执行以下操作,那么一切正常

  • 创建一个别名记录集,"Alias type: Azure resource"它指向应用程序网关使用的“静态公共 IP”
  • 分别用[Route("api/foo")]&注释的控制器[Route("api/bar")]
  • host: demo.com使用和路径创建 2 个入口api/foo/*&api/bar/*
  • 为每个入口使用注释:(appgw.ingress.kubernetes.io/backend-path-prefix: "/foo/"与 Bar API 相同"/bar/":)

但是,我想要的是托管我的 API api.demo.com(还有 SSL 和 Let's Encrypt)

foo-ingress.yaml

external-dns.yaml