coredns kubernetes插件,对指定分区namespace做域名解析

文章目录

    • 使用namespace_label表达式
    • 使用label表达式
    • 参考

kubernetes [ZONES...] {
    endpoint URL
    tls CERT KEY CACERT
    kubeconfig KUBECONFIG CONTEXT
    namespaces NAMESPACE...
    labels EXPRESSION
    pods POD-MODE
    endpoint_pod_names
    ttl TTL
    noendpoints
    transfer to ADDRESS...
    fallthrough [ZONES...]
    ignore empty_service
}

zjjpt-esnamespace分区下有如下的服务:
在这里插入图片描述
zjjpt-redisnamespace分区下有如下的服务:
coredns kubernetes插件,对指定分区namespace做域名解析_第1张图片
mysqlnamespace分区下有如下的服务:
coredns kubernetes插件,对指定分区namespace做域名解析_第2张图片

使用namespace_label表达式

namespaces NAMESPACE [NAMESPACE…] only exposes the k8s namespaces listed. If this option is omitted all namespaces are exposed

namespace_labels EXPRESSION only expose the records for Kubernetes namespaces that match this label selector. The label selector syntax is described in the Kubernetes User Guide - Labels. An example that only exposes namespaces labeled as “istio-injection=enabled”, would use: labels istio-injection=enabled.

labels EXPRESSION only exposes the records for Kubernetes objects that match this label selector. The label selector syntax is described in the Kubernetes User Guide - Labels. An example that only exposes objects labeled as “application=nginx” in the “staging” or “qa” environments, would use: labels environment in (staging, qa),application=nginx.

label表达式语法:k8s官方文档:label语法

zjjpt-rediszjjpt-es的namespace上打label:

kubectl label ns zjjpt-redis coredns=middleware
kubectl label ns zjjpt-es coredns=middleware

在这里插入图片描述
corednsCorefile配置文件configmaps中加入namespace_label配置:
coredns kubernetes插件,对指定分区namespace做域名解析_第3张图片
重启coredns pod后测试,nslookup指定域名解析IP为coredns的podIP,可以看到mysql分区下的域名不能解析。
coredns kubernetes插件,对指定分区namespace做域名解析_第4张图片

使用coredns!=middleware标签报错:
coredns kubernetes插件,对指定分区namespace做域名解析_第5张图片
使用coredns notin (middleware)标签:
coredns kubernetes插件,对指定分区namespace做域名解析_第6张图片

使用label表达式

如果使用label的方式,配置如下:
coredns kubernetes插件,对指定分区namespace做域名解析_第7张图片
此时只需要给指定的svc配置上改label即可:
在这里插入图片描述
选择包含标签middleware的svc:会匹配到middleware=redismiddleware=mysql等key是middleware的对象。
coredns kubernetes插件,对指定分区namespace做域名解析_第8张图片

参考

coredns kubernetes plugin describe

你可能感兴趣的:(coredns)