説明
このプラグインを使用すると、追加のゾーンが Kubernetes service とヘッドレスサービスの外部 IP アドレスを解決できます。このプラグインは kubernetes プラグインもロードされている場合にのみ有効です。
このプラグインでは外部ゾーンを使用してクラスタ内の IP アドレスを解決します。A、AAAA、SRV および PTR レコードのクエリのみを処理します。適切な DNS ゾーンにするには、ゾーンの頂点に対する SOA および NS クエリを処理します。
デフォルトでは、ゾーンの頂点は以下のように表示されます(使用されているゾーンが example.org
であると想定)。
example.org. 5 IN SOA ns1.dns.example.org. hostmaster.example.org. (
12345 ; serial
14400 ; refresh (4 hours)
3600 ; retry (1 hour)
604800 ; expire (1 week)
5 ; minimum (4 hours)
)
example.org 5 IN NS ns1.dns.example.org.
ns1.dns.example.org. 5 IN A ....
ns1.dns.example.org. 5 IN AAAA ....
レコード DNS のニーズに応じて dns
サブドメインを使用していることに注意してください(apex
ディレクティブを参照)。また、SOA のシリアル番号が静的であることに注意してください。ネームサーバーレコードの IP アドレスは CoreDNS サービスのものです。
k8s_external プラグインはサブドメイン dns
とゾーン自体の頂点を処理します。他のすべてのクエリはクラスタ内のアドレスに解決されます。
構文
k8s_external [ZONE...]
- ZONES ゾーンは k8s_external が権限を持つ必要があります。
頂点ドメインを変更したり、返されるレコードに別の TTL を使用したりしたい場合は、この拡張構文を使用できます。
k8s_external [ZONE...] {
apex APEX
ttl TTL
}
- APEX は頂点レコードに使用される名前(DNS ラベル)です。デフォルトは
dns
です。 ttl
を使用すると、応答の TTL をカスタム設定できます。デフォルトは 5(秒)です。
ヘッドレスサービス解決を有効にするには、headless
オプションを追加します。
k8s_external [ZONE...] {
headless
}
- 外部 IP が設定されたヘッドレスサービスがある場合、外部 IP が解決されます。
クエリされたドメインが存在しない場合、fallthrough
オプションを追加することで、次のプラグインに実行を移管できます。
k8s_external [ZONE...] {
fallthrough [ZONE...]
}
例
example.org
の下の名前がクラスター内の DNS アドレスに解決されるようにします。
. {
kubernetes cluster.local
k8s_external example.org
}
上の Corefile を使用すると、以下のサービスは 192.168.200.123
の IP アドレスを持つ test.default.example.org
の A
レコードを取得します。
apiVersion: v1
kind: Service
metadata:
name: test
namespace: default
spec:
clusterIP: None
externalIPs:
- 192.168.200.123
type: ClusterIP
k8s_external プラグインは transfer プラグインと組み合わせて使用して、ゾーン転送を有効にすることができます。通知はサポートされていません。
. {
transfer example.org {
to *
}
kubernetes cluster.local
k8s_external example.org
}
fallthrough
オプションを使用すると、クエリされたドメインが存在しない場合、ゾーンに一致する次のプラグインに渡されます。
. {
kubernetes cluster.local
k8s_external example.org {
fallthrough
}
forward . 8.8.8.8
}
関連項目
詳細については、resolve external IP address と A records for services with Load Balancer IP を参照してください。