问题标签 [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.
kubernetes - gke 和自动创建的域以启用 http 路由
我需要使用 GKE 集群的域来访问集群和应用程序的入口,类似于 azure AKS http 插件,它提供了一个通用创建的域(不是自定义域) https://docs.microsoft.com/en -us/azure/aks/http-application-routing 谷歌云上也有解决方案吗?
我们的 GKE 创建/删除流程是 IaC 工具的一部分,我们正在自动化集群和我们的开发/测试/暂存应用程序部署。通用域创建和将托管 dns 区域绑定到集群资源为我们提供了极大的灵活性。否则,我们必须创建自定义域和托管 dns 区域,它们将是静态的,并给配置工具带来不必要的复杂性。
kubernetes - 如何找出 Kubernetes dns-controller 没有为我们自己/公司域创建记录的原因?
我们在 AWS 中基于 KOPS 的 Kubernetes 集群停止在 Route53 中创建外部 dns 记录,例如:service-name-svc.testing.companydomain.com。有什么方法可以检查为集群中工作的 dns-controller 设置了什么标志?欢迎任何其他有关如何对其进行故障排除的建议!
考虑到这一点,如下记录: service-name-svc.namespace.svc.cluster.local 可以很好地解析。
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 范围内)
- 挖谷歌:
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)
以下是服务清单:
这是我的入口清单:
amazon-web-services - 无权执行 sts:AssumeRoleWithWebIdentity-403
我一直在尝试使用 k8s-sig 组提供的指南运行 external-dns pod。我已遵循指南的每一步,并收到以下错误。
我使用 Terraform 创建了 AWS IAM 策略,并成功创建了它。除了我使用过的服务帐户的 IAM 角色外eksctl
,其他一切都是通过 Terraform 旋转的。
但后来我找到了这篇文章,它说使用 awscli 创建 AWS IAM 策略可以消除这个错误。所以我删除了使用 Terraform 创建的策略,并使用 awscli 重新创建了它。然而,它抛出了同样的错误错误。
下面是我的外部 dns yaml 文件。
我摸不着头脑,因为在网络的任何地方都没有适当的解决方案来解决这个错误。希望在这个论坛中找到解决这个问题的方法。
最终结果必须显示如下内容并填写托管区域中的记录。
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
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 记录。
amazon-web-services - kubernetes (eks) 中是否有用于外部 DNS 的选择器,以路由到正确的 Fargate 实例?
我刚刚使用外部 DNS 设置了一个私有 EKS 集群。服务在 Fargate 实例上公开,并可通过 https://IP 访问。该服务还带有注释
因此,DNS 条目由外部 DNS (bitnami) 创建。然而,它会路由到我在我的 EKS 集群中运行的所有 IP 地址,而不是运行该服务的一个(IP)地址,我不知道为什么。
Ingress 的类似设置只是找到了 DNS 条目路由到负载均衡器的位置。所以我的问题是我是否错过了某种选择器来将 DNS 条目路由到唯一一个正确的 IP。
我的服务看起来像这样
提前致谢,
埃里克
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 的步骤:
- 使用内部(10.36.2.15)和外部 IP 在区域“us-west1-a”中创建 Windows2016 服务器并配置 DNS
- 在“计算引擎”->“设置”->“元数据”中添加了以下键值对,如上述链接所述:
- 转到“网络服务”->“云 DNS”->“DNS 服务器策略”->“创建策略”并添加以下内容:
转到“VPC 网络”->“VPC 网络”-> 选择“默认”VPC 检查“DNS 服务器策略”:已应用“gcp-dns-server1”
现在,当我在“默认”子网中创建一个新的虚拟机并检查“/etc/resolv.conf”时,机器配置了内部 DNS
虚拟机成功连接到网络并能够 ping DNS。
我期待“/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” ?
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