我在azure中的dns区域中有很多dns记录,我需要使用外部dns来自动创建/删除dns记录,但当外部dns在aks目录中发现除下面这个标签之外的其他标签时,我需要按标签进行筛选:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: sample-rule
labels:
ingress: externaldns
annotations:
kubernetes.io/ingress.class: "nginx"
ingress: "externaldns"
赫尔姆司令部:
helm install external-dns-frontend-sint bitnami/external-dns
--wait
--namespace externaldns
--set txtOwnerId=az-frontend-aks
--set provider=azure
--set azure.resourceGroup=az-tools
--set txtOwnerId=az-frontend-ak
--set azure.tenantId=xxxxxxxxxxxxxxxxxxxxxxx
--set azure.subscriptionId=xxxxxxxxxxxxxxxxxxxxxxxx
--set azure.aadClientId=xxxxxxxxxxxxxxxxx
--set azure.aadClientSecret=xxxxxxxxxxxxxxx
--set azure.cloud=AzurePublicCloud
--set policy=sync
--set labelfilter=”ingre=externaldns”
--set annotationfilter=”ingress=externaldns”
--set domainFilters={azdns.test.com}
我需要知道如何使用这个参数与Bitnami/external dns chart来激活标签过滤器。请帮忙
最后:过滤器不起作用他在同一个名称空间中从入口创建了所有记录
•您可以将label-filter命令与bitnami外部dns图表一起使用,如下所示,以过滤掉外部dns中未作为aks入口传递的标签。
‘ $helm install my-release -f values.yaml bitnami/external-dns ‘
在values.yaml文件中,指定标签过滤器和注释过滤器参数如下:-
labelfilter: “ingress: ‘externaldns’”
annotationfilter: “ingress: ‘externaldns’”
或
‘ $helm install my-release
--set-labelfilter=”ingress=externaldns”
--set-annotationfilter=”ingress=externaldns”
bitnami/external-dns ’
此外,请考虑"annotation filter"使用标签选择器通过注释筛选由外部dns管理的源,而"label filter"仅使用标签选择器选择由外部dns管理的源。因此,基于注释的过滤意味着外部dns控制器将接收该类型的所有资源,然后在客户端上进行过滤。在具有许多频繁更改的资源的较大集群中,这可能会导致性能问题。如果只有一些资源需要由外部dns的实例管理,那么可以使用标签过滤而不是注释过滤。这意味着只有那些与"--label filter"中指定的选择器匹配的资源才会传递给控制器。
请找到以下链接以供参考:-
https://github.com/kubernetes-sigs/external-dns/blob/master/docs/faq.md#running-内部和外部dns服务
https://github.com/bitnami/charts/tree/master/bitnami/external-dns/#external-dns参数
有两个问题:
-
注释过滤器错误,过滤器必须使用大写字母
注释过滤器:"入口:外部">
-
标签过滤器是一项新功能,必须在新的赫尔曼图版本5.5.1 中使用