掘悪皆と掘恰岳艶姻稼温鉛禽鰻皆でドメイン兆を譜協する

峻さん、こんにちは。室宝蝕�kグル�`プの稼-看噛温敬温稼です。
菩いですね。何塁の嶄にいても犯嶄屏になる裡��がありますので、聾朕に邦蛍温公するようにしましょう。

云籾です。
掘悪皆で更廏されたアプリケ�`ションに��してドメインを摘原ける圭隈として掘恰岳艶姻稼温鉛禽鰻皆があります。掘恰岳艶姻稼温鉛禽鰻皆を旋喘すると、徭強議に悪顎恢艶姻稼艶岳艶壊の鴛稼乙姻艶壊壊で峺協したホスト兆で禽鰻皆ホストゾ�`ンの粥レコ�`ドを鞠�hしてくれるので宴旋です。

ExternalDNS

ExternalDNSはKubernetesのクラスタで�嘛�するPODで、翌何に巷�_するKubernetesのアプリケ�`ションとDNSプロバイダ�`を揖豚してくれます。��鬉靴討い�DNSプロバイダ�`はAWS Route53やGoogle Cloud DNS、Azure DNSなどのクラウドの麿、謹くのDNSプロバイダ�`に��鬉靴討い泙后T���はを歌孚してください。

書指はAWSのEKSで���Bされた�h廠と、AWS Route53と揖豚するやり圭を�B初したいと房います。

ゴ�`ル

掘恰岳艶姻稼温鉛禽鰻皆を堰掘晦珂でインスト�`ルします。また、掘恰岳艶姻稼温鉛禽鰻皆から檎看顎岳艶53へのアクセス�慙泙�駅勣ですので、ポリシ�`の協吶と皆艶姻厩庄界艶粥界界看顎稼岳の恬撹が駅勣になります。ここまでを意艶姻姻温韓看姻馨で更廏します。恷朔に悪顎恢艶姻稼艶岳艶壊の鴛稼乙姻艶壊壊のマニフェストを協吶します。

サ�`ビスアカウントの恬撹

掘恰岳艶姻稼温鉛禽鰻皆から檎看顎岳艶53への荷恬を佩えるようにするためにサ�`ビスアカウントを恬撹する駅勣があります。恬撹返乏については、參念の芝並仝掘悪皆でロ�`ドバランサ�`を更廏する々で芝墮した仝サ�`ビスアカウントの恬撹々と揖じです。參念の芝並と呟なるのはポリシ�`の協吶だけですので、云後ではポリシ�`の協吶を府初します。

resource "aws_iam_policy" "external_dns" {
  name       = "external-dns-policy"
  policy     = <<POLICY
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "route53:ChangeResourceRecordSets"
      ],
      "Resource": [
        "arn:aws:route53:::hostedzone/*"
      ]
    },
    {
      "Effect": "Allow",
      "Action": [
        "route53:ListHostedZones",
        "route53:ListResourceRecordSets"
      ],
      "Resource": [
        "*"
      ]
    }
  ]
}
POLICY
}

檎看顎岳艶53のホストゾ�`ンの歌孚と、そのホストゾ�`ンのリソ�`スレコ�`ドの�筝�および歌孚を俯辛しています。

掘恰岳艶姻稼温鉛禽鰻皆のインスト�`ル

掘恰岳艶姻稼温鉛禽鰻皆を堰掘晦珂でインスト�`ルします。

resource "helm_release" "external_dns" {
  name            = "external-dns"
  chart           = "external-dns"
  repository      = "https://kubernetes-sigs.github.io/external-dns/"
  namespace       = "kube-system"

  dynamic "set" {
    for_each = {
      "serviceAccount.create" = false
      "serviceAccount.name" = "external-dns-service-account"
    }
    content {
      name = set.key
      value = set.value
    }
  }
}

chartは”艶恰岳艶姻稼温鉛-糸稼壊”で、repositoryには”鞄岳岳沿壊://一顎恢艶姻稼艶岳艶壊-壊庄乙壊.乙庄岳鞄顎恢.庄看/艶恰岳艶姻稼温鉛-糸稼壊/”を峺協します。

掘恰岳艶姻稼温鉛禽鰻皆は、デフォルトでサ�`ビスアカウントを恬撹します。書指は徭念で喘吭したサ�`ビスアカウントを旋喘しますので、serviceAccount.createを”韓温鉛壊艶”に峺協して、サ�`ビスアカウントを恬撹しないようにします。また、serviceAccount.nameに枠ほど恬撹したサ�`ビスアカウントの兆念を峺協します。

鴛稼乙姻艶壊壊の協吶

悪顎恢艶姻稼艶岳艶壊の鴛稼乙姻艶壊壊を協吶します。

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: http-ingress
  annotations:
    kubernetes.io/ingress.class: alb
    alb.ingress.kubernetes.io/scheme: internet-facing
    alb.ingress.kubernetes.io/target-type: ip
spec:
  rules:
  - host: www.ios-eks-example.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: http-service
            port:
              number: 80

metadata.annotationsで峺協しているのはALB��Application Load Balancer��と�B亊するための�O協です。書指のExternalDNSとは�v�Sありませんが、翌何へ巷�_するためには駅勣な�O協となります。

掘恰岳艶姻稼温鉛禽鰻皆に�v�Sするのはspec.rules.hostになります。クラスタに鴛稼乙姻艶壊壊リソ�`スを郡啌した縞に、spec.rules.hostに峺協したホスト兆で、檎看顎岳艶53のホストゾ�`ンに粥レコ�`ドが鞠�hされます。

spec.rules.httpには鞭け函ったトラフィックを、どの鰻看糸艶永看姻岳へ僕るのかを峺協します。

おわりに

鴛稼乙姻艶壊壊の協吶でAレコ�`ドまで鞠�hしてくれるExternalDNSは宴旋ではあります。ただ、ホスト兆は�l訓に�筝�するものではないので、��栽によってはExternalDNSをわざわざ���Bする駅勣はないかもしれません。その�xは�M喘���森�を��て���Bした圭が措いでしょう。

ではまた。


Recommendおすすめブログ