Slide 1

Slide 1 text

ExternalDNS を試してみた December 8, 2020 @nnstt1 Kubernetes Novice Tokyo #7

Slide 2

Slide 2 text

自己紹介 ◼Name ののし @nnstt1 ◼Job インフラエンジニア ◼Fav Ansible Azure Kubernetes

Slide 3

Slide 3 text

登壇きっかけ

Slide 4

Slide 4 text

背景

Slide 5

Slide 5 text

自宅 k8s クラスタでの悩み Service type: LoadBalancer デプロイ ブラウザで IP アドレスにアクセス MetalLB で IP アドレス払い出し Grafana とか ArgoCD とか使いたい!

Slide 6

Slide 6 text

自宅 k8s クラスタでの悩み Service type: LoadBalancer デプロイ ブラウザで IP アドレスにアクセス MetalLB で IP アドレス払い出し Grafana とか ArgoCD とか使いたい! IP アドレスでアクセスしたくない! 手動で DNS レコード登録したくない!

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

ExternalDNS とは ◼Ingress や Service を DNS プロバイダと同期 ◼DNS プロバイダに依存しない DNS レコードの動的管理

Slide 9

Slide 9 text

対応している DNS プロバイダ Stable Google Cloud DNS, AWS Route 53 Beta AWS Cloud Map, Azure DNS, CloudFlare Alpha DigitalOcean, CoreDNS, …計 22 個 v0.7 時点

Slide 10

Slide 10 text

デプロイ方法 ◼DNS プロバイダ毎に設定 ◼公式リポジトリにチュートリアルあります

Slide 11

Slide 11 text

登録するホスト名 Ingress spec.rules.host に基づいて設定 Service ExternalDNS 用アノテーションを付与

Slide 12

Slide 12 text

+ CoreDNS

Slide 13

Slide 13 text

ExternalDNS マニフェスト

Slide 14

Slide 14 text

システム構成図

Slide 15

Slide 15 text

システム構成図 IP アドレス払い出し

Slide 16

Slide 16 text

システム構成図 ホスト名とIPアドレス参照

Slide 17

Slide 17 text

システム構成図 DNS レコード自動登録

Slide 18

Slide 18 text

システム構成図 DNS 参照

Slide 19

Slide 19 text

システム構成図 FQDN でアクセス

Slide 20

Slide 20 text

結果が分かりにくいので

Slide 21

Slide 21 text

+ Azure DNS

Slide 22

Slide 22 text

システム構成図 Azure Load Balancer Azure DNS

Slide 23

Slide 23 text

事前準備 DNS ゾーン ExternalDNS でレコード登録する対象 Secret DNS ゾーンを操作するサービスプリンシパルの情報 kubectl create secret generic azure-config-file --from-file azure.json

Slide 24

Slide 24 text

ExternalDNS マニフェスト

Slide 25

Slide 25 text

Azure DNS TXT レコードも作成 されている

Slide 26

Slide 26 text

TXT レコード ◼ ExternalDNS は TXT レコードで管理対象のレコードか判断

Slide 27

Slide 27 text

まとめ

Slide 28

Slide 28 text

まとめ ExternalDNS で DNS 動的管理 自宅 k8s クラスタで簡単にサービスへアクセスできるように 多くの DNS プロバイダに対応 Stable, Beta のプロバイダは少ない コントリビュートするチャンスかも? 某金魚さんブログにて awx コマンドでの同期を紹介