external-dns
ingress์ ๋ง๋ค์ด๋ hostname์ ์๋์ผ๋ก route53์ ์ถ๊ฐํด์ค๋ค.
namespace๋ default๋ก ๊ฐ์ ํ๊ณ ์งํํ์ต๋๋ค. ๋ค๋ฅธ๊ณณ์ ์ฌ์ฉํ๋ ค๋ฉด ์ค์ ํด์ฃผ์๋ฉด๋ฉ๋๋ค.
create policy
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["route53:ChangeResourceRecordSets"],
"Resource": ["arn:aws:route53:::hostedzone/*"]
},
{
"Effect": "Allow",
"Action": ["route53:ListHostedZones", "route53:ListResourceRecordSets"],
"Resource": ["*"]
}
]
}Create IAM Role, k8s Service Account & Associate IAM Policy
k8s Service Account named external-dns
install external-dns
ServiceAccount ๋ถ๋ถ์ ์ง์ฐ๊ณ (๋ฒ์จ ๋ง๋ค์๊ธฐ๋๋ฌธ)
๊ฐ์ง๊ณ ์๋ ๋ชจ๋ ๋๋ฉ์ธ์ ์ฌ์ฉํ๋ ค๋ฉด ์ฃผ์์ฒ๋ฆฌํ๊ณ ํน์ ํ๊ฑธ๋ก ๋ฐ๊พธ๋ ค๋ฉด ์์ฒ๋ผ ๋๋ฉ์ธ์ ๋ฃ์ด์ค๋ค.
my-identifier๋ route53์์ hostid๋ฅผ ๊ฐ์ ธ๋ค ๋ฃ์ผ๋ฉด ๋๋ค.
๋ค ์ ๋ฆฌํ๋ฉด
์ ๋ ๋ฒ์ ์ 0.7.1์์ ๋ฐ๊พธ์ง ๋ง์. ๋ฐ๊พธ๋ ค๋ฉด ์ ๋ฐ์ดํธ๋ ๋ด์ฉ์ ํ์ธํด์ policy๊ฐ ๋ฐ๋์ด์ผํจ.
์ ์ฉ
kubectl apply -f external-dns.yaml
pod์ ๋ก๊ทธ๋ฅผ ๋ณด์.

uptodate๊ฐ ๋๋ค. ์ด๋ฌ๋ฉด ์ฑ๊ณต
์ด์ ingress์์ host name์ ๋ณ๊ฒฝํ๋ฉด route53์ ์์ฑ๋๋๊ฒ์ ๋ณผ์ ์๋ค.
policy๋ ๋ฐ๋ก ๋ณด๊ธฐ๋ฐ๋. ๊ธฐ๋ณธ๊ฐ์ sync,
upsert๋ ์๋ก์ด๊ฑด ๋ฃ๊ณ ๊ธฐ์กด๊ฑด ์ ๋ฐ์ดํธ delete๋ ์๋จ.
issue
aws / idc์์ ๋์์ ์์ดํผ๋ฅผ ์ ๋ฐ์ดํธํ๋ฉด ์๋ฌ๊ฐ ๋๋ค.
์ธ๊ทธ๋ ์ค ๋ณ๋ก ์ฌ์ฉ์ ๋ง์ผ๋ ค๊ณ ํด๋ดฃ๋๋ฐ ์ ์๋๋ค.
external-dns.alpha.kubernetes.io/exclude: 'true'
์ด๊ฑธ๋ก ๊ฒ์ํ๋ฉด ๋์ค๋๋ฐ ๋์์ด ์๋๋ค.
์์ดํผ๋ฅผ ๋๊ฐ๋ฅผ ๋ฃ๋๊ฒ๋ ์ ์๋๋ค. ํด๋ผ์ฐ๋ ํ๋ ์ด๋ 2๊ฐ์ raw๋ฅผ ๋ฃ์ด ๋ผ์ด๋๋ก๋น์ ํจ.
ํน์ ์์ดํผ๋ฅผ ๋ฃ์๋ ค๊ณ ํ๋ฉด ์ธ๊ทธ๋ ์ค์ ๋ค์์ ์ฌ์ฉํ๋ค.
Last updated
Was this helpful?