参考

https://kubernetes-sigs.github.io/aws-alb-ingress-controller/guide/external-dns/setup/

外部DNS

  • kubectlコマンド経由でDNSレコードを設定することができる

手順

マニュフェストファイルをダウンロード

wget https://raw.githubusercontent.com/kubernetes-sigs/aws-alb-ingress
-controller/v1.1.8/docs/examples/external-dns.yaml

args部分を変更する

  • ここでは、test-dns.comがRoute53で管理しているHostedZone
引数:
---source = service
---source = ingress
---domain-filter = test-dns.com#は、ExternalDNSに、
指定されたドメインと一致するホストゾーンのみを表示させ、
使用可能なすべてのホストゾーンの処理を省略します
---provider = aws
---policy = upsert-only#は、ExternalDNSがレコードを削除するのを防ぎ、
完全同期を有効にすることを省略します
---aws-zone-type = public#パブリックホストゾーンのみを確認
(有効な値はpublic、private、または両方の値なし)
---registry = txt
---txt-owner-id = my-identifier

申し込む

kubectl apply -f external-dns.yaml

確認

kubectl logs -f $(kubectl get po | egrep -o 'external-dns [A-Za-z0-9-] +')

使い方

ingressのマニュフェストファイルのannotation部分に書く

  • external-dns.alpha.kubernetes.io/hostname: k8s.test.jp を追記
apiVersion:extensions / v1beta1
種類:イングレス                                                                                                                        
メタデータ:
  名前:「イングレス」
  名前空間:「ビジネス」
  注釈:
    kubernetes.io/ingress.class:alb 
    alb.ingress.kubernetes.io/scheme:インターネットに面した
    external-dns.alpha.kubernetes.io/hostname:k8s.test.jp
  ラベル:
    app: "sample-app"
スペック:
  ルール:
    -http:
        パス:
          - 道: /
            バックエンド:
              serviceName: "アプリ"
              servicePort:80

確認

kubectl logs -f $(kubectl get po | egrep -o 'external-dns [A-Za-z0-9-] +')
time = "2020-09-12T16:05:29Z" level = info msg = "すべてのレコードはすでに最新です"
time = "2020-09-12T16:06:29Z" level = info msg = "必要な変更:CREATE k8s.test
.jp A [Id:/ hostedzone / Z02817823VED9IW9EO9S7]"
time = "2020-09-12T16:06:29Z" level = info msg = "Desired change:CREATE k8s
.test.jp TXT [Id:/ hostedzone / Z02817823VED9IW9EO9S7]"
time = "2020-09-12T16:06:29Z" level = info msg = "ゾーンtest.jpの2つのレコード。
[Id:/ hostedzone / Z02817823VED9IW9EO9S7]が正常に更新されました"
time = "2020-09-12T16:07:29Z" level = info msg = "すべてのレコードはすでに最新です"
time = "2020-09-12T16:08:29Z" level = info msg = "すべてのレコードはすでに最新です"

<スポンサーリンク>

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)