{"id":12456,"date":"2023-09-13T09:00:51","date_gmt":"2023-09-13T00:00:51","guid":{"rendered":"https:\/\/jennifersoft.com\/ko\/?p=12456"},"modified":"2024-03-28T15:11:59","modified_gmt":"2024-03-28T06:11:59","slug":"2023-09-13-jennifer-kubernetes-5","status":"publish","type":"post","link":"https:\/\/jennifersoft.com\/ko\/blog\/kubernetes\/2023-09-13-jennifer-kubernetes-5\/","title":{"rendered":"5. \ucfe0\ubc84\ub124\ud2f0\uc2a4 \uc778\uadf8\ub808\uc2a4, AWS LB Controller, External DNS Controller \uc774\ud574"},"content":{"rendered":"\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/jennifersoft.com\/ko\/wp-content\/uploads\/sites\/2\/2023\/09\/\u1100\u1175\u1109\u116e\u11af\u1107\u1173\u11af\u1105\u1169\u1100\u1173\u110b\u1167\u11ab\u110c\u1162_05_\u110f\u1165\u1107\u1165_230907-1024x576.jpg\" alt=\"\" class=\"wp-image-12457\" srcset=\"https:\/\/jennifersoft.com\/ko\/wp-content\/uploads\/sites\/2\/2023\/09\/\u1100\u1175\u1109\u116e\u11af\u1107\u1173\u11af\u1105\u1169\u1100\u1173\u110b\u1167\u11ab\u110c\u1162_05_\u110f\u1165\u1107\u1165_230907-1024x576.jpg 1024w, https:\/\/jennifersoft.com\/ko\/wp-content\/uploads\/sites\/2\/2023\/09\/\u1100\u1175\u1109\u116e\u11af\u1107\u1173\u11af\u1105\u1169\u1100\u1173\u110b\u1167\u11ab\u110c\u1162_05_\u110f\u1165\u1107\u1165_230907-300x169.jpg 300w, https:\/\/jennifersoft.com\/ko\/wp-content\/uploads\/sites\/2\/2023\/09\/\u1100\u1175\u1109\u116e\u11af\u1107\u1173\u11af\u1105\u1169\u1100\u1173\u110b\u1167\u11ab\u110c\u1162_05_\u110f\u1165\u1107\u1165_230907.jpg 1600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\ubc88 \uc7a5\uc740 AWS Load Balancer Controller\uc640 External DNS Controller\ub97c \uc774\uc6a9\ud558\uc5ec \ucfe0\ubc84\ub124\ud2f0\uc2a4 \uc778\uadf8\ub808\uc2a4(Ingress)\ub97c \uc2e4\uc2b5\uc744 \ud1b5\ud558\uc5ec \uc54c\uc544\ubcf4\uaca0\uc2b5\ub2c8\ub2e4. \uba3c\uc800 \uc778\uadf8\ub808\uc2a4\uc758 \uac1c\ub150\uc744 \uc54c\uc544\ubd05\ub2c8\ub2e4.<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ud074\ub7ec\uc2a4\ud130 \uc678\ubd80\uc5d0\uc11c \ud074\ub7ec\uc2a4\ud130 \ub0b4\ubd80\uc758 \ud30c\ub4dc\ub85c \uc811\uc18d\ud558\ub294 \ubc29\ubc95\uc740 \uc55e\uc7a5\uc5d0\uc11c \ubc30\uc6b4 \ucfe0\ubc84\ub124\ud2f0\uc2a4 \uc11c\ube44\uc2a4\uc758 \ub178\ub4dc\ud3ec\ud2b8, \ub85c\ub4dc\ubc38\ub7f0\uc11c, \uadf8\ub9ac\uace0 \uc774\ubc88 \uc7a5\uc5d0\uc11c \ubc30\uc6b8 \uc778\uadf8\ub808\uc2a4\uac00 \uc788\uc2b5\ub2c8\ub2e4. \ucfe0\ubc84\ub124\ud2f0\uc2a4 \uc778\uadf8\ub808\uc2a4\ub294 \ub178\ub4dc\ud3ec\ud2b8, \ub85c\ub4dc\ubc38\ub7f0\uc11c \ud0c0\uc785\uc758 \uc11c\ube44\uc2a4\uc640 \ub2ec\ub9ac \ub3c4\uba54\uc778(host)\uacfc Path \uae30\ubc18\uc73c\ub85c \uc5f0\uacb0\uc774 \uac00\ub2a5\ud558\uc5ec \uc77c\ubc18\uc801\uc73c\ub85c \uac00\uc7a5 \ub9ce\uc774 \uc0ac\uc6a9\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. \uc804\ud1b5\uc801\uc778 \uc758\ubbf8\uc758 L4, L7 \uc2a4\uc704\uce58\ub85c \uad6c\ubd84\ud55c\ub2e4\uba74 \uc778\uadf8\ub808\uc2a4\ub294 L7 \uae30\ub2a5\uc744 \uc9c0\uc6d0\ud569\ub2c8\ub2e4.&nbsp;<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc778\uadf8\ub808\uc2a4\uc758 \uc8fc\uc694 \uae30\ub2a5\uc740 \uc544\ub798\uc640 \uac19\uc2b5\ub2c8\ub2e4.<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">. Path(\uacbd\ub85c) \uae30\ubc18 \ub77c\uc6b0\ud305: \uc778\uadf8\ub808\uc2a4\ub294 \ub4e4\uc5b4\uc624\ub294 \uc694\uccad\uc758 \uacbd\ub85c\ub97c \uae30\uc900\uc73c\ub85c \uc801\uc808\ud55c \ub0b4\ubd80 \ud30c\ub4dc\ub85c \ub77c\uc6b0\ud305\ud569\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4, \u2018\/api\u2019 \uacbd\ub85c\ub85c \ub4e4\uc5b4\uc624\ub294 \uc694\uccad\uc740 \ubc31\uc5d4\ub4dc API \uc11c\ube44\uc2a4\ub85c \uc804\ub2ec\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">. \uac00\uc0c1 \ud638\uc2a4\ud2b8 \uae30\ubc18 \ub77c\uc6b0\ud305: \uc778\uadf8\ub808\uc2a4\ub294 \uc694\uccad\ub41c \ub3c4\uba54\uc778 \uc774\ub984\uc744 \uae30\uc900\uc73c\ub85c \uac00\uc0c1 \ud638\uc2a4\ud2b8\ub97c \uc124\uc815\ud558\uc5ec \uc11c\ub85c \ub2e4\ub978 \ub3c4\uba54\uc778 \ub610\ub294 \uc11c\ube0c\ub3c4\uba54\uc778\uc73c\ub85c \uc811\uadfc\ud558\ub294 \uc694\uccad\uc744 \uc11c\ube44\uc2a4\ub85c \uc804\ub2ec\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4 argocd.myweb.com\uacfc grafana.myweb.com\uc73c\ub85c \ub3c4\uba54\uc778\uc744 \uad6c\ubd84\ud558\uc5ec \uc5f0\uacb0\ud569\ub2c8\ub2e4.<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">. SSL \uc778\uc99d\uc11c \uad00\ub9ac: \uc778\uadf8\ub808\uc2a4\ub294 HTTPS \ud504\ub85c\ud1a0\ucf5c\uc744 \uc9c0\uc6d0\ud558\uba70, SSL \uc778\uc99d\uc11c\ub97c \uad00\ub9ac\ud558\uc5ec \uc554\ud638\ud654\ub41c \ud1b5\uc2e0\uc744 \uc81c\uacf5\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc778\uadf8\ub808\uc2a4 \ucee8\ud2b8\ub864\ub7ec\uc5d0\uc11c \uc778\uc99d\uc11c\ub97c \ucc98\ub9ac\ud558\uace0 \uc778\uadf8\ub808\uc2a4 \ucee8\ud2b8\ub864\ub7ec\uc640 \ub0b4\ubd80 \ud30c\ub4dc \uac04 \uc5f0\uacb0\uc740 \ud3c9\ubb38(http)\uc73c\ub85c \ud1b5\uc2e0\ud569\ub2c8\ub2e4. \ubc31\uc5d4\ub4dc \ud30c\ub4dc \ub2e8\uc5d0\uc11c \uc778\uc99d\uc11c \uad00\ub9ac\ub97c \ud558\uc9c0 \uc54a\uc544 \uad00\ub9ac \ud3b8\uc758\uc131\uc744 \ud5a5\uc0c1\ud569\ub2c8\ub2e4.<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">. \ub85c\ub4dc \ubc38\ub7f0\uc2f1: \uc778\uadf8\ub808\uc2a4\ub294 \uc5ec\ub7ec \uac1c\uc758 \ubc31\uc5d4\ub4dc \uc11c\ube44\uc2a4\uc5d0 \ub300\ud55c \ub85c\ub4dc \ubc38\ub7f0\uc2f1\uc744 \uc9c0\uc6d0\ud558\uc5ec \ud2b8\ub798\ud53d\uc744 \ubd84\uc0b0\uc2dc\ud0b5\ub2c8\ub2e4. \ubc31\uc5d4\ub4dc \uc11c\ube44\uc2a4 \uac04\uc5d0 \ud2b8\ub798\ud53d\uc744 \uade0\ub4f1\ud558\uac8c \ubd84\ubc30\ud558\uac70\ub098, \ud2b9\uc815 \uaddc\uce59\uc5d0 \ub530\ub77c \ud2b8\ub798\ud53d\uc744 \uc804\ub2ec\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\ubc88 \uc7a5\uc758 \uc2e4\uc2b5\uc744 \uc704\ud574\uc11c\ub294 \uc0ac\uc804\uc5d0 AWS Route 53\uc5d0 \ub3c4\uba54\uc778\uc774 \ub4f1\ub85d\ub418\uc5b4 \uc788\uc5b4\uc57c \ud569\ub2c8\ub2e4. \ud14c\uc2a4\ud2b8 \uc6a9\ub3c4\uc758 \ud68c\uc0ac \ub3c4\uba54\uc778 \ub610\ub294 <a href=\"https:\/\/docs.aws.amazon.com\/ko_kr\/Route53\/latest\/DeveloperGuide\/getting-started.html\">Route 53 \ud648\ud398\uc774\uc9c0<\/a>\uc640 \uad6c\uae00 \uac80\uc0c9 \ub4f1\uc744 \ud1b5\ud558\uc5ec \uac01\uc790 \uc2e4\uc2b5\uc5d0 \ud544\uc694\ud55c \uac1c\uc778 \ub3c4\uba54\uc778\uc744 \uc900\ube44 \ubc14\ub78d\ub2c8\ub2e4.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>1. AWS Load Balancer Controller + External DNS Controller \uc774\ud574<\/strong><br><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">AWS EKS \ud658\uacbd\uc5d0\uc11c\ub294 \uad00\ub9ac \ud3b8\uc758\uc640 \uc131\ub2a5 \ud5a5\uc0c1\uc744 \uc704\ud558\uc5ec Load Balancer Controller\uc640 External DNS Controller\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uba3c\uc800, AWS Load Balancer Controller(\uc774\ud558 LB Controller)\ub294 \ucfe0\ubc84\ub124\ud2f0\uc2a4 \ud658\uacbd\uc5d0\uc11c \uc678\ubd80 CSP(Cloud Service Provider)\uc758 \ub85c\ub4dc \ubc38\ub7f0\uc11c \uc11c\ube44\uc2a4\ub97c \uad00\ub9ac\ud558\uae30 \uc704\ud55c \uc624\ud508 \uc18c\uc2a4 \ud504\ub85c\uc81d\ud2b8\uc785\ub2c8\ub2e4. \uc774 \ucee8\ud2b8\ub864\ub7ec\ub294 \ucfe0\ubc84\ub124\ud2f0\uc2a4 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \uc704\ud55c \ub85c\ub4dc \ubc38\ub7f0\uc11c\ub97c \uc0dd\uc131, \uad6c\uc131 \ubc0f \uad00\ub9ac\ud558\ub294 \uc5ed\ud560\uc744 \uc218\ud589\ud569\ub2c8\ub2e4. LB Controller\ub97c \uc0ac\uc6a9\ud558\uba74 \uae30\uc874 ALB(Application Load Balancer)\uc5d0\uc11c \ubaa9\uc801\uc9c0 \ud30c\ub4dc\ub85c \uc9c1\uc811 \uc5f0\uacb0\uc774 \uac00\ub2a5\ud558\uc5ec \ub124\ud2b8\uc6cc\ud06c \ud649(Hop)\uc744 \uae30\uc874 4\ub2e8\uacc4\uc5d0\uc11c 2\ub2e8\uacc4\ub85c \uc904\uc77c \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh6.googleusercontent.com\/uzZxam8c7jwpmubzl55fhz4FXi0PFYemGwiE3c5Z9DbsKN2lBNJMVwq32LDtZO3qcwTgoliEzlTRhCfO5eNpBsisyNAvAw_QWnX1XluzL9jOnlvFmrQGE6chvt0yZEbUpX-cXDe6wZ-V65XP2TMNBpw\" alt=\"\"\/><figcaption>&lt;\uae30\uc874 \ucfe0\ubc84\ub124\ud2f0\uc2a4 NGINX \uc778\uadf8\ub808\uc2a4 \uad6c\uc131&gt;<\/figcaption><\/figure>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/lh5.googleusercontent.com\/-BsC4scDtYBLN4btjWVT4Gdo5WxMzRyLD33JQdAiEEUFTlvqknQXPmMyU-Z0mc51VkecMlWMZHwpMFq2x7fc0k6uwjMLxt0Lobgjo7wdLPiwrkZfLxb8ElRtMqifvF3RVPe4uIly_aLuvm_QGPDY9Rw\" alt=\"\"\/><figcaption>&lt;LB Controller\ub97c \uc774\uc6a9\ud55c ALB \uc778\uadf8\ub808\uc2a4 \uad6c\uc131&gt;<\/figcaption><\/figure><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">LB Controller\ub294 \ucfe0\ubc84\ub124\ud2f0\uc2a4 \uc778\uadf8\ub808\uc2a4 \ub9ac\uc18c\uc2a4\uc640 \ud568\uaed8 \uc0ac\uc6a9\ub418\uc5b4 \ud074\ub7ec\uc2a4\ud130 \ub0b4\ubd80\uc758 \uc11c\ube44\uc2a4\uc5d0 \ub300\ud55c \uc678\ubd80 \ud2b8\ub798\ud53d\uc744 \uad00\ub9ac\ud569\ub2c8\ub2e4. \ucfe0\ubc84\ub124\ud2f0\uc2a4 \uc778\uadf8\ub808\uc2a4 \ub9e4\ub2c8\ud398\uc2a4\ud2b8(\uba85\uc138\uc11c, YAML \ud30c\uc77c)\ub97c \uae30\ubc18\uc73c\ub85c \uc678\ubd80\uc758 AWS Application Load Balancer(ALB) \ub610\ub294 Network Load Balancer(NLB)\ub97c \uc0dd\uc131\ud558\uace0 \uad6c\uc131\ud569\ub2c8\ub2e4.&nbsp;<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">LB Controller\ub294 \ub2e4\uc74c\uc758 \uae30\ub2a5\uc744 \uc81c\uacf5\ud569\ub2c8\ub2e4:<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">. \ub85c\ub4dc \ubc38\ub7f0\uc11c \uc0dd\uc131 \ubc0f \uad6c\uc131: LB Controller\ub294 \ucfe0\ubc84\ub124\ud2f0\uc2a4 \uc778\uadf8\ub808\uc2a4 \ub9ac\uc18c\uc2a4\ub97c \uae30\ubc18\uc73c\ub85c ALB \ub610\ub294 NLB\ub97c \uc0dd\uc131\ud558\uace0 \uad00\ub9ac\ud569\ub2c8\ub2e4. \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \uc694\uad6c \uc0ac\ud56d\uc5d0 \ub9de\uac8c \ub85c\ub4dc \ubc38\ub7f0\uc11c\ub97c \uad6c\uc131\ud560 \uc218 \uc788\uc73c\uba70, SSL\/TLS \uc778\uc99d\uc11c \uad00\ub9ac, \uacbd\ub85c \uae30\ubc18 \ub77c\uc6b0\ud305, \uc138\uc158 \uad00\ub9ac \ub4f1 \ub2e4\uc591\ud55c \uc124\uc815\uc744 \uc9c0\uc6d0\ud569\ub2c8\ub2e4.<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">. AWS Auto Scaling \uadf8\ub8f9\uacfc \ud1b5\ud569: LB Controller\ub294 \uc678\ubd80\uc758 AWS Auto Scaling \uadf8\ub8f9\uacfc \uc0ac\uc6a9\ub418\uc5b4 \ub85c\ub4dc \ubc38\ub7f0\uc11c\uac00 \uc790\ub3d9\uc73c\ub85c \uc11c\ubc84 \uc778\uc2a4\ud134\uc2a4\ub97c \uc870\uc815\ud558\ub3c4\ub85d \uc9c0\uc6d0\ud569\ub2c8\ub2e4. Auto Scaling \uadf8\ub8f9 \ub0b4\uc758 \uc778\uc2a4\ud134\uc2a4 \ud655\uc7a5 \ubc0f \ucd95\uc18c\ub97c \uc790\ub3d9\uc73c\ub85c \uac10\uc9c0\ud558\uace0 \ub85c\ub4dc \ubc38\ub7f0\uc11c \uad6c\uc131\uc744 \uc5c5\ub370\uc774\ud2b8\ud558\uc5ec \uc790\ub3d9\uc73c\ub85c \ud2b8\ub798\ud53d\uc744 \ubd84\uc0b0\uc2dc\ud0b5\ub2c8\ub2e4.<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ub2e4\uc74c\uc73c\ub85c External DNS Controller\ub294 \uc778\uadf8\ub808\uc2a4 \ub9ac\uc18c\uc2a4\uc5d0 \uc778\ub808\uc2a4\uc5d0 \uc0ac\uc6a9\ud560 DNS\uc744 \ub4f1\ub85d\ud558\uba74 \uc774\ub97c \uae30\ubc18\uc73c\ub85c DNS \ucee8\ud2b8\ub864\ub7ec\uac00 AWS Route 53 DNS \ub808\ucf54\ub4dc\ub97c \uc790\ub3d9\uc73c\ub85c \uad00\ub9ac\ud558\ub294 \uc624\ud508 \uc18c\uc2a4 \ucee8\ud2b8\ub864\ub7ec\uc785\ub2c8\ub2e4. \uc774\ub97c \ud1b5\ud574 \ucfe0\ubc84\ub124\ud2f0\uc2a4 \ub0b4\uc758 \uc11c\ube44\uc2a4\ub098 Ingress \ub9ac\uc18c\uc2a4\uac00 \ubc30\ud3ec\ub418\uac70\ub098 \ubcc0\uacbd\ub420 \ub54c, \ud574\ub2f9 \uc815\ubcf4\uac00 AWS\uc758 DNS \uc11c\ube44\uc2a4\uc778 Route 53\uc5d0 \uc790\ub3d9\uc73c\ub85c \ubc18\uc601\ub429\ub2c8\ub2e4. \uae30\uc874\uc5d0 \uc218\ub3d9\uc73c\ub85c \ub4f1\ub85d\ud558\uc5ec \ubc1c\uc0dd\ud560 \uc218 \uc788\ub294 \uc2e4\uc218 \ub4f1\uc744 \ubc29\uc9c0\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uac04\ub2e8\ud55c \uc0ac\uc6a9 \uc608\uc2dc\uc785\ub2c8\ub2e4.<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">. \uc778\uadf8\ub808\uc2a4 \ub9ac\uc18c\uc2a4\uc5d0\uc11c www.myweb.com \ub3c4\uba54\uc778\uc5d0 \ub300\ud55c \uc11c\ube44\uc2a4\ub97c \uc0dd\uc131\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">.&nbsp; AWS External DNS Controller\uac00 \uc774\ub97c \uc790\ub3d9\uc73c\ub85c \uac10\uc9c0\ud558\uace0 AWS Route 53\uc5d0\uc11c www.myweb.com\uc5d0 \ub300\ud55c \uc0c8 DNS \ub808\ucf54\ub4dc\ub97c \uc0dd\uc131\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">. \uc0ac\uc6a9\uc790\uac00 www.myweb.com\uc5d0 \uc811\uadfc\ud558\uba74 \uc790\ub3d9\uc73c\ub85c \ucfe0\ubc84\ub124\ud2f0\uc2a4 \ud074\ub7ec\uc2a4\ud130\uc758 \ud574\ub2f9 \uc11c\ube44\uc2a4\ub85c \ub77c\uc6b0\ud305\ub429\ub2c8\ub2e4.<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\ub7ec\ud55c \uae30\ub2a5\uc73c\ub85c AWS External DNS Controller\ub294 \ucfe0\ubc84\ub124\ud2f0\uc2a4\uc640 AWS Route 53 \uac04\uc758 \uc5f0\uacc4\ub97c \uac04\uc18c\ud654\ud558\uace0 \uc790\ub3d9\ud654\ud569\ub2c8\ub2e4, \uadf8\ub85c \uc778\ud574 \uc6b4\uc601 \ud300\uc740 DNS \uad00\ub9ac\uc5d0 \ub4e4\uc774\ub294 \uc218\uace0\uc640 \uc2dc\uac04\uc744 \ud06c\uac8c \uc904\uc77c \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>2. IRSA(Identity and Access Management Roles for Service Accounts) \uc774\ud574<\/strong><br><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">LB Controller \uc2e4\uc2b5\uc5d0 \uc55e\uc11c \uc124\uce58\uc5d0 \ud544\uc694\ud55c IRSA\ub97c \uc54c\uc544\ubcf4\uaca0\uc2b5\ub2c8\ub2e4. LB Controller\ub294 EKS \uc678\ubd80\uc758 AWS \ub85c\ub4dc\ubc38\ub7f0\uc11c\uc640 Auto Scaling \uadf8\ub8f9\uc744 \uad00\ub9ac\ud558\ubbc0\ub85c \ud574\ub2f9 \uc790\uc6d0\uc5d0 \ub300\ud55c \ucd94\uac00 \uad8c\ud55c\uc774 \ud544\uc694\ud569\ub2c8\ub2e4. \uc774\ub807\uac8c EKS \uc678\ubd80 \uc790\uc6d0\uc758 \uad8c\ud55c\uc744 \ud68d\ub4dd\ud558\uae30 \uc704\ud558\uc5ec AWS\ub294 IRSA\ub97c \uc0ac\uc6a9\ud569\ub2c8\ub2e4.&nbsp;<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">IRSA\ub294 AWS\uc5d0\uc11c \uc81c\uacf5\ud558\ub294 \uae30\ub2a5\uc73c\ub85c, \ucfe0\ubc84\ub124\ud2f0\uc2a4 \ud074\ub7ec\uc2a4\ud130 \ub0b4\uc758 Service Account\uc5d0 \ub300\ud55c AWS Identity and Access Management (IAM) \uc5ed\ud560\uc744 \uc5f0\uacb0\ud569\ub2c8\ub2e4. Service Account\ub780 \ucfe0\ubc84\ub124\ud2f0\uc2a4 \ud074\ub7ec\uc2a4\ud130 \ub0b4\uc758 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \uc704\ud574 \ud2b9\ubcc4\ud788 \ub514\uc790\uc778\ub41c \uacc4\uc815 \ud615\ud0dc\uc785\ub2c8\ub2e4. \uc774\ub294 \ud074\ub7ec\uc2a4\ud130 \ub0b4\uc758 \ub9ac\uc18c\uc2a4\uc5d0 \uc811\uadfc\ud558\uac70\ub098 \uc870\uc791\ud560 \ub54c \uc0ac\uc6a9\ud560 \uc218 \uc788\ub294 \uc790\uaca9 \uc99d\uba85\uc744 \uc81c\uacf5\ud569\ub2c8\ub2e4. \uc77c\ubc18\uc801\uc73c\ub85c, \ud30c\ub4dc\uac00 \ud2b9\uc815 \ub9ac\uc18c\uc2a4\uc5d0 \uc811\uadfc\ud560 \ud544\uc694\uac00 \uc788\uc744 \ub54c Service Account\ub97c \uc0ac\uc6a9\ud558\uac8c \ub429\ub2c8\ub2e4.<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ub0b4\ubd80 \ub9ac\uc18c\uc2a4\uac00 \uc544\ub2cc \uc678\ubd80 AWS \ub9ac\uc18c\uc2a4\ub97c \uc0ac\uc6a9\ud558\uba74 \ud30c\ub4dc\ub294 AWS \ud074\ub7ec\uc2a4\ud130 \uc790\uaca9 \uc99d\uba85\uc744 \uc0ac\uc6a9\ud569\ub2c8\ub2e4. \uadf8\ub7ec\ub098 \ud30c\ub4dc\ub294 AWS API\uc5d0 \uc9c1\uc811 \uc561\uc138\uc2a4\ud560 \uc218 \uc5c6\uc5b4 \ud30c\ub4dc\uac00 \uc2e4\ud589\uc911\uc778 \ub178\ub4dc\uc758 AWS IAM \uc5ed\ud560\ub85c \ub300\uc2e0\ud558\uc5ec \uc561\uc138\uc2a4\ub97c \uc2dc\ub3c4\ud569\ub2c8\ub2e4. \ud558\uc9c0\ub9cc \uc774\ub85c \uc778\ud574 \ubcf4\uc548\uc0c1\uc758 \ubb38\uc81c\uac00 \ubc1c\uc0dd\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">IRSA\ub97c \uc0ac\uc6a9\ud558\uba74 \ud30c\ub4dc\uac00 \ud2b9\uc815 AWS \ub9ac\uc18c\uc2a4\uc5d0 \ub300\ud55c \uc811\uadfc \uad8c\ud55c\uc744 \ud544\uc694\ub85c \ud560 \ub54c, \ud574\ub2f9 Service Account\uc5d0 \uc5f0\uacb0\ub41c AWS IAM \uc5ed\ud560\uc744 \uc0ac\uc6a9\ud558\uc5ec \uc778\uc99d \ubc0f \uc778\uac00\ub97c \uc218\ud589\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. IRSA\ub97c \uc124\uc815\ud558\uae30 \uc704\ud574 \ub2e4\uc74c \ub2e8\uacc4\ub97c \uc218\ud589\ud574\uc57c \ud569\ub2c8\ub2e4:<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">. \ucfe0\ubc84\ub124\ud2f0\uc2a4\uc5d0\uc11c Service Account\ub97c \uc0dd\uc131\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">. AWS IAM\uc5d0\uc11c Service Account\ub97c \uc704\ud55c IAM \uc5ed\ud560(Role)\uacfc \uc815\ucc45(Policy)\uc744 \uc0dd\uc131\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">. \ucfe0\ubc84\ub124\ud2f0\uc2a4 \ud074\ub7ec\uc2a4\ud130\uc5d0\uc11c IRSA \ub9ac\uc18c\uc2a4\ub97c \uc0dd\uc131\ud558\uace0 Service Account\uc640 IAM \uc5ed\ud560\uc744 \uc5f0\uacb0\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">. \ud30c\ub4dc \ub9e4\ub2c8\ud398\uc2a4\ud2b8\uc5d0\uc11c Service Account\ub97c \uc0ac\uc6a9\ud558\ub3c4\ub85d \uc9c0\uc815\ud569\ub2c8\ub2e4.<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">IRSA\ub97c \uc0ac\uc6a9\ud558\uba74 \ucfe0\ubc84\ub124\ud2f0\uc2a4 \ud074\ub7ec\uc2a4\ud130 \ub0b4\uc5d0\uc11c AWS \ub9ac\uc18c\uc2a4\uc5d0 \ub300\ud55c \uad8c\ud55c\uc744 \ub354 \uc815\ubc00\ud558\uac8c \uc81c\uc5b4\ud560 \uc218 \uc788\uc73c\uba70, \ud30c\ub4dc\ub294 AWS API\uc5d0 \uc9c1\uc811 \uc561\uc138\uc2a4\ud560 \ud544\uc694 \uc5c6\uc774 IAM \uc5ed\ud560\uc744 \ud1b5\ud574 \uc548\uc804\ud558\uac8c \ub9ac\uc18c\uc2a4\uc5d0 \uc811\uadfc\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ub97c \ud1b5\ud574 \ubcf4\uc548\uc744 \uac15\ud654\ud558\uace0 \uad8c\ud55c \uad00\ub9ac\ub97c \uac1c\uc120\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">IRSA \uc0dd\uc131\uc740 eksctl \uba85\ub839\uc5b4\ub85c \uac00\ub2a5\ud569\ub2c8\ub2e4. \ud558\uc9c0\ub9cc \ucf54\ub4dc\uac00 \uc544\ub2c8\ub77c \ud5a5\ud6c4 \uc7ac\uc0ac\uc6a9 \ub4f1\uc758 \uad00\ub9ac \uc5b4\ub824\uc6c0\uc774 \uc788\uc2b5\ub2c8\ub2e4. \ub530\ub77c\uc11c \ud14c\ub77c\ud3fc \ucf54\ub4dc\ub97c \uad00\ub9ac\ud558\ub294 \uac83\uc744 \ucd94\ucc9c\ud569\ub2c8\ub2e4.<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">LB Controller\uc5d0\uc11c \uc0ac\uc6a9\ud558\ub294 IRSA\ub294 \uc544\ub798\uc758 \ud14c\ub77c\ud3fc \ubaa8\ub4c8\uc744 \uc0ac\uc6a9\ud569\ub2c8\ub2e4.<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/github.com\/junghoon2\/k8s-class\/blob\/main\/terraform-eks\/irsa-role.tf\">IRSA.tf<\/a><br><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">module \"load_balancer_controller_irsa_role\" {\n  source = \"terraform-aws-modules\/iam\/aws\/\/modules\/iam-role-for-service-accounts-eks\"\n\n  role_name                              = \"load-balancer-controller\"\n  attach_load_balancer_controller_policy = true\n\n  oidc_providers = {\n    ex = {\n      provider_arn               = module.eks.oidc_provider_arn\n      namespace_service_accounts = [\"kube-system:aws-load-balancer-controller\"]\n    }\n  }\n\n  tags = local.tags\n}<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">. oidc_providers.namespace_service_accounts&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">AWS IAM\uacfc Role\uc5d0 \uc5f0\uacb0\ud560 Service Account \uc774\ub984\uc744 \uc9c0\uc815\ud569\ub2c8\ub2e4. LB Controller\uc5d0 \uc0ac\uc6a9\ud560 \uc774\ub984\uc740 \uc77c\ubc18\uc801\uc73c\ub85c \ubcc0\uacbd\ud558\uc9c0 \uc54a\uace0 aws-load-balancer-controller \uadf8\ub300\ub85c \uc0ac\uc6a9\ud569\ub2c8\ub2e4.<br>\uae30\uc874 EKS\ub97c \uc0dd\uc131\ud55c \ud14c\ub77c\ud3fc \ucf54\ub4dc\uc5d0\uc11c \uc704 irsa.tf\ub97c \ucd94\uac00\ud558\uc5ec LB Controller \uc6a9 Role\uacfc Policy\ub97c \uc0dd\uc131\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">tf plan -out planfile\ntf apply planfile<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc801\uc6a9\uc774 \uc644\ub8cc\ub418\uba74 AWS \ucf58\uc194\uc5d0\uc11c \uc0dd\uc131\ub41c \ub9ac\uc18c\uc2a4\ub97c \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/lh6.googleusercontent.com\/GRC7gE2o-WIdAuRcgb3eRqRHuBbhlYYk7lXZIHL683NGAieQy5sc-ngD05GtT5NPqBoaI1isKu25hm-o2pNLOSyt3SD7tXG4j4mLY8KOllkiFMb9WFx5TPEP5rhrolPKVdxTmmk80zgm2VxVbDPOLtI\" alt=\"\"\/><\/figure><\/div>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh3.googleusercontent.com\/AkmpOq2X7ki547OdRMt0PQZZpv16GYrtIsoWSAr9G575znFQaRYFioL7ikjdbhJQzDnrYO-oFSPZcDrKervXSNGsF5tMPHQKc8ojOsuQlE82cohlAGYy9JXjdqr9NwfxZb4mjsMq1g5w6b4Dybq7YdM\" alt=\"\"\/><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>3. AWS LB Controller \ubc0f External DNS Controller \uc124\uce58<\/strong><br><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\uc81c IRSA \uc900\ube44\uac00 \uc644\ub8cc\ub418\uc5c8\uc73c\ubbc0\ub85c \ud5ec\ub984\uc744 \uc774\uc6a9\ud558\uc5ec LB Controller, External DNS Controller\ub97c \uc124\uce58\ud569\ub2c8\ub2e4. \ud5ec\ub984 \uc124\uce58 \ubc29\ubc95\uc740 \uae30\uc874\uacfc \ub3d9\uc77c\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$ (\u2388 |switch-oregon-stage:kube-system) helm repo add eks https:\/\/aws.github.io\/eks-charts\n$ (\u2388 |switch-oregon-stage:kube-system) helm pull eks\/aws-load-balancer-controller\n$ (\u2388 |switch-oregon-stage:kube-system) tar xvfz aws-load-balancer-controller-1.4.8.tgz\n$ (\u2388 |switch-oregon-stage:kube-system) cd aws-load-balancer-controller\n$ (\u2388 |switch-oregon-stage:kube-system) cp values.yaml ci\/my-values.yaml\n<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\uc81c aws load balancer controller \ud5ec\ub984\uc744 \uc124\uce58\ud569\ub2c8\ub2e4. \uc544\ub798 my-values.yaml \ud30c\uc77c\uacfc \ud5ec\ub984 \ucc28\ud2b8\ub294 <a href=\"https:\/\/github.com\/junghoon2\/k8s-class\/blob\/main\/aws-load-balancer-controller\/aws-load-balancer-controller-1.4.8\/ci\/my-values.yaml\">\ud544\uc790\uc758 \uae43\ud5d9<\/a>\uc5d0\uc11c \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">serviceAccount:\n  create: true\n  name: aws-load-balancer-controller\n  annotations:\n    eks.amazonaws.com\/role-arn: arn:aws:iam::$ACCOUNT_ID:role\/load-balancer-controller\nclusterName: $CLSTER_NAME\n<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">. serviceAccount.name<br>IRSA \uc0dd\uc131 \uc2dc \uc0ac\uc6a9\ud55c aws-load-balancer-controller \uc774\ub984\uc744 \ub3d9\uc77c\ud558\uac8c \uc0ac\uc6a9\ud569\ub2c8\ub2e4.&nbsp;&nbsp;<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">. serviceAccount.annotations<br>\uc704\uc5d0\uc11c \uc0dd\uc131\ud55c IRSA\uc758 ROLE ARN \uc815\ubcf4\ub97c \uc544\ub798 \uc2a4\ud06c\ub9b0\uc0f7\uc744 \ucc38\uace0\ud558\uc5ec \uc785\ub825\ud569\ub2c8\ub2e4. IRSA &#8211; Roles \uba54\ub274\uc5d0\uc11c load-balancer-controller\ub97c \uac80\uc0c9\ud558\uba74 Role\uc744 \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ud574\ub2f9 Role\uc758 \uc0c1\uc138 \uc815\ubcf4\ub97c \ud655\uc778\ud558\uba74 ARN \uc815\ubcf4\ub97c \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/lh3.googleusercontent.com\/kKNfTGk5tAW7UqtxXhxuSym0KRY_zhxULVV64wuP5v58CGJkVHyrilGuYugJPz6X3PXfLDaArDMnaOAltreBRTd6vioZdcNwKuyJCf0pLttf_yj6T7wJox0YK0iOJ_01l9Fe_rJ9ibz_NyyRIiEXtok\" alt=\"\"\/><\/figure><\/div>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/lh4.googleusercontent.com\/T8xN3AsR_eh5xvUF49VNibzp1Y5b4Ao5eU2Ch0laHjfgKVRV7-9KDI4JFmNqkvaIC7Fji-9BM-8vCiIKxF0wyAqvaB9mLDVcz-iXN6DaJioGMDQcSiwJ3XrG5NT3_8Ezmermzf8w16euh8UUL-ZfB3g\" alt=\"\"\/><\/figure><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">. clusterName<br>\uac01\uc790 cluster \uc774\ub984\uc744 \uc785\ub825\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc704 my-values.yaml \uae30\uc900\uc73c\ub85c kube-system \ub124\uc784\uc2a4\ud398\uc774\uc2a4\uc5d0 \uc124\uce58\ud569\ub2c8\ub2e4.<br><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$ (\u2388 |switch-singapore-test:kube-system) cd aws-load-balancer-controller\/aws-load-balancer-controller-1.4.8 \n$ (\u2388 |switch-singapore-test:kube-system) helm install aws-load-balancer-controller -n kube-system -f my-values.yaml .\nNAME: aws-load-balancer-controller\nLAST DEPLOYED: Fri Jun  9 09:31:05 2023\nNAMESPACE: kube-system\nSTATUS: deployed\nREVISION: 1\nTEST SUITE: None\nNOTES:\nAWS Load Balancer controller installed!<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc124\uce58\uac00 \uc644\ub8cc\ub418\uba74 LB Controller \ud30c\ub4dc\ub97c \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$ (\u2388 |switch-singapore-test:kube-system) k get pod\nNAME                                            READY   STATUS    RESTARTS   AGE\naws-load-balancer-controller-7654f65466-hjtc5   1\/1     Running   0          50s\naws-load-balancer-controller-7654f65466-mmd98   1\/1     Running   0          50s<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc124\uce58\ud55c LB Controller \ub3d9\uc791 \ud655\uc778\uc740 \uc774 \ud6c4 \uc778\uadf8\ub808\uc2a4 \uc2e4\uc2b5\uc5d0\uc11c \uc9c4\ud589\ud558\uaca0\uc2b5\ub2c8\ub2e4. \ub2e4\uc74c\uc73c\ub85c AWS External DNS Controller\ub97c \uc124\uce58\ud569\ub2c8\ub2e4.&nbsp;<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">AWS LB Controller\uc640 \ub3d9\uc77c\ud558\uac8c \uc678\ubd80 Route 53 \ub9ac\uc18c\uc2a4\ub97c \uc81c\uc5b4\ud558\ubbc0\ub85c External DNS Controller \uc6a9\ub3c4\uc758 IRSA \uc124\uc815\uc774 \ud544\uc694\ud569\ub2c8\ub2e4. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">module &#8220;external_dns_irsa_role&#8221; {<br>&nbsp; source = &#8220;terraform-aws-modules\/iam\/aws\/\/modules\/iam-role-for-service-accounts-eks&#8221;<br><br>&nbsp; role_name &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = &#8220;external-dns&#8221;<br>&nbsp; attach_external_dns_policy&nbsp; &nbsp; = true<br>&nbsp; external_dns_hosted_zone_arns = [&#8220;arn:aws:route53:::hostedzone\/{HOSTED_ZONE_ID}&#8221;]<br><br>&nbsp; oidc_providers = {<br>&nbsp; &nbsp; ex = {<br>&nbsp; &nbsp; &nbsp; provider_arn &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = module.eks.oidc_provider_arn<br>&nbsp; &nbsp; &nbsp; namespace_service_accounts = [&#8220;kube-system:external-dns&#8221;]<br>&nbsp; &nbsp; }<br>&nbsp; }<br><br>&nbsp; tags = local.tags<br>}<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">. external_dns_hosted_zone_arns&nbsp;<br>Route 53\uc5d0\uc11c \uc0ac\uc804\uc5d0 \uc900\ube44\ud55c \ub3c4\uba54\uc778\uc758 {HOSTED_ZONE_ID} \uc815\ubcf4\ub97c \uc544\ub798 \uc2a4\ud06c\ub9b0\uc0f7 \uc815\ubcf4\ub97c \ucc38\uace0\ud558\uc5ec \uc785\ub825\ud569\ub2c8\ub2e4. AWS Route 53 \ucf58\uc194\uc5d0\uc11c \u2018Hosted zone details\u2019 \uba54\ub274\ub97c \uc120\ud0dd\ud558\uba74 \ub429\ub2c8\ub2e4.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/lh3.googleusercontent.com\/wud3TgasXecxpr0rfZ234JZJUtg_-QMetH7MvhLDDGpgBF6iBFsrFc06sWScCwuWAsYcEM502ZQDH4oDHyVXR9yThBKPYU0o4E8PZoBtfGb7eFee0rcK8OqOz66aqgRWPjY6D4ASopCaH5HwWWWEmIg\" alt=\"\"\/><\/figure><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">HOSTED_ZONE_ID \uc815\ubcf4\ub97c \uac01\uc790 \uc815\ubcf4\ub85c \ubcc0\uacbd\ud558\uace0 \uc124\uce58\ub97c \uc9c4\ud589\ud569\ub2c8\ub2e4.<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc218\uc815\ud55c \ucf54\ub4dc\ub85c \ud14c\ub77c\ud3fc \ucf54\ub4dc\ub97c \uc2e4\ud589\ud569\ub2c8\ub2e4. \u2018tf plan\u2019\uc73c\ub85c \ubbf8\ub9ac \uacb0\uacfc\ub97c \ud655\uc778\ud558\uace0 \uc758\ub3c4\ud55c \uc0c1\ud0dc\uc774\uba74 \u2018tf apply\u2019\ub97c \uc2e4\ud589\ud569\ub2c8\ub2e4.<br><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">tf plan -out planfile\ntf apply planfile<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">IRSA \uc900\ube44\uac00 \ub418\uc5c8\uc73c\ubbc0\ub85c External DNS Controller \ud5ec\ub984 \ucc28\ud2b8\ub97c \ubc30\ud3ec\ud569\ub2c8\ub2e4. (<a href=\"https:\/\/github.com\/junghoon2\/k8s-class\/blob\/main\/external-dns\/external-dns-1.12.2\/ci\/my-values.yaml\">\ud544\uc790 \uae43\ud5d9 \uc18c\uc2a4<\/a> \ucc38\uc870)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ud5ec\ub984 Value \ud30c\uc77c<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">serviceAccount:\n  create: true\n  annotations:\n    eks.amazonaws.com\/role-arn: arn:aws:iam::${aws_account_id}:role\/external-dns<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp;$EXTERNAL_DNS_ROLE_ARN<br>\uc704\uc5d0\uc11c \uc0dd\uc131\ud55c IRSA \uc2e4\ud589 \uacb0\uacfc\ub85c \uc0dd\uc131\ub41c External DNS\uc758 ROLE\uc744 \uc785\ub825\ud569\ub2c8\ub2e4. AWS IAM &#8211; Roles \uc5d0\uc11c \uc544\ub798\uc640 \uac19\uc774 \u2018external-dns\u2019\ub97c \uac80\uc0c9\ud55c \uacb0\uacfc\ub97c \uc544\ub798 \uc2a4\ud06c\ub9b0\uc0f7\uc744 \ucc38\uc870\ud558\uc5ec \u201carn:aws:iam:XXXXX\u201d\uc785\ub825\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/lh3.googleusercontent.com\/PDTRWPniue9RKIi8AL4Z1U_YiB7s2FTFvl7KC0JsxvQCkLmglqpYS5q5wB3WB-76RjkUNGKSzcKSFhrjHwLwAcSyYE3QlGY-eYtjKuOyvh54jky93-qc7oH8V14Usfyf6tQNuw3oHcxqPAyLqBXragc\" alt=\"\"\/><\/figure><\/div>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh5.googleusercontent.com\/XgQFiZ887uM79uDXf0jv7o7YHlSquCTb10pXpHo9nXvh1SH_m_VJbIv4M2_hKivw8bQBYOm5rGfpZP3pTw3l0AX6QkSOhgAlXcpVZFFVqgFVppH4BAvqObFhAUytIyTgdo9IUwePJHWZeau-xmaIkFc\" alt=\"\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\uc900\ube44\ud55c \ud5ec\ub984 Value \ud30c\uc77c\uc744 \uc774\uc6a9\ud558\uc5ec \ud5ec\ub984 \ucc28\ud2b8\ub97c \ubc30\ud3ec\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$ (\u2388 |switch-singapore-test:kube-system) helm install external-dns -f my-values.yaml .\nNAME: external-dns\nLAST DEPLOYED: Tue Jul 11 09:12:49 2023\nNAMESPACE: kube-system\nSTATUS: deployed\nREVISION: 1\nTEST SUITE: None\nNOTES:\n***********************************************************************\n* External DNS                                                        *\n***********************************************************************\n  Chart version: 1.12.2\n  App version:   0.13.4\n  Image tag:     registry.k8s.io\/external-dns\/external-dns:v0.13.4\n***********************************************************************<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">External DNS Controller \ud30c\ub4dc\uac00 \uc815\uc0c1 \uc2e4\ud589\ub429\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">[(jerry-test:kube-system) external-dns-1.12.2]$ k get pod external-dns-5555f6796f-77n4d \nNAME                            READY   STATUS    RESTARTS   AGE\nexternal-dns-5555f6796f-77n4d   1\/1     Running   0          3m22s<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">external-dns-xxx \ud30c\ub4dc\uc758 \ub85c\uadf8\uac00 \uc544\ub798\uc640 \uac19\uc774 &#8220;All records are already up to date\u201d \uc774\uba74 \uc815\uc0c1\uc73c\ub85c \ubc30\ud3ec\ub41c \uac83 \uc785\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">[(jerry-test:kube-system) external-dns-1.12.2]$ k logs -f external-dns-5555f6796f-77n4d \ntime=\"2023-09-02T22:25:03Z\" level=info msg=\"Applying provider record filter for domains: [jerryljh.me. .jerryljh.me.]\"\ntime=\"2023-09-02T22:25:03Z\" level=info msg=\"All records are already up to date\"<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>4. \uc778\uadf8\ub808\uc2a4 \uc2e4\uc2b5<\/strong><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\uc81c \uc900\ube44\uac00 \uc644\ub8cc\ub418\uc5c8\uc2b5\ub2c8\ub2e4. \uc55e\uc11c \uc900\ube44\ud55c AWS LB Controller\uc640 External DNS Controller\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc778\uadf8\ub808\uc2a4\ub97c \uc0ac\uc6a9\ud574\ubcf4\uaca0\uc2b5\ub2c8\ub2e4. \ud14c\uc2a4\ud2b8\uc5d0 \uc0ac\uc6a9\ud55c \u2018echoservice\u2019 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc758 deployment, service \ub4f1 \uc608\uc81c \ucf54\ub4dc\ub294 <a href=\"https:\/\/github.com\/junghoon2\/k8s-class\/tree\/main\/aws-load-balancer-controller\/examples\/echoservice\">\ud544\uc790\uc758 \uae43\ud5c8\ube0c \uc5d0\uc11c<\/a> \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">deployment, service \ub9e4\ub2c8\ud398\uc2a4\ud2b8\ub294 \uae30\ubcf8 \uc124\uc815\uc774\ub77c \uc0c1\uc138 \uc124\uba85\uc740 \uc0dd\ub7b5\ud569\ub2c8\ub2e4. \uc778\uadf8\ub808\uc2a4 \ub9e4\ub2c8\ud398\uc2a4\ub294 \uc544\ub798\uc640 \uac19\uc774 \uc791\uc131\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">apiVersion: networking.k8s.io\/v1\nkind: Ingress\nmetadata:\n  name: echoserver\n  namespace: echoserver\n  annotations:\n    alb.ingress.kubernetes.io\/scheme: internet-facing\n    alb.ingress.kubernetes.io\/target-type: ip\n    alb.ingress.kubernetes.io\/group.name: sg-external\n    alb.ingress.kubernetes.io\/listen-ports: '[{\"HTTP\": 80}, {\"HTTPS\":443}]'\n    alb.ingress.kubernetes.io\/ssl-redirect: \"443\"\n    alb.ingress.kubernetes.io\/certificate-arn: $CERTIFICATE_ARN\n    external-dns.alpha.kubernetes.io\/hostname: $INGRESS_HOST\nspec:\n  ingressClassName: alb\n  rules:\n  - host: $INGRESS_HOST\n    http:\n      paths:\n      - path: \/echo-server\n        pathType: Prefix\n        backend:\n          service:\n            name: echoserver\n            port:\n              number: 80<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">. alb.ingress.kubernetes.io\/target-type: ip<br>target-type\uc73c\ub85c \u2018instance\u2019 \ub610\ub294 \u2018ip\u2019 \uac00\ub2a5\ud569\ub2c8\ub2e4. \uc778\uc2a4\ud134\uc2a4\ub97c \uc9c0\uc815\ud558\uba74 \ud30c\ub4dc\uac00 \uc544\ub2c8\ub77c \uc778\uc2a4\ud134\uc2a4\uac00 \uc2e4\ud589\ud558\ub294 EKS \uc804\uccb4 \ub178\ub4dc\uc758 \ub178\ub4dc\ud3ec\ud2b8\ub85c \ud2b8\ub798\ud53d\uc744 \uc804\ub2ec\ud569\ub2c8\ub2e4. \ub530\ub77c\uc11c \ub124\ud2b8\uc6cc\ud06c \ud649\uc774 \ud55c\ub2e8\uacc4 \uc99d\uac00\ud569\ub2c8\ub2e4. IP\ub85c \uc9c0\uc815\ud558\uba74 \ub85c\ub4dc\ubc38\ub7f0\uc11c\uc5d0\uc11c \ud30c\ub4dc\uc758 IP\ub85c \ud2b8\ub798\ud53d \ubc14\ub85c \uc804\ub2ec\ud569\ub2c8\ub2e4. ip\ub97c \uc635\uc158\uc744 \uc0ac\uc6a9\ud558\uae30 \uc704\ud574\uc11c\ub294 eks CNI\ub85c aws vpc cni\ub97c \uc0ac\uc6a9\ud574\uc57c \ud569\ub2c8\ub2e4. \uc544\ub9c8\ub3c4 eks \ud658\uacbd\uc774\uba74 \ub300\ubd80\ubd84 aws vpc cni\ub97c \uc0ac\uc6a9\ud560 \uac83 \uac19\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">. alb.ingress.kubernetes.io\/group.name<br>\uadf8\ub8f9 \uc774\ub984\uc73c\ub85c \uc784\uc758\uc758 \uc774\ub984\uc744 \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. ALB \uadf8\ub8f9\uc744 \uc9c0\uc815\ud558\uc9c0 \uc54a\uc73c\uba70 \uac1c\ubcc4 \uc778\uadf8\ub808\uc2a4\ub9c8\ub2e4 \ub85c\ub4dc\ubc38\ub7f0\uc11c\ub97c \ubcc4\ub3c4\ub85c \uc0dd\uc131\ud569\ub2c8\ub2e4. \uc2e4\ubb34\uc5d0\uc11c \uc778\uadf8\ub808\uc2a4\ub97c \ub9ce\uc774 \uc0dd\uc131\ud558\ubbc0\ub85c \ubd88\ud544\uc694\ud55c \ube44\uc6a9 \ub0ad\ube44\uac00 \ubc1c\uc0dd\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. Security Group \ubcc4\ub85c \uc11c\ube44\uc2a4\ub97c \uad6c\ubd84\ud558\uc9c0 \uc54a\uac70\ub098 \uc11c\ube44\uc2a4 \ud2b8\ub798\ud53d\uc774 ALB\uac00 \ucc98\ub9ac\ud560 \uc218 \uc5c6\uc744\ub9cc\ud07c \ub9e4\uc6b0 \ud06c\uc9c0 \uc54a\ub2e4\uba74 \ub3d9\uc77c\ud55c ALB\ub85c \ucc98\ub9ac\uac00 \uac00\ub2a5\ud569\ub2c8\ub2e4. \uadf8\ub8f9\uc744 \uc9c0\uc815\ud558\uc5ec \uc778\uadf8\ub808\uc2a4\ub9c8\ub2e4 ALB\ub97c \ubcc4\ub3c4\ub85c \ub9cc\ub4e4\uc9c0 \uc54a\uace0 \ud558\ub098\uc758 ALB\ub85c \uc5ec\ub7ec \uac1c\uc758 \uc778\uadf8\ub808\uc2a4\ub97c \ucc98\ub9ac\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">. alb.ingress.kubernetes.io\/certificate-arn<br>\ub85c\ub4dc\ubc38\ub7f0\uc11c\uc5d0\uc11c TLS \uc778\uc99d\uc11c\ub97c \ucc98\ub9ac\ud558\ub3c4\ub85d \uac01\uc790 \uc0dd\uc131\ud55c \uc778\uc99d\uc11c \uc815\ubcf4\ub97c \ub4f1\ub85d\ud569\ub2c8\ub2e4. AWS \ucf58\uc194\uc5d0\uc11c \u2018Certificate Manager\u2019\uc5d0\uc11c \uc544\ub798 \uc2a4\ud06c\ub9b0\uc0f7\uc744 \ucc38\uc870\ud558\uc5ec \uc778\uc99d\uc11c\uc758 ARN \uc815\ubcf4\ub97c \uc785\ub825\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh5.googleusercontent.com\/-yTgbBCiamzzbZKtyXH5FQjbMIdR5_CsAbzm6BNbKq6-HTxdlXiNbBso2aoYHp5e8hvdMqPjJM0dU6159YCofPHkvkiz_9LbyZzrb0aD1IAH8pyGSWTsYc0PRtZZMQbzTzBQnI5vu5PATQDhQRNBO2U\" alt=\"\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">. external-dns.alpha.kubernetes.io\/hostname, spec.rules.[]host:<br>\uc778\uadf8\ub808\uc2a4\uac00 \ucc98\ub9ac\ud560 \ub3c4\uba54\uc778 \uc815\ubcf4\ub97c \uc785\ub825\ud569\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4\uc11c <a href=\"http:\/\/www.myweb.com\/\">www.myweb.com<\/a>, <a href=\"http:\/\/www.jerryljh.me\/\">www.jerryljh.me<\/a> \ub4f1 \uac01\uc790 \uc11c\ube44\uc2a4\uc758 \ub3c4\uba54\uc778 \uc815\ubcf4\ub97c \uc785\ub825\ud569\ub2c8\ub2e4. \ud574\ub2f9 \ub3c4\uba54\uc778 \uc815\ubcf4\ub294 \uc774\uc804 \ub2e8\uacc4\uc5d0\uc11c \uc124\uce58\ud55c External DNS Controller\uc5d0 \uc758\ud558\uc5ec \uc790\ub3d9\uc73c\ub85c AWS Route 53\uc5d0 \ub4f1\ub85d\ub418\uace0 \ud574\ub2f9 \ub3c4\uba54\uc778\uc774 \ubc14\ub77c\ubcf4\ub294 Target\uc740 \uc778\uadf8\ub808\uc2a4\ub85c \uc0dd\uc131\ub41c Load Balancer \uc815\ubcf4\ub85c \uc5ed\uc2dc \uc790\ub3d9\uc73c\ub85c \ub9e4\ud551\ub429\ub2c8\ub2e4.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">. spec.ingressClassName: alb<br>\uc778\uadf8\ub808\uc2a4\uac00 \uc0dd\uc131\ud558\ub294 \ub85c\ub4dc\ubc38\ub7f0\uc11c\ub97c \uad6c\ubd84\ud558\uae30 \uc704\ud558\uc5ec Class \uc774\ub984\uc744 \uc9c0\uc815\ud569\ub2c8\ub2e4. \uc6b0\ub9ac\ub294 AWS ALB\ub97c \uc0ac\uc6a9\ud560 \uc608\uc815\uc774\ubbc0\ub85c ALB\ub85c \uc9c0\uc815\ud569\ub2c8\ub2e4.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uadf8\ub7fc 3\uac1c\uc758 \ub9e4\ub2c8\ud398\uc2a4\ud2b8 &#8211; ingress, deployment, service\ub97c \ud55c\uaebc\ubc88\uc5d0 \ubc30\ud3ec\ud569\ub2c8\ub2e4. 3\uac1c\uc758 \ub9e4\ub2c8\ud398\uc2a4\ud2b8\uac00 \uc704\uce58\ud55c \ub514\ub809\ud1a0\ub9ac\ub85c \uc774\ub3d9\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># echoservice \ub9e4\ub2c8\ud398\uc2a4\ud2b8 \ud30c\uc77c\uc774 \uc704\uce58\ud55c \ub514\ub809\ud1a0\ub9ac\ub85c \uc774\ub3d9\ud569\ub2c8\ub2e4.\n$ (\u2388 |switch-singapore-test:kube-system) cd private\/k8s-class\/aws-load-balancer-controller\/aws-lb-controller-examples\/\n$ (\u2388 |switch-singapore-test:kube-system) pwd \n\/Users\/jerry\/private\/k8s-class\/aws-load-balancer-controller\/aws-lb-controller-examples<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">echoservice \ub514\ub809\ud1a0\ub9ac \uc804\uccb4\uc758 manifest\ub97c \uc2e4\ud589\ud569\ub2c8\ub2e4. k apply -f {\ub514\ub809\ud1a0\ub9ac \uc774\ub984}\uc73c\ub85c \uc9c0\uc815\ud558\uba74 \ud574\ub2f9 \ub514\ub809\ud1a0\ub9ac \uc544\ub798\uc758 \uc804\uccb4 \ub9ac\uc18c\uc2a4\uac00 \ud55c\uaebc\ubc88\uc5d0 \ubc30\ud3ec\ub429\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$ (\u2388 |switch-singapore-test:kube-system) ls echoservice \nechoserver-deployment.yaml echoserver-ingress.yaml    echoserver-service.yaml\n$ (\u2388 |switch-oregon-stage:default) k apply -f echoservice\/<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ubcc4\ub2e4\ub978 \uc774\uc288\uac00 \uc5c6\ub2e4\uba74 \uc544\ub798\uc640 \uac19\uc774 \ub9ac\uc18c\uc2a4\ub97c \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">$ (\u2388 |switch-oregon-stage:default) k get ing,pod,svc\nNAME                                   CLASS   HOSTS                                 ADDRESS                                                                 PORTS   AGE\ningress.networking.k8s.io\/echoserver   alb     www.XXXX.com                       k8s-XXXX.ap-northeast-2.elb.amazonaws.com   80      3d13h\n\nNAME                              READY   STATUS    RESTARTS   AGE\npod\/echoserver-7757d5ff4d-7m2fp   1\/1     Running   0          3d13h\n\nNAME                 TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)   AGE\nservice\/echoserver   ClusterIP   172.20.198.114   &lt;none>        80\/TCP    3d13h<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uadf8\ub7fc \uc815\uc0c1\uc801\uc73c\ub85c AWS Resource\uac00 \uc0dd\uc131\ub418\uc5c8\ub294\uc9c0 \ud655\uc778\ud569\ub2c8\ub2e4. \uba3c\uc800 Route 53\uc5d0 \ub3c4\uba54\uc778\uc774 \uc790\ub3d9\uc73c\ub85c \ub4f1\ub85d\ub418\uc5c8\ub294\uc9c0 \ud655\uc778\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh4.googleusercontent.com\/N3PzjwiK1UxXwqUWmKBwpNePIpcz2IcKIMWt9-Ya3Mt1pnhS1ymPOUAIotvAst3CM-VQW9_fDma0s5lR59GjyPbTtlWKEdg5lZSPl6Bbt_OZJOYnZREFSMKF9zTsvktEQv3ZSTY2DF6_tIAp5SWE9m0\" alt=\"\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\uac01\uc790 \uc0dd\uc131\ud55c \ub3c4\uba54\uc778\uc774 Route 53\uc5d0 \ub4f1\ub85d\ub418\uc5c8\uc2b5\ub2c8\ub2e4. \ub3c4\uba54\uc778\uc758 \u2018A\u2019 \ub808\ucf54\ub4dc\ub97c \ud655\uc778\ud558\uba74 Load Balancer\ub85c \ub9e4\ud551\ub41c \uac78 \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh4.googleusercontent.com\/CB1svM7trqBqlTcAI9zGwwtZLA8c7gyl-12ai-UZgI6Des96b4MHaSQ6L8fpLTDT4zf2Gy0tnMioM0Rok4DzKy2Ew4778mmeqxuJWT_mzYrb_VLgkd-e4hB_3jIguzQ7t6dIWHqeUF2w7p93AGCcsCQ\" alt=\"\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\ub2e4\uc74c\uc740 ALB\uc758 Target Group\uc744 \ud655\uc778\ud569\ub2c8\ub2e4. EC2 &#8211; Load balancers \uba54\ub274\ub97c \ud655\uc778\ud558\uba74 \ubc29\uae08 \uc0dd\uc131\ud55c \ub85c\ub4dc\ubc38\ub7f0\uc11c\ub97c \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh3.googleusercontent.com\/TdfdGDJrAdsw6BBWd11T9sb05B97Uk1lpYB-JygIn7TjKNBZmqpp1Wv7ojsPVCL-VZq22fyI-N7l504HE5gucB-gMfJ9oLSCEGADZTxxpR465WfG8EnL4JeI19n_USXKzMM1AQazr6B1UHPq6bqt6Ak\" alt=\"\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\ub85c\ub4dc\ubc38\ub7f0\uc11c\ub97c \uc120\ud0dd\ud558\uace0 \uc0c1\uc138 \uba54\ub274\uc5d0\uc11c \u2018Listeners and rules\u2019\ub97c \ud655\uc778\ud569\ub2c8\ub2e4. \u2018Rules\u2019\ub97c \ub2e4\uc2dc \uc120\ud0dd\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/lh6.googleusercontent.com\/xFHVwb4Rl4r3U3hW2Me8KkH9ErcfXkB2RxNP7P70oYYrjy0pQ0Ny4cFMnT8DY5OlP_tzT1lYQ0u73i5RU-9hzk4a_Hd2FJP7u_Exmy5iWIatEokXzad9tt0jgoCflz3EEl1BH2HEA03SMrUV649C0NE\" alt=\"\"\/><\/figure><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">\uc778\uadf8\ub808\uc2a4 \ub9e4\ub2c8\ud398\uc2a4\ud2b8\uc5d0\uc11c \uc791\uc131\ud55c \ud638\uc2a4\ud2b8 \uc774\ub984\uacfc Path(\/echo-server)\ub97c \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. Target Group\uc744 \ud655\uc778\ud558\uae30 \uc704\ud558\uc5ec \uc544\ub798 \uc2a4\ud06c\ub9b0\uc0f7\uc744 \ucc38\uc870\ud558\uc5ec \u2018k8s-default-echoserver-xxxxx\u2019\ub97c \uc120\ud0dd\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh3.googleusercontent.com\/SGPMK98VFM__MVGGiWte97M54NdSR_OUHKlgaRDxkcrP914qta9Li7cxjcs3u8oQ3WMQZ93He5ADLYI2MbtwzvnHShYJarPnldI56Ja3KjCcfWG8PEVlbd83zTHLNCgXdBTtnY33AZJ2DteDcJq3Ygg\" alt=\"\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">ALB\uac00 \ubc14\ub77c\ubcf4\ub294 \ud0c0\uac9f \uadf8\ub8f9 \uc815\ubcf4\ub97c \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ud0c0\uac9f\uc758 \uac1c\uc218, \uc815\uc0c1 \uc5ec\ubd80 \ub4f1\uc744 \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/lh4.googleusercontent.com\/Ii7CyvL8V2cab_RBuRzJnp3ddV1OhtKyEkZubW_6duBgYV6wg_swZNDnU1eY5jtVDq-sg-F-vASpnPL5ueF67_VFjrocHG_YAgCzOVmZKG02uRHWRKUI1ukNZ81xV1FDp4V-jbcMNhJIs7wrg0zqSW0\" alt=\"\"\/><\/figure><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">\uc544\ub798 \uc0c1\uc138 \uc815\ubcf4\ub97c \ud655\uc778\ud558\uba74 IP\ub97c \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh6.googleusercontent.com\/AhkWGDDZCBHQA3mj7SmTbl4f7gqUHZfPzFHzVOudLpns3b-KgNWB1Jur5RTN7RMGxA5192dcsKESZ5GcKuADAWb1JBTTdrk4d7z4NvqO6HQR3nrBKlKN30ne54A4LsLyBjTNQI5HzwYxAIds5hujrSk\" alt=\"\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\ud574\ub2f9 IP\ub294 \ub178\ub4dc IP\uac00 \uc544\ub2cc \ud30c\ub4dc\uc758 IP\ub85c ALB\uc5d0\uc11c \ubc14\ub77c\ubcf4\ub294 \ud0c0\uac9f\uc774 \ud30c\ub4dc\uc784\uc744 \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc704 \uc2a4\ud06c\ub9b0\uc0f7\uc5d0\uc11c 10.110.8.100\uc740 echoserver \ud30c\ub4dc IP\uc785\ub2c8\ub2e4.<br><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">[(jerry-test:default) argo-cd-app-of-apps-qa]$ k get pod -o wide echoserver-65dfd67c69-pzjgr\nNAME                          READY   STATUS    RESTARTS   AGE   IP             NODE                                              NOMINATED NODE   READINESS GATES\nechoserver-65dfd67c69-pzjgr   1\/1     Running   0          44h   10.110.8.100   ip-10-110-0-162.ap-northeast-2.compute.internal   &lt;none>           &lt;none><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ub9cc\uc57d target-type: ip \uac00 \uc544\ub2cc instance \ub97c \uc9c0\uc815\ud558\uac70\ub098 LB Controller\ub97c \uc0ac\uc6a9\ud558\uc9c0 \uc54a\uc558\ub2e4\uba74 \uc544\ub798\uc758 \uac19\uc774 \uc804\uccb4 \ub178\ub4dc\uc758 \ub178\ub4dc\ud3ec\ud2b8\uac00 Target Group\uc73c\ub85c \ub4f1\ub85d\ub429\ub2c8\ub2e4.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh4.googleusercontent.com\/4hK_B9v3tPXg7Kij_wrvMtB2Kaldan1MydJ22atZgUYapri9JUS-nUpoFf9cMFILGv94QM_AyjyBXDl_vLwCfeSKJM_dIzNYKqhEXIcJqZS8vqcB3harJljCin9Oq84vCsCxYss8ofLJU9acIdtxPd4\" alt=\"\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\ubb3c\ub860 \ube0c\ub77c\uc6b0\uc800\uc5d0\uc11c \uc9c1\uc811 \ud655\uc778\ud558\uba74 \u2018echoserver\u2019\uac00 \uc815\uc0c1\uc801\uc73c\ub85c \uc751\ub2f5\ud558\ub294 \uac83\uc744 \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh4.googleusercontent.com\/24cPq6Xdjj1h_7LBV6c79jMNTcyx96Kn-dXZekUJ1FO6px1VgMF04yKQ1FKXN_VNMgd1u0BgDcDqtoT8Pjxdxivw27YPMLmjiIECZ1qBCWp4cbVfwV4XZGxe-tbfCoWfAE0iKY3V6ZlHL88pDyzqJC8\" alt=\"\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\ucd94\uac00\ub85c AWS\uc5d0\uc11c \uc0dd\uc131\ud55c \uacf5\uc778 \uc778\uc99d\uc11c\ub3c4 \uc815\uc0c1\uc73c\ub85c \ub4f1\ub85d\ub41c \uac83\uc744 \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>5. Argo-CD \uc778\uadf8\ub808\uc2a4 \uc801\uc6a9<\/strong><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">\uadf8\ub7fc \uc2e4\uc2b5\uc744 \ubc14\ud0d5\uc73c\ub85c \uc2e4\uc81c \uc6b4\uc601\ud558\ub294 Argo-CD\uc5d0 \uc778\uadf8\ub808\uc2a4\ub97c \uc801\uc6a9\ud558\uaca0\uc2b5\ub2c8\ub2e4. \uc55e\uc120 3\uc7a5\uc5d0\uc11c Port-forward\ub97c \uc774\uc6a9\ud558\uc5ec Argo-CD \uc811\uc18d\ud558\uc600\uc2b5\ub2c8\ub2e4. \ud558\uc9c0\ub9cc \uc2e4\uc81c \uc6b4\uc601 \ud658\uacbd\uc5d0\uc11c Argo-CD\ub294 \uac1c\ubc1c\uc790\ub4e4\ub3c4 \uc811\uc18d\ud558\ub294 \uc11c\ube44\uc2a4\ub77c \u2018kubectl\u2019 \uba85\ub839\uc5b4\uc5d0 \uc775\uc219\ud558\uc9c0 \uc54a\ub294 \uc0ac\uc6a9\uc790\ub294 \uc811\uc18d\ud558\uae30 \uc5b4\ub835\uc2b5\ub2c8\ub2e4. \uc778\uadf8\ub808\uc2a4\ub97c \uc0ac\uc6a9\ud558\uba74 \ub3c4\uba54\uc778 \uc815\ubcf4\ub9cc\uc73c\ub85c \uc811\uc18d\ud560 \uc218 \uc788\uc73c\ubbc0\ub85c Argo-CD \ud5ec\ub984 \ubc30\ud3ec \uc2dc \uc778\uadf8\ub808\uc2a4 \uc124\uc815\uae4c\uc9c0 \uac19\uc774 \ud3ec\ud568\ud558\uc5ec \ubc30\ud3ec\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><br>\uadf8\ub7fc \uc778\uadf8\ub808\uc2a4 \uc124\uc815\uc744 \ud3ec\ud568\ud55c <a href=\"https:\/\/github.com\/junghoon2\/k8s-class\/blob\/main\/argo-cd\/argo-cd-5.14.1\/ci\/ingress-values.yaml\">\ud5ec\ub984 Value \ud30c\uc77c<\/a>\uc744 \uc54c\uc544\ubcf4\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">server:\n  extraArgs:\n  - --insecure\n  ingress:\n    enabled: true\n    annotations:\n      alb.ingress.kubernetes.io\/scheme: internet-facing\n      alb.ingress.kubernetes.io\/target-type: ip\n      alb.ingress.kubernetes.io\/group.name: sg-external\n      alb.ingress.kubernetes.io\/listen-ports: '[{\"HTTP\": 80}, {\"HTTPS\":443}]'\n      alb.ingress.kubernetes.io\/ssl-redirect: \"443\"\n      alb.ingress.kubernetes.io\/certificate-arn: $CERTIFICATE_ARN\n      external-dns.alpha.kubernetes.io\/hostname: $ARGOCD_HOST\n    ingressClassName: \"alb\"\n    hosts:\n    - $ARGOCD_HOST\n    paths:\n    - \/\nconfigs:\n  credentialTemplates:\n    ssh-creds:\n      url: git@github.com:junghoon2\n      sshPrivateKey: |\n        -----BEGIN OPENSSH PRIVATE KEY-----\n        XXXX\n        -----END OPENSSH PRIVATE KEY-----\n  repositories:\n    k8s-class:\n      name: k8s-class\n      url: git@github.com:junghoon2\/k8s-class.git<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">. server.extraArgs: &#8211;insecure<br>AWS ALB\uc5d0\uc11c TLS \uc778\uc99d\uc11c\ub97c \ucc98\ub9ac\ud558\uace0 ALB\uc640 Argo=CD \uc6f9\uc11c\ubc84\ub294 \uc77c\ubc18 HTTP \ud1b5\uc2e0\uc744 \ud558\ubbc0\ub85c insecure \uc635\uc158\uc744 \ucd94\uac00\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">. server.ingress.alb.ingress.kubernetes.io\/group.name<br>\uc55e\uc5d0\uc11c \uc608\uc81c\ub85c \uc0dd\uc131\ud55c \u2018echoserver\u2019\uc640 \ub3d9\uc77c\ud55c \uadf8\ub8f9 \uc774\ub984\uc744 \uc9c0\uc815\ud569\ub2c8\ub2e4. \uac19\uc740 ingress \uadf8\ub8f9 \uc774\ub984\uc744 \uc9c0\uc815\ud558\uc5ec \ucd94\uac00\ub85c ALB\ub97c \uc0dd\uc131\ud558\uc9c0 \uc54a\uace0 \uae30\uc874 ALB\ub97c \uac19\uc774 \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ubd88\ud544\uc694\ud55c ALB \ub0ad\ube44\ub97c \ub9c9\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">. server.ingress.alb.ingress.kubernetes.io\/certificate-arn<br>\uc55e\uc5d0\uc11c \uc0dd\uc131\ud55c \uc778\uc99d\uc11c ARN \uc815\ubcf4\ub97c \uc785\ub825\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">. server.ingress.external-dns.alpha.kubernetes.io\/hostname<br>Argo-cd \uc811\uc18d\uc5d0 \uc0ac\uc6a9\ud560 \ub3c4\uba54\uc778 \uc815\ubcf4\ub97c \uc785\ub825\ud569\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4 argocd.myweb.com \ub4f1 Argo-cd \uc6a9 \ubcc4\ub3c4\ub85c \ub3c4\uba54\uc778\uc744 \uc0dd\uc131\ud558\uac70\ub098 <a href=\"http:\/\/www.myweb.com\/argocd\">www.myweb.com\/argocd<\/a> \ub4f1 \ub3c4\uba54\uc778\uc740 \ub3d9\uc77c\ud558\uac8c \ud558\uace0 Path\ub85c \uc11c\ube44\uc2a4\ub97c \ubd84\ub9ac\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub458 \ub2e4 \uc0ac\uc6a9\ud560 \uc218 \uc788\uc73c\ub098 \ud544\uc790\ub294 Argo-cd \uc6a9 \ubcc4\ub3c4 \ub3c4\uba54\uc778\uc744 \ubd84\ub9ac\ud558\ub294 \uac83\uc744 \uc120\ud638\ud569\ub2c8\ub2e4. \uc720\uc0ac\ud558\uac8c grafana.myweb.com, kafka-ui.myweb.com \ub4f1\ub3c4 \ubd84\ub9ac\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">. configs.credentialTemplates.ssh-creds<br>3\uc7a5\uc5d0\uc11c \uc0ac\uc6a9\ud55c ssh \ud0a4\uc815\ubcf4\ub97c \ub3d9\uc77c\ud558\uac8c \uc785\ub825\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc778\uadf8\ub808\uc2a4 \uc815\ubcf4\ub97c \ud3ec\ud568\ud55c \ud5ec\ub984 Values \ud30c\uc77c\ub85c Argo-CD\ub97c \uc7ac\ubc30\ud3ec \ud569\ub2c8\ub2e4.<br><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">[(jerry-test:argocd) argo-cd-5.14.1]$ helm upgrade argocd -f ci\/ingress-values.yaml .\n(\uc0dd\ub7b5)<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\uc81c Port-forward \uc5c6\uc774 \ub3c4\uba54\uc778 \uc8fc\uc18c\ub97c \uc785\ub825\ud558\uba74 Argo-CD\ub85c \uc811\uc18d\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh5.googleusercontent.com\/9pHoxH4D8D5bmypWeyUw9jQBq_pi1gInJMhMjt3HntWy5gsfhvF82fEG_iXLKx_5krwKpIh6DV6mOZQ0sHrB6LtAhuNe09gCWfsjjCg0yCQUIYBS0e3vrN67egl6fu1B7ftIuK9MGaDcyWCsG1c-IcA\" alt=\"\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\uc0c1\uc73c\ub85c \uc774\ubc88 \uc7a5\uc5d0\uc11c \uc778\uadf8\ub808\uc2a4, AWS Load Balancer Controller, External DNS Controller\ub97c \uc54c\uc544\ubcf4\uc558\uc2b5\ub2c8\ub2e4. AWS \uc5d0\uc11c \uc81c\uacf5\ud558\ub294 LB Controller, DNS Controller\ub97c \uc0ac\uc6a9\ud558\uba74 \uc778\uadf8\ub808\uc2a4\ub97c \uc880 \ub354 \ud3b8\ub9ac\ud558\uac8c \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub9e4\ub2c8\uc9c0\ub4dc \ucfe0\ubc84\ub124\ud2f0\uc2a4 \uc11c\ube44\uc2a4\uc758 \uc7a5\uc810\uc785\ub2c8\ub2e4.<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc778\uadf8\ub808\uc2a4\ub294 \ud604\uc5c5\uc5d0\uc11c \uc790\uc8fc \uc0ac\uc6a9\ud558\ub294 \ub9ac\uc18c\uc2a4\uc785\ub2c8\ub2e4. \uac19\uc740 \uc124\uc815\uc774 \ubc18\ubcf5\ub418\ubbc0\ub85c \uc5ec\ub7ec\ubc88 \uacbd\ud5d8\ud558\ub2e4\ubcf4\uba74 \uc790\uc5f0\uc2a4\ub7fd\uac8c \uc54c \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>\ud574\ub2f9 \uae30\uc220 \ube14\ub85c\uadf8\uc5d0 \uc9c8\ubb38\uc774 \uc788\uc73c\uc2dc\uba74 \uc5b8\uc81c\ub4e0\uc9c0 \ubb38\uc758\ud574 \uc8fc\uc138\uc694. \uc9c1\uc811 \ub2f5\ubcc0\ud574 \ub4dc\ub9bd\ub2c8\ub2e4.<br>k8sqna@jennifersoft.com<\/p><\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">\ucc38\uc870<br> <a href=\"https:\/\/malwareanalysis.tistory.com\/597\">https:\/\/malwareanalysis.tistory.com\/597<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"font-size:11px\">1.<strong><a href=\"https:\/\/velog.io\/@ssssujini99\/Web-AWS-Route53%EC%9D%84-%EC%9D%B4%EC%9A%A9%ED%95%98%EC%97%AC-%EB%8F%84%EB%A9%94%EC%9D%B8-%EC%97%B0%EA%B2%B0%ED%95%98%EA%B8%B0\">AWS Route 53 \uc5f0\uacb0 \ubc29\ubc95 \ucc38\uc870<\/a><\/strong><br>2.<strong><a href=\"https:\/\/jojoldu.tistory.com\/434\">AWS \uc778\uc99d\uc11c \uc0dd\uc131 \ubc29\ubc95 \ucc38\uc870<\/a><\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"\uc774\ubc88 \uc7a5\uc740 AWS Load Balancer Controller\uc640 External DNS Controller\ub97c \uc774\uc6a9\ud558\uc5ec \ucfe0\ubc84\ub124\ud2f0\uc2a4 \uc778\uadf8\ub808\uc2a4(Ingress)\ub97c \uc2e4\uc2b5\uc744 \ud1b5\ud558\uc5ec \uc54c\uc544\ubcf4\uaca0\uc2b5\ub2c8\ub2e4. \uba3c\uc800 \uc778\uadf8\ub808\uc2a4\uc758 \uac1c\ub150\uc744 \uc54c\uc544\ubd05\ub2c8\ub2e4. \ud074\ub7ec\uc2a4\ud130&#8230;","protected":false},"author":34,"featured_media":12459,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[386],"tags":[297,296,305,301,293,306,51,299,144,294,300,303,55,237,257],"class_list":["post-12456","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-kubernetes","tag-argocd","tag-aws-eks","tag-aws-lb","tag-cni","tag-eks","tag-external-dns-controleer","tag-jennifer","tag-k8sedu","tag-kubernetes","tag-msa","tag-300","tag-303","tag-55","tag-237","tag-257"],"acf":[],"_links":{"self":[{"href":"https:\/\/jennifersoft.com\/ko\/wp-json\/wp\/v2\/posts\/12456","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jennifersoft.com\/ko\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jennifersoft.com\/ko\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jennifersoft.com\/ko\/wp-json\/wp\/v2\/users\/34"}],"replies":[{"embeddable":true,"href":"https:\/\/jennifersoft.com\/ko\/wp-json\/wp\/v2\/comments?post=12456"}],"version-history":[{"count":2,"href":"https:\/\/jennifersoft.com\/ko\/wp-json\/wp\/v2\/posts\/12456\/revisions"}],"predecessor-version":[{"id":12460,"href":"https:\/\/jennifersoft.com\/ko\/wp-json\/wp\/v2\/posts\/12456\/revisions\/12460"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/jennifersoft.com\/ko\/wp-json\/wp\/v2\/media\/12459"}],"wp:attachment":[{"href":"https:\/\/jennifersoft.com\/ko\/wp-json\/wp\/v2\/media?parent=12456"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jennifersoft.com\/ko\/wp-json\/wp\/v2\/categories?post=12456"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jennifersoft.com\/ko\/wp-json\/wp\/v2\/tags?post=12456"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}