参考
https://kubernetes-sigs.github.io/aws-alb-ingress-controller/guide/external-dns/setup/
外部DNS
- kubectlコマンド経由でDNSレコードを設定することができる
手順
マニュフェストファイルをダウンロード
1 2 |
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
1 2 3 4 5 6 7 8 9 10 11 12 13 |
引数: ---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 |
申し込む
1 |
kubectl apply -f external-dns.yaml |
確認
1 |
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
を追記
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
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 |
確認
1 |
kubectl logs -f $(kubectl get po | egrep -o 'external-dns [A-Za-z0-9-] +') |
1 2 3 4 5 6 7 8 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 = "すべてのレコードはすでに最新です" |