redisc

ソース ホーム

以下で有効化:
redisc:github.com/miekg/redis

redisc - Redisを使用したネットワークキャッシュを有効にします。

説明

rediscを使用すると、3600秒までのレスポンスをキャッシュできます。Redisでのキャッシュは、複数のCoreDNSインスタンスがVIPを共有するセットアップで最も役立ちます。たとえば、Kubernetesクラスタ内の複数のCoreDNSポッドなどです。

Redisに接続できない場合、このプラグインはnoopになります。cacheプラグインとrediscプラグインを一緒に使用できます。この場合、cacheはL1、rediscはL2レベルキャッシュです。複数のCoreDNSインスタンスが同じアイテムでキャッシュミスが発生した場合、すべてがアップストリームから同じ情報をフェッチしてキャッシュを更新します。つまり、それらのインスタンス間には(追加の)調整はありません。

Redisが利用できない場合、CoreDNSは何もキャッシュしません。メトリクスが有効になっている場合、これはset_errors_totalメトリクスに表示されます。

構文

redisc [TTL] [ZONES...]
  • TTL:最大のTTL(秒)指定がない場合、最大のTTLが使用されます。noerrorレスポンスの場合は3600、deny of existenceレスポンスの場合は1800です。TTLを300に設定すると(redisc 300)、最大300秒間レコードがキャッシュされます。
  • ゾーン:キャッシュするゾーン。空の場合、構成ブロックのゾーンが使用されます。

Redisキャッシュの各要素は、そのTTL(最大値はTTL)に従ってキャッシュされます。ネガティブキャッシュの場合、SOAのMinTTL値が使用されます。エンドポイントが指定されていない場合、デフォルトの127.0.0.1:6379が使用されます。

詳細に制御したい場合

redisc [TTL] [ZONES...] {
    endpoint ENDPOINT
}
  • 上記と同じTTLおよびZONES
  • endpoint:Redisで使用するENDPOINTを指定します。デフォルトでは127.0.0.1:6379です。

メトリクス

監視が有効になっている場合(prometheusディレクティブ経由)、次のメトリクスがエクスポートされます。

  • coredns_redisc_hits_total{server}:キャッシュヒット数。
  • coredns_redisc_misses_total{server}:キャッシュミス数。
  • coredns_redisc_set_errors_total{server}:Redisに接続した際のエラー数。
  • coredns_redisc_drops_total{server}:ドロップされたメッセージ数。

serverラベルは、リクエストを処理したサーバーを示します。詳細については、metricsプラグインを参照してください。

すべてのゾーンのキャッシュを有効にし、ローカルでキャッシュし、クラスタ全体のRedisで40秒間キャッシュします。

. {
    cache 30
    redisc 40 {
        endpoint 10.0.240.1:69
    }
    whoami
}

GoogleのPublic DNSにプロキシし、example.org(およびそれ以下)のレスポンスのみをキャッシュします。

. {
    proxy . 8.8.8.8:53
    redisc example.org
}

関連項目

Redisの詳細については、Redisサイトを参照してください。redisという名の外部プラグインはすでに存在するため、これはrediscと名付けられています。

バグ

ユニットテストはわずかです。