gpt4 book ai didi

Azure Kubernetes - 如何确定可用于内部负载均衡器的 DNS 名称?

转载 作者:行者123 更新时间:2023-12-04 08:09:19 27 4
gpt4 key购买 nike

我们已经定义了内部负载均衡器。

apiVersion: v1
kind: Service
metadata:
name: ads-aks-test
annotations:
service.beta.kubernetes.io/azure-load-balancer-internal: "true"
spec:
type: LoadBalancer
ports:
- protocol: TCP
port: 9000
selector:
app: ads-aks-test

它有自己的IP和外部IP。我们希望从另一个虚拟网络中的虚拟机访问此服务。我们需要提前知道它的 DNS 名称 - 完全限定名称,因为我们正在从部署平台部署多个应用程序,并且我们希望根据其服务名称了解在成功部署后如何访问它并且不等待 IP 地址被确定(手动或自动)。例如,这是我们的 APP1,之后我们会自动安装需要访问此服务的应用程序 APP2。因此,我们希望避免使用 IP 信息。

我们如何确定我们将从第二个应用程序访问它的服务“主机名”是什么?

我在文档中找到的唯一信息是:“如果您的服务使用动态或静态公共(public) IP 地址,您可以使用服务注释 service.beta.kubernetes.io/azure-dns-label-name 来设置面向公众的 DNS 标签。” - 但这是我们不想要的公共(public)负载均衡器!

最佳答案

设置ExternalDNS在您的 K8s 集群中。这是 Azure Private DNS 的指南。这将允许您通过 Kubernetes 资源动态更新为服务选择的任何主机名的 DNS 记录。

示例配置如下所示(摘自 Azure Private DNS 指南)

apiVersion: apps/v1
kind: Deployment
metadata:
name: externaldns
spec:
selector:
matchLabels:
app: externaldns
strategy:
type: Recreate
template:
metadata:
labels:
app: externaldns
spec:
containers:
- name: externaldns
image: k8s.gcr.io/external-dns/external-dns:v0.7.3
args:
- --source=service
- --source=ingress
- --domain-filter=example.com
- --provider=azure-private-dns
- --azure-resource-group=externaldns
- --azure-subscription-id=<use the id of your subscription>
volumeMounts:
- name: azure-config-file
mountPath: /etc/kubernetes
readOnly: true
volumes:
- name: azure-config-file
secret:
secretName: azure-config-file

关于Azure Kubernetes - 如何确定可用于内部负载均衡器的 DNS 名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66060812/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com