{"id":12414,"date":"2023-08-30T09:00:24","date_gmt":"2023-08-30T00:00:24","guid":{"rendered":"https:\/\/jennifersoft.com\/ko\/?p=12414"},"modified":"2024-03-28T15:10:43","modified_gmt":"2024-03-28T06:10:43","slug":"2023-08-30-jennifer-kubernetes-3","status":"publish","type":"post","link":"https:\/\/jennifersoft.com\/ko\/blog\/kubernetes\/2023-08-30-jennifer-kubernetes-3\/","title":{"rendered":"3. Argo-CD\ub97c \uc774\uc6a9\ud55c GitOps \uc2dc\uc2a4\ud15c \uad6c\ucd95"},"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\/08\/\u1100\u1175\u1109\u116e\u11af\u1107\u1173\u11af\u1105\u1169\u1100\u1173\u110b\u1167\u11ab\u110c\u1162_03_\u110f\u1165\u1107\u1165_230823-2-1024x576.jpg\" alt=\"\" class=\"wp-image-12415\" srcset=\"https:\/\/jennifersoft.com\/ko\/wp-content\/uploads\/sites\/2\/2023\/08\/\u1100\u1175\u1109\u116e\u11af\u1107\u1173\u11af\u1105\u1169\u1100\u1173\u110b\u1167\u11ab\u110c\u1162_03_\u110f\u1165\u1107\u1165_230823-2-1024x576.jpg 1024w, https:\/\/jennifersoft.com\/ko\/wp-content\/uploads\/sites\/2\/2023\/08\/\u1100\u1175\u1109\u116e\u11af\u1107\u1173\u11af\u1105\u1169\u1100\u1173\u110b\u1167\u11ab\u110c\u1162_03_\u110f\u1165\u1107\u1165_230823-2-300x169.jpg 300w, https:\/\/jennifersoft.com\/ko\/wp-content\/uploads\/sites\/2\/2023\/08\/\u1100\u1175\u1109\u116e\u11af\u1107\u1173\u11af\u1105\u1169\u1100\u1173\u110b\u1167\u11ab\u110c\u1162_03_\u110f\u1165\u1107\u1165_230823-2.jpg 1600w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\ubc88 \uc7a5\uc740 ArgoCD\ub97c \uc774\uc6a9\ud558\uc5ec GitOps(\uc774\ud558 \uae43\uc635\uc2a4) \uc2dc\uc2a4\ud15c\uc744 \uad6c\ucd95\ud558\ub294 \ubc29\ubc95\uc744 \uc54c\uc544\ubcf4\uaca0\uc2b5\ub2c8\ub2e4. <\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>1. GitOps\uc640 \ub2e8\uc77c \uc9c4\uc2e4 \uc6d0\ucc9c(SSOT) \uc815\uc758<\/strong><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">\uba3c\uc800, \uae43\uc635\uc2a4\uc758 \uc815\uc758\ub97c \uc54c\uc544\ubcf4\uaca0\uc2b5\ub2c8\ub2e4. \uc55e\uc5d0\uc11c \ucf54\ub4dc\ub85c \uc120\uc5b8\ud558\ub294 \ucfe0\ubc84\ub124\ud2f0\uc2a4\uc758 \ud2b9\uc9d5\uacfc \uc124\uce58 \ubd80\ubd84\uc5d0\uc11c \uc54c\uc544\ubcf4\uc558\ub4ef\uc774 \ucfe0\ubc84\ub124\ud2f0\uc2a4\uc758 \ubaa8\ub4e0 \ub9ac\uc18c\uc2a4\ub294 \ucf54\ub4dc\ub97c \uad6c\ud604\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uae43\uc635\uc2a4\ub294 \uc774\ub7ec\ud55c \ucf54\ub4dc\ub97c \uae43(Git)\uc5d0 \ubcf4\uad00\ud558\uace0 \uae43\uc5d0 \ubcf4\uad00\ud55c \ucf54\ub4dc\uac00 \ud604\uc7ac \uc6b4\uc601 \uc911\uc778 \uc0c1\ud0dc(Ops)\uc640 \ub3d9\uc77c\ud558\uac8c \ub9de\ucd94\ub294 \uac83\uc744 \uc758\ubbf8\ud569\ub2c8\ub2e4.<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ud604\uc5c5\uc5d0\uc11c \ud604\uc7ac \uc6b4\uc601 \uc0c1\ud0dc\ub97c \uae43\uc5d0 Commit, Push\ud558\uc9c0 \uc54a\uace0 \uc784\uc758\ub85c \uc790\uae30 \ub85c\uceec \uc18c\uc2a4\uc5d0\uc11c \ubcc0\uacbd\ud558\ub358\uc9c0, \uba85\ub839\uc5b4\ub97c \ubcc0\uacbd\ud558\ub294 \uacbd\uc6b0\ub97c \uae08\uc9c0\ud558\uae30 \uc704\ud558\uc5ec \ub9ce\uc774 \uc0ac\uc6a9\ud569\ub2c8\ub2e4. \uc784\uc758\ub85c \ubcc0\uacbd\ub41c \uc0c1\ud0dc\ub294 \ubcc0\uacbd \ub0b4\uc5ed\uc744 \ucd94\uc801\ud558\uae30 \uc5b4\ub835\uc2b5\ub2c8\ub2e4. \uc804\uccb4 \uc911 \uc77c\ubd80 \ud074\ub7ec\uc2a4\ud130\ub9cc \uc7a5\uc560\uac00 \ubc1c\uc0dd\ud558\uc5ec \ud655\uc778\ud558\uba74 \uc784\uc758\ub85c \ubcc0\uacbd\ub41c \ubd80\ubd84\ub9cc \ubc1c\uacac\ud558\ub294 \uac83\uc740 \ube44\uad50\uc801 \ud754\ud55c \uacbd\uc6b0 \uc911 \ud558\ub098\uc785\ub2c8\ub2e4. \uadf8\ub9ac\uace0 \uc0c8\ub86d\uac8c \uc2dc\uc2a4\ud15c\uc744 \uad6c\uc131\ud558\ub294 \uacbd\uc6b0 \uc77c\uc77c\uc774 \ucc3e\uc544\uc57c \ud558\ub294 \ub4f1 \ucd94\uac00 \ub9ac\uc18c\uc2a4\uac00 \ub9ce\uc774 \ud544\uc694\ud569\ub2c8\ub2e4.<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uae43\uc635\uc2a4\ub294 \ub2e8\uc77c \uc9c4\uc2e4 \uc6d0\ucc9c(Single Source of Truth, SSOT) \uac1c\ub150\uc744 \uc0ac\uc6a9\ud558\uace0 \uc788\uc5b4 \ud574\ub2f9 \uc815\uc758\ub97c \uc54c\uc544\ubcf4\uaca0\uc2b5\ub2c8\ub2e4. &#8220;\ub2e8\uc77c \uc9c4\uc2e4 \uc6d0\ucc9c&#8221;\uc740 \ub370\uc774\ud130 \uad00\ub9ac \uc6d0\uce59 \uc911 \ud558\ub098\ub85c, \ud2b9\uc815 \ub370\uc774\ud130\uc758 \uc815\ud655\ud558\uace0 \uc2e0\ub8b0\ud560 \uc218 \uc788\ub294 \ud558\ub098\uc758 \ubc84\uc804\ub9cc \uc2dc\uc2a4\ud15c \uc804\uccb4\uc5d0 \uc874\uc7ac\ud55c\ub2e4\ub294 \uac1c\ub150\uc744 \ub098\ud0c0\ub0c5\ub2c8\ub2e4. \uc774 \uc6d0\uce59\uc740 \uc77c\uad00\uc131, \uc815\ud655\uc131, \ud6a8\uc728\uc131\uc744 \ud5a5\uc0c1\uc2dc\ud0a4\ub294 \ub370 \uc911\uc694\ud55c \uc5ed\ud560\uc744 \ud569\ub2c8\ub2e4.<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc77c\uad00\uc131: \ubaa8\ub4e0 \uc2dc\uc2a4\ud15c \uad6c\uc131 \uc694\uc18c\uac00 \ub3d9\uc77c\ud55c \ub370\uc774\ud130 \uc18c\uc2a4\ub97c \ucc38\uc870\ud558\ubbc0\ub85c \ub370\uc774\ud130\uc758 \uc77c\uad00\uc131\uc774 \uc720\uc9c0\ub429\ub2c8\ub2e4.<br>\uc815\ud655\uc131: \uc911\ubcf5\uc774\ub098 \ubd88\uc77c\uce58\uc758 \uac00\ub2a5\uc131\uc774 \uac10\uc18c\ud558\ubbc0\ub85c \ub370\uc774\ud130\uc758 \uc815\ud655\uc131\uc774 \ud5a5\uc0c1\ub429\ub2c8\ub2e4.<br>\ud6a8\uc728\uc131: \ub370\uc774\ud130\ub97c \uc720\uc9c0 \uad00\ub9ac\ud560 \ub2e8\uc77c \uc704\uce58\uac00 \uc788\uc73c\ubbc0\ub85c \uc5c5\ub370\uc774\ud2b8\uc640 \uad00\ub9ac\uac00 \ud6e8\uc52c \ub354 \ud6a8\uc728\uc801\uc785\ub2c8\ub2e4.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh6.googleusercontent.com\/2kV-XVPBSCUoifxi6ER3kXDI_KNwCzZjKdugQKFM_xeJ2MpRBcCd4r2tkrCjThRWAhMgtU-wDqgvtSG_EFMcbfuyFQyEYDzKxejLX7W7BKA4e0kUrBpz2L5HeI1WHQ-yCc1a18OGsftp4eymhxhlCFE\" alt=\"\"\/><figcaption><br><strong>&lt;From: <a href=\"https:\/\/www.cncf.io\/blog\/2021\/09\/28\/gitops-101-whats-it-all-about\/\">Cloud Native Computing Foundation<\/a>&gt;<\/strong><\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\uae43\uc635\uc2a4\uc5d0\uc11c\ub294 Git \uc800\uc7a5\uc18c\uac00 \uc2dc\uc2a4\ud15c\uc758 \uad6c\uc131\uacfc \uc0c1\ud0dc\uc5d0 \ub300\ud55c \ub2e8\uc77c \uc9c4\uc2e4 \uc6d0\ucc9c \uc5ed\ud560\uc744 \ud569\ub2c8\ub2e4. \ucf54\ub4dc\uc640 \uc778\ud504\ub77c\uc758 \uc804\uccb4 \uc0c1\ud0dc\ub97c Git \uc800\uc7a5\uc18c\uc5d0 \ubc84\uc804\ud654\ud558\uace0 \uc800\uc7a5\ud568\uc73c\ub85c\uc368, \uc120\uc5b8\uc801\uc778 \uc811\uadfc \ubc29\uc2dd\uc744 \ud1b5\ud574 \uc2dc\uc2a4\ud15c\uc744 \uad00\ub9ac\ud558\uace0 \uc790\ub3d9\ud654\ud569\ub2c8\ub2e4.&nbsp; \ud604\uc5c5\uc5d0\uc11c \ud604\uc7ac\uc758 \uc6b4\uc601 \uc0c1\ud0dc\ub97c \uac1c\ubcc4 \uc0ac\uc6a9\uc790\uac00 \uc784\uc758\ub85c \uba85\ub839\uc5b4\ub85c \ubcc0\uacbd\ud558\uac70\ub098 \ucee4\ubc0b\ud558\uc9c0 \uc54a\uc740 \ub85c\uceec \uc18c\uc2a4\ub85c \ubcc0\uacbd\ud558\uc9c0 \uc54a\uace0 \uc911\uc559\ud654\ub41c \uae43 \uc18c\uc2a4\uc5d0\uc11c\ub9cc \ubcc0\uacbd\ud558\ub294 \uac83\uc744 \uc758\ubbf8\ud569\ub2c8\ub2e4. \uae43\uc635\uc2a4\ub85c \uc2dc\uc2a4\ud15c\uc758 \uc77c\uad00\uc131\uc774 \uc720\uc9c0\ub418\uc5b4 \ud611\uc5c5 \uc0dd\uc0b0\uc131\uc774&nbsp; \ud5a5\uc0c1\ub418\ub294 \uac83\uc774 \ud544\uc790\uac00 \uc0dd\uac01\ud558\ub294 \uac00\uc7a5 \ud070 \uc774\uc810\uc785\ub2c8\ub2e4.&nbsp;<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ubaa8\ub4e0 \uc2dc\uc2a4\ud15c\uacfc \uc0ac\uc6a9\uc790\uac00 \ub3d9\uc77c\ud55c \ub370\uc774\ud130 \uc18c\uc2a4\ub97c \ucc38\uc870\ud558\ubbc0\ub85c \uc815\ubcf4\uc758 \ubd88\uc77c\uce58\uac00 \ubc1c\uc0dd\ud560 \ud655\ub960\uc774 \uc904\uc5b4\ub4e4\uace0 \uc911\ubcf5\ub41c \ub370\uc774\ud130\ub97c \uad00\ub9ac\ud558\uace0 \ub3d9\uae30\ud654\ud558\ub294 \ub370 \ud544\uc694\ud55c \ub178\ub825\uacfc \ube44\uc6a9\uc744 \uc904\uc77c \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ub85c \uc778\ud574 \uc804\uccb4 \uc2dc\uc2a4\ud15c\uc758 \uc6b4\uc601 \ud6a8\uc728\uc131\uc774 \ud5a5\uc0c1\ub429\ub2c8\ub2e4. \uac80\uc0c9 \ub4f1\uc744 \ud1b5\ud558\uc5ec \uc774\uc804 \uc0c1\ud0dc\ub97c \uc870\ud68c\ud558\ub294 \uae30\ub2a5\ub3c4 \uc790\uc8fc \uc0ac\uc6a9\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uadf8\ub7ec\ub098 \uc774 \uc6d0\uce59\uc744 \uc2e4\ud604\ud558\ub294 \uac83\uc740 \uc885\uc885 \uc5b4\ub835\uc2b5\ub2c8\ub2e4. \ubc14\uc05c \uc5c5\ubb34\uc5d0 \uc6d0\uce59\uc744 \ub530\ub974\uc9c0 \uc54a\uace0 \uc2f6\uc740 \uc218\ub9ce\uc740 \uc720\ud639\uc774 \uc788\uc2b5\ub2c8\ub2e4. \uae43\uc635\uc2a4 \uad00\ub828 \ub3c4\uad6c\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc815\ucc45\uc744 \uac15\uc81c\ud558\ub294 \uac83\uc774 \ud544\uc694\ud558\uba70 \uc62c\ubc14\ub978 \ub370\uc774\ud130 \uc544\ud0a4\ud14d\ucc98, \ud504\ub85c\uc138\uc2a4, \uad00\ub9ac \ub3c4\uad6c\uac00 \ud544\uc694\ud569\ub2c8\ub2e4. \uae43\uc635\uc2a4\ub97c \uad6c\ud604\ud558\uae30 \uc704\ud558\uc5ec \uc5ec\ub7ec \ub3c4\uad6c\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc788\ub294\ub370 CD(\uc5f0\uc18d \ubc30\ud3ec, Continuous Deployment)\uc5d0 \uc0ac\uc6a9\ud558\ub294 \ub3c4\uad6c\ub294 ArgoCD\ub97c \uac00\uc7a5 \ub9ce\uc774 \uc0ac\uc6a9\ud558\uace0 \uc788\uc2b5\ub2c8\ub2e4. \uc5ec\ub7ec CD \ub3c4\uad6c\ub4e4 \uc911\uc5d0\uc11c ArgoCD\ub294 1) \uc0ac\uc6a9\ud558\uae30 \ud3b8\ub9ac\ud55c UI \uc81c\uacf5 2) \ub2e4\ub978 \ub3c4\uad6c\ub4e4\uacfc \ud1b5\ud569\uc774 \uc27d\uace0 3) \uc0ac\uc6a9\uc790\uac00 \ub9ce\uc544 \uc0ac\ub840\uac00 \ud48d\ubd80\ud569\ub2c8\ub2e4. <\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh5.googleusercontent.com\/p7ZhUxFRTAlxZuYl7k0r9jkupSNJFR5MkkhpJIwHvDPRx4ZxAvO1LjgARl9ZN2gwemxj7yWcCXD4ydfdMA2lqoWy0b6FSCbX_KlkpBvfl-u6aVJ4Cxh0DiiZq61PgzENQ-PoaJw2Vjiq6fYxKmPbLik\" alt=\"\"\/><figcaption><strong>&lt;From: <a href=\"https:\/\/argoproj.github.io\/static\/argo-cd-ui-87dce328a7ab3be2d13f7926831068eb.gif\">ArgoCD<\/a>&gt; <\/strong><br><\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">ArgoCD\ub294 \uc9c0\uc815\ub41c Git \uc800\uc7a5\uc18c\uc640 \ucfe0\ubc84\ub124\ud2f0\uc2a4 \ud074\ub7ec\uc2a4\ud130\ub97c \uc9c0\uc18d\uc801\uc73c\ub85c \ubaa8\ub2c8\ud130\ub9c1\ud569\ub2c8\ub2e4. \uc800\uc7a5\uc18c\uc758 \ubcc0\uacbd\uc0ac\ud56d\uc774 \uac10\uc9c0\ub418\uba74, ArgoCD\ub294 \uc790\ub3d9\uc73c\ub85c \ud074\ub7ec\uc2a4\ud130\uc758 \uc0c1\ud0dc\ub97c \uc800\uc7a5\uc18c\uc758 \uc0c1\ud0dc\uc640 \ub3d9\uae30\ud654\ud569\ub2c8\ub2e4. \ubb3c\ub860 \uc0c1\ud669\uc5d0 \ub530\ub77c \uc218\ub3d9 \ub3d9\uae30\ud654 \uc635\uc158\ub3c4 \uc81c\uacf5\ub429\ub2c8\ub2e4. \uadf8\ub9ac\uace0 \ubb38\uc81c\uac00 \ubc1c\uc0dd\ud558\uba74 \uc774\uc804 \uc0c1\ud0dc\ub85c \uc27d\uac8c \ub864\ubc31\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. Git\uc758 \ubc84\uc804 \uad00\ub9ac \ub355\ubd84\uc5d0 \ubaa8\ub4e0 \ubcc0\uacbd \ub0b4\uc5ed\uc774 \ucd94\uc801\ub418\ubbc0\ub85c \uc548\uc815\uc801\uc778 \uc0c1\ud0dc\ub85c \ubcf5\uc6d0\ud558\uae30 \uc27d\uc2b5\ub2c8\ub2e4.<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uadf8\ub9ac\uace0 ArgoCD \ub300\uc2dc\ubcf4\ub4dc\ub97c \ud1b5\ud574 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc758 \uc2e4\uc2dc\uac04 \uc0c1\ud0dc, \ub3d9\uae30\ud654 \uc0c1\ud0dc, Health\ub97c \uc2dc\uac01\uc801\uc73c\ub85c \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ud5ec\ub984\uc73c\ub85c \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \ubc30\ud3ec\ud558\uba74 \uc804\uccb4 \ub9ac\uc18c\uc2a4\ub97c \ud30c\uc545\ud558\uae30\uac00 \uc5b4\ub824\uc6b4\ub370 ArgoCD \ub300\uc2dc\ubcf4\ub4dc\ub97c \ud1b5\ud558\uc5ec \ud3b8\ub9ac\ud558\uac8c \ud30c\uc545\ud560 \uc218 \uc788\uc5b4 \ub9ce\uc740 \uc0ac\uc6a9\uc790\ub4e4\uc774 \uc120\ud638\ud558\ub294 \uae30\ub2a5\uc785\ub2c8\ub2e4. \uc0ac\uc6a9\uc790 \ubcc4\ub85c Project \ubcc4\ub85c \uc811\uadfc \uc81c\uc5b4 \uad8c\ud55c\uc744 \uc124\uc815\ud558\uc5ec \ud300\uc6d0\ub4e4\uc774 \uc801\uc808\ud55c \uc561\uc138\uc2a4 \uc218\uc900\uc744 \uac16\uac8c \ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp;Argo CD\ub294 Git \uc800\uc7a5\uc18c\ub97c \ub2e8\uc77c \uc9c4\uc2e4 \uc6d0\ucc9c\uc73c\ub85c \uc0ac\uc6a9\ud558\uc5ec \ucfe0\ubc84\ub124\ud2f0\uc2a4 \ud074\ub7ec\uc2a4\ud130\uc758 \uc0c1\ud0dc\ub97c \uc9c0\uc18d\uc801\uc73c\ub85c \ub3d9\uae30\ud654\ud558\uace0 \ubaa8\ub2c8\ud130\ub9c1\ud569\ub2c8\ub2e4. \uc774\ub97c \ud1b5\ud574 \uac1c\ubc1c\uc790\uc640 \uc6b4\uc601\ud300\uc774 \ud611\uc5c5\uc744 \uac15\ud654\ud558\uace0, \uc548\uc815\uc801\uc774\uace0 \uc2e0\uc18d\ud55c \ubc30\ud3ec\ub97c \uc2e4\ud604\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uadf8\ub7fc \uc2e4\uc2b5\uc744 \ud1b5\ud558\uc5ec \uc790\uc138\ud558\uac8c \uc54c\uc544\ubcf4\uaca0\uc2b5\ub2c8\ub2e4.<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc2e4\uc2b5 \ub0b4\uc5ed<br>1. ArgoCD \uc124\uce58<br>2. ArgoCD\ub97c \uc774\uc6a9\ud558\uc5ec NGINX \ud5ec\ub984 \ucc28\ud2b8 \ubc30\ud3ec<br>3. \uae43\uc635\uc2a4 \uc2e4\uc2b5 &#8211; \ub85c\uceec \ud658\uacbd \uc784\uc758 \uc218\uc815 \uac80\uc99d<br><\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>2. Argo-CD \uc124\uce58<\/strong><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">\ucfe0\ubc84\ub124\ud2f0\uc2a4 \ud658\uacbd\uc5d0\uc11c \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc740 \uc8fc\ub85c \ud5ec\ub984\uc744 \uc774\uc6a9\ud558\uc5ec \uc124\uce58\ud569\ub2c8\ub2e4. \ud5ec\ub984(Helm)\uc740 \ucfe0\ubc84\ub124\ud2f0\uc2a4 \ud328\ud0a4\uc9c0 \uad00\ub9ac\uc790\ub85c, \ud754\ud788 \uc54c\uace0 \uc788\ub294 \uc6b4\uc601 \uccb4\uc81c\uc758 apt, yum\uacfc \uc720\uc0ac\ud569\ub2c8\ub2e4. \ud5ec\ub984\uc744 \uc0ac\uc6a9\ud558\uba74 \uc5ec\ub7ec \ucfe0\ubc84\ub124\ud2f0\uc2a4 \ub9ac\uc18c\uc2a4\ub97c \ubb36\uc5b4 \ud558\ub098\uc758 \ud328\ud0a4\uc9c0\ub85c \uad00\ub9ac\ud560 \uc218 \uc788\uc73c\uba70, \uc774\ub97c \ud1b5\ud574 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc758 \uc124\uce58, \uc5c5\uadf8\ub808\uc774\ub4dc, \uc81c\uac70\uac00 \uac04\uc18c\ud654\ub429\ub2c8\ub2e4. \ud5ec\ub984\uc5d0 \uad00\ud55c \uc790\uc138\ud55c \ub0b4\uc6a9\uc740 11\uc7a5\uc5d0\uc11c \ub2e4\ub8f9\ub2c8\ub2e4.<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uadf8\ub7fc, \ud5ec\ub984\uc73c\ub85c ArgoCD\ub97c \uc124\uce58\ud569\ub2c8\ub2e4. \uc708\ub3c4\uc6b0 WSL\uc758 Homebrew \uc124\uce58 \uc0ac\uc6a9\uc790\uc640 MAC \uc0ac\uc6a9\uc790\ub294 brew\ub97c \uc0ac\uc6a9\ud558\uc5ec \ub85c\uceec PC\uc5d0 \ud5ec\ub984\uc744 \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=\"\">brew install helm<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ub2e4\uc74c\uc73c\ub85c ArgoCD <a href=\"https:\/\/github.com\/argoproj\/argo-helm\/tree\/main\/charts\/argo-cd\">\uacf5\uc2dd \ud648\ud398\uc774\uc9c0<\/a>\ub97c \uc774\uc6a9\ud558\uc5ec ArgoCD \ud5ec\ub984 \ucc28\ud2b8\ub97c \ub0b4\ub824\ubc1b\uc2b5\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=\"\">helm repo add argo https:\/\/argoproj.github.io\/argo-helm\nhelm pull argo\/argo-cd --version v5.14.1\ntar xvfz argo-cd-5.14.1.tgz\nmv argo-cd argo-cd-v5.14.1\nrm -rf argo-cd-5.14.1.tgz\ncd argo-cd-v5.14.1\nmkdir ci &amp;&amp; cp values.yaml ci\/jerry-test-values.yaml<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc6d0\uaca9\uc758 ArgoCD\uc758 \ud5ec\ub984 \ub9ac\ud3ec\uc9c0\ud1a0\ub9ac\ub97c \ub4f1\ub85d(helm repo add)\ud558\uace0 \ub85c\uceec\uc5d0 \ud5ec\ub984 \ucc28\ud2b8\ub97c \ub2e4\uc6b4(helm pull)\ubc1b\uc2b5\ub2c8\ub2e4. \uc774 \ud6c4 \uae30\ubcf8 \ud5ec\ub984 Value \ud30c\uc77c\uc744 \uac01 \ud658\uacbd\uc5d0 \ub9de\uac8c \uc218\uc815\ud558\uae30 \uc704\ud558\uc5ec \uae30\uc874 Values.yaml \ud30c\uc77c\uc744 \ubcf5\uc0ac\ud558\uc5ec \uc784\uc758\uc758 \uc774\ub984 (jerry-test-values.yaml)\uc73c\ub85c \ubcc0\uacbd\ud569\ub2c8\ub2e4. \ud5ec\ub984 \uba85\ub839\uc5b4\uc5d0 \ub300\ud55c \uc790\uc138\ud55c \uc124\uba85\uc740 11\uc7a5\uc5d0\uc11c \ub2e4\ub8f9\ub2c8\ub2e4.<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uae30\ubcf8 \uacf5\uc2dd \ud5ec\ub984 Value\uc744 \uc544\ub798\uc640 \uac19\uc774 \uc218\uc815\ud569\ub2c8\ub2e4. (<a href=\"https:\/\/github.com\/junghoon2\/k8s-class\/blob\/main\/argo-cd\/argo-cd-5.14.1\/ci\/singapore-test-values.yaml\">\ud544\uc790 \uae43\ud5c8\ube0c \ucc38\uc870<\/a>)<\/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=\"\">configs:\n  credentialTemplates:\n    ssh-creds:\n      url: git@github.com:junghoon2\n      sshPrivateKey: |\n        -----BEGIN OPENSSH PRIVATE KEY-----\n        xxxxxxxxxxx\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\">. configs.credentialTemplates.ssh-creds<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">ArgoCD\uc5d0\uc11c \ub4f1\ub85d\ud560 \uae43\ud5c8\ube0c \ub808\ud3ec\uc9c0\ud1a0\ub9ac \uc815\ubcf4\ub97c \ub4f1\ub85d\ud569\ub2c8\ub2e4. \uac01\uc790 \uc0ac\uc6a9\ud558\ub294 \uae43\ud5c8\ube0c\uc758 \ub4f1\ub85d\ud55c ssh \ud0a4\uc815\ubcf4(~\/.ssh\/id_rsa)\ub97c \uc785\ub825\ud569\ub2c8\ub2e4. \uac1c\uc778 \ud0a4 \uc815\ubcf4\ub77c \ubcf4\uc548\uc0c1 \ud574\ub2f9 \uc815\ubcf4\ub97c \ub9c8\uc2a4\ud0b9 \ucc98\ub9ac(xxxxx) \ud558\uc600\uc2b5\ub2c8\ub2e4.<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ub9ac\ud3ec\uc9c0\ud1a0\ub9ac \uc815\ubcf4\ub294 ArgoCD \uc124\uce58\ub97c \uc644\ub8cc\ud558\uace0 GUI\ub85c\ub3c4 \uac00\ub2a5\ud569\ub2c8\ub2e4. \ud558\uc9c0\ub9cc \uac00\ub2a5\ud558\uba74 GitOps \ucca0\ud559\uc5d0 \ub9de\uac8c \uae43\ub808\ud3ec \uc815\ubcf4\ub3c4 \uc18c\uc2a4 \ucf54\ub4dc\uc5d0 \uc785\ub825\ud558\ub294 \uac83\uc744 \uad8c\uace0\ud569\ub2c8\ub2e4. \ucc98\uc74c\uc5d0\ub294 \ubc88\uac70\ub86d\uc9c0\ub9cc GUI\ub97c \uc774\uc6a9\ud55c \uc791\uc5c5\uc740 \ud558\uc9c0 \uc54a\ub294 \uac83\uc774 \ud5a5\ud6c4 \uc7ac\uc0ac\uc6a9\uc131 \uce21\uba74\uc5d0\uc11c \ub0ab\uc2b5\ub2c8\ub2e4.<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">.repositories.k8s-class.name\/url<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uac01\uc790 \uae43 \ub808\ud3ec\uc758 \uc774\ub984\uacfc URL\uc744 \ub4f1\ub85d\ud569\ub2c8\ub2e4.<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc9c0\uae08\uc740 \uc544\uc9c1 \uc778\uadf8\ub808\uc2a4 \uc124\uc815\uc744 \ud558\uae30 \uc804\uc774\ub77c \uc778\uadf8\ub808\uc2a4 \uad00\ub828 \ud5ec\ub984 Values \uc124\uc815\uc774 \ube60\uc838\uc788\uc2b5\ub2c8\ub2e4. 5\uc7a5\uc758 \uc778\uadf8\ub808\uc2a4 \uc124\uc815\uc774 \uc644\ub8cc\ub418\uba74 \uc778\uadf8\ub808\uc2a4 \uc124\uc815\uc744 \ucd94\uac00\ud558\uc5ec \ud3b8\ub9ac\ud558\uac8c \uc778\uadf8\ub808\uc2a4 \uc8fc\uc18c\ub85c \uc811\uc18d\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ud574\ub2f9 \ud5ec\ub984 Value \ud30c\uc77c(jerry-test-values.yaml)\uc744 \uc774\uc6a9\ud558\uc5ec ArgoCD\ub97c \uc124\uce58\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=\"\">$ helm install argocd -n argocd --create-namespace -f ci\/jerry-test-values.yaml .\nNAME: argocd\nLAST DEPLOYED: Sun Jun 25 02:18:51 2023\nNAMESPACE: argocd\nSTATUS: deployed\nREVISION: 1\nTEST SUITE: None\nNOTES:\nIn order to access the server UI you have the following options:\n\n1. kubectl port-forward service\/argocd-server -n argocd 8080:443\n\n    and then open the browser on http:\/\/localhost:8080 and accept the certificate\n\n2. enable ingress in the values file `server.ingress.enabled` and either\n      - Add the annotation for ssl passthrough: https:\/\/argo-cd.readthedocs.io\/en\/stable\/operator-manual\/ingress\/#option-1-ssl-passthrough\n      - Set the `configs.params.\"server.insecure\"` in the values file and terminate SSL at your ingress: https:\/\/argo-cd.readthedocs.io\/en\/stable\/operator-manual\/ingress\/#option-2-multiple-ingress-objects-and-hosts\n\n\nAfter reaching the UI the first time you can login with username: admin and the random password generated during the installation. You can find the password by running:\n\nkubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath=\"{.data.password}\" | base64 -d\n\n(You should delete the initial secret afterwards as suggested by the Getting Started Guide: https:\/\/argo-cd.readthedocs.io\/en\/stable\/getting_started\/#4-login-using-the-cli)<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc124\uce58\uac00 \uc644\ub8cc\ub418\uba74 ArgoCD \uad00\ub828 \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=\"\"># argocd \ub124\uc784\uc2a4\ud398\uc774\uc2a4\ub85c \ubcc0\uacbd\ud569\ub2c8\ub2e4.\n$ k ns argocd\n\n$ (jerry-test:argocd) k get pod\nNAME                                               READY   STATUS    RESTARTS   AGE\nargocd-application-controller-0                    1\/1     Running   0          69s\nargocd-applicationset-controller-fc4dbb87c-bpf6f   1\/1     Running   0          70s\nargocd-dex-server-fd7d54c-crcr9                    1\/1     Running   0          69s\nargocd-notifications-controller-7f66dc5c75-xvsz7   1\/1     Running   0          70s\nargocd-redis-79c77796b7-x6kl6                      1\/1     Running   0          70s\nargocd-repo-server-6c9c4978b8-4btch                1\/1     Running   0          70s\nargocd-server-b694d4bc6-br6lt                      1\/1     Running   0          70s<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>3. Port-forward\ub97c \uc774\uc6a9\ud55c Argo-CD \ud30c\ub4dc \uc811\uc18d<\/strong><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">\uadf8\ub7fc, \uc124\uce58\ud55c ArgoCD \ud30c\ub4dc\ub97c Port-forward\ub97c \uc774\uc6a9\ud558\uc5ec \uc811\uc18d\ud558\uaca0\uc2b5\ub2c8\ub2e4. \ud074\ub7ec\uc2a4\ud130 \uc678\ubd80\uc5d0\uc11c \ud074\ub7ec\uc2a4\ud130 \ub0b4\ubd80\uc5d0\uc11c \uc2e4\ud589\ud558\uace0 \uc788\ub294 \ud30c\ub4dc\ub85c \uc811\uc18d\ud558\uae30 \uc704\ud558\uc5ec \uc8fc\ub85c \ucfe0\ubc84\ub124\ud2f0\uc2a4\uc758 \uc778\uadf8\ub808\uc2a4 \ub9ac\uc18c\uc2a4\ub97c \uc0ac\uc6a9\ud569\ub2c8\ub2e4. \ud574\ub2f9 \ub0b4\uc6a9\uc740 5\uc7a5\uc5d0\uc11c \uc790\uc138\ud558\uac8c \uc124\uba85\ud558\uaca0\uc2b5\ub2c8\ub2e4. \uc9c0\uae08\uc740 \ucd94\uac00 \uc778\uadf8\ub808\uc2a4 \uc124\uc815 \uc791\uc5c5\uc5c6\uc774 \uad00\ub9ac\uc790\uac00 \ud3b8\ud558\uac8c \uc0ac\uc6a9\ud560 \uc218 \uc788\ub294 Port-forward\ub97c \uc774\uc6a9\ud558\uc5ec \ud30c\ub4dc\uc5d0 \uc811\uc18d\ud569\ub2c8\ub2e4. \ud604\uc5c5\uc5d0\uc11c\ub3c4 \ubcf4\uc548 \uc0c1\uc758 \uc774\uc720\ub85c \uc778\uadf8\ub808\uc2a4 \uc124\uc815\uc744 \ud558\uc9c0 \uc54a\uc740 \ud30c\ub4dc\ub294 Port-forward\ub97c \uc774\uc6a9\ud558\uc5ec \uc811\uc18d\ud569\ub2c8\ub2e4.<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Port-forward\ub294 \u2018kubectl port-forward\u2019 \uba85\ub839\uc744 \uc0ac\uc6a9\ud569\ub2c8\ub2e4. port-forward \uba85\ub839\uc5b4\uac00 \uae38\uc9c0\ub9cc \uba85\ub839\uc5b4 \uc790\ub3d9 \uc644\uc131\uc774 \uac00\ub2a5\ud558\uc5ec \uc5b4\ub835\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. port-forward \uba85\ub839\uc740 \ud074\ub7ec\uc2a4\ud130 \ub0b4\uc758 \ud2b9\uc815 Pod\uc5d0 \ub300\ud55c \ud2b8\ub798\ud53d\uc744 \ub85c\uceec \uc2dc\uc2a4\ud15c\uc758 \ud2b9\uc815 \ud3ec\ud2b8\ub85c \uc804\ub2ec(port-forward)\ud558\ub294 \uae30\ub2a5\uc744 \uc81c\uacf5\ud569\ub2c8\ub2e4. \uc774\ub97c \ud1b5\ud574 \ub85c\uceec \uac1c\ubc1c \ud658\uacbd\uc5d0\uc11c \uc9c1\uc811 \ud074\ub7ec\uc2a4\ud130\uc758 \ub0b4\ubd80 \ub9ac\uc18c\uc2a4\uc5d0 \uc811\uadfc\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ubbf8 kubectl \uba85\ub839\uc5b4\ub97c \uc2e4\ud589\ud558\uae30 \uc704\ud558\uc5ec API \uc11c\ubc84 \ud3ec\ud2b8\uac00 \uc5f0\uacb0\ub418\uc5b4 \uc788\uc73c\ubbc0\ub85c \uac04\ub2e8\ud55c \uc124\uc815\ub9cc\uc73c\ub85c \ud074\ub7ec\uc2a4\ud130 \ub0b4\ubd80 \ud3ec\ud2b8\uc5d0 \uc5f0\uacb0\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub85c\uceec \uc2dc\uc2a4\ud15c\uc758 \uc9c0\uc815\ub41c \ud3ec\ud2b8\ub85c \ub4e4\uc5b4\uc624\ub294 \ud2b8\ub798\ud53d\uc740 API \uc11c\ubc84\ub97c \ud1b5\ud574 \uc120\ud0dd\ud55c Pod\uc758 \ud2b9\uc815 \ud3ec\ud2b8\ub85c \uc804\ub2ec\ub429\ub2c8\ub2e4.<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ucfe0\ubc84\ub124\ud2f0\uc2a4 API \uc11c\ubc84\ub294 \uc774 \uacfc\uc815\uc5d0\uc11c \uc911\uac1c\uc790 \uc5ed\ud560\uc744 \ud558\uba70, \uc2e4\uc81c \ud2b8\ub798\ud53d\uc758 \uc804\ub2ec\uc740 kubelet\uc774 \ub2f4\ub2f9\ud569\ub2c8\ub2e4. \uadf8\ub7fc \uc544\ub798 \uba85\ub839\uc5b4\ub97c \uc0ac\uc6a9\ud558\uc5ec ArgoCD \ud30c\ub4dc\ub85c \uc811\uc18d\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=\"\">[jerry:~ (jerry:argocd)]$ k get service argocd-server\nNAME            TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE\nargocd-server   ClusterIP   10.233.37.108   &lt;none>        80\/TCP,443\/TCP   43d\n\n[jerry:~ (jerry:argocd)]$ k port-forward svc\/argocd-server 8080:80\nForwarding from 127.0.0.1:8080 -> 8080\nForwarding from [::1]:8080 -> 8080<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ucfe0\ubc84\ub124\ud2f0\uc2a4\ub294 \uc11c\ube44\uc2a4(service) \uac1d\uccb4\ub85c \ud30c\ub4dc \ud2b8\ub798\ud53d\uc744 \uc81c\uc5b4\ud569\ub2c8\ub2e4. port-forward \uc5ed\uc2dc \ud30c\ub4dc \ub300\uc2e0 \uc11c\ube44\uc2a4\ub97c \uc774\uc6a9\ud558\uba74 \ud3b8\ub9ac\ud569\ub2c8\ub2e4. \uc11c\ube44\uc2a4\uc5d0 \ub300\ud55c \uc790\uc138\ud55c \uc124\uba85\uc740 \uc774\uc5b4\uc9c0\ub294 \uc7a5\uc5d0\uc11c \ub2e4\ub8f9\ub2c8\ub2e4.<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u20188080:80\u2019 \uba85\ub839\uc5b4\uc758 \uc55e 8080 \ud3ec\ud2b8\ub294 \ub85c\uceec\ud638\uc2a4\ud2b8\uc758 \ud3ec\ud2b8\ub97c \uc758\ubbf8\ud558\uace0 \ub4a4 80 \ud3ec\ud2b8\ub294 \ud074\ub7ec\uc2a4\ud130 \uc11c\ube44\uc2a4\uac00 \uc0ac\uc6a9\ud558\ub294 80 \ud3ec\ud2b8\ub97c \uc758\ubbf8\ud569\ub2c8\ub2e4. \uc989 \ub0b4 \ub85c\uceec\ud638\uc2a4\ud2b8\uc758 8080 \ud3ec\ud2b8\ub97c \ud074\ub7ec\uc2a4\ud130 \uc11c\ube44\uc2a4\uc758 80 \ud3ec\ud2b8\ub85c \uc5f0\uacb0\ud558\ub77c\ub294 \uc758\ubbf8\uc785\ub2c8\ub2e4. \uc774\uc81c \uc544\ub798\uc640 \uac19\uc774 \ube0c\ub77c\uc6b0\uc800\uc5d0 \u2018localhost:8080\u2019\ub97c \uc785\ub825\ud558\uba74 ArgoCD \ud654\uba74\uc744 \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\/D461S_XPG5ps-HVrVCDPde0S9eSfm0SbGo4I_v_xsyiznPh3u5iSpNdSDpRF2lYNPkz-f5VYKiLWKpttuNj1DrHbtC4Z929-xWZ8mA7Dl0azHH9LPUpFjQzJvT_KYoyDRmiV5rdFMPIqQTfJV_5PsYE\" alt=\"\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\ucd08\uae30 \u2018admin\u2019 \uc0ac\uc6a9\uc790\uc758 \ud328\uc2a4\uc6cc\ub4dc\ub294 Secret\ub85c \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. Secret\uc740 \ud328\uc2a4\uc6cc\ub4dc \ub4f1\uacfc \ubbfc\uac10\ud55c \uc815\ubcf4\ub97c \uc800\uc7a5\ud558\ub294 \ucfe0\ubc84\ub124\ud2f0\uc2a4 \uac1d\uccb4\uc785\ub2c8\ub2e4. \uc790\uc138\ud55c \uc124\uba85\uc740 \uc55e\uc73c\ub85c \uc774\uc5b4\uc9c0\ub294 \uae00\uc5d0\uc11c \ub2e4\ub8e8\uba70 \uc9c0\uae08\uc740 \uc544\ub798\uc640 \uac19\uc774 \ub514\ucf54\ub529\ud558\uc5ec \ud3c9\ubb38\uc73c\ub85c \ud328\uc2a4\uc6cc\ub4dc\ub97c \ud655\uc778\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=\"\">[(jerry-test:argocd) ~]$ kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath=\"{.data.password}\" | base64 -d\nRNTP10IXD2P3uSWg<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ub85c\uadf8\uc778 \ucc3d\uc5d0 Username admin\uc744 \uc785\ub825\ud558\uace0 Password\uc5d0 \uc704 \uba85\ub839\uc5b4 \ucd9c\ub825 \uacb0\uacfc\ub97c \uc785\ub825\ud569\ub2c8\ub2e4. \ub85c\uadf8\uc778 \ud6c4 \ud654\uba74 \uc67c\ud3b8 \uba54\ub274\uc758 \u2018Settings\u2019-\u2019Repositories\u2019\ub97c \uc120\ud0dd\ud558\uba74 \ud5ec\ub984 Values \ud30c\uc77c\uc5d0 \uc124\uc815\ud55c \uae43\ud5c8\ube0c \ub808\ud3ec\uc9c0\ud1a0\ub9ac\uac00 \uc815\uc0c1\uc73c\ub85c \ub4f1\ub85d\ub41c \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:\/\/lh3.googleusercontent.com\/nTCZuPq4xuUPQFtI6Y4SRqjWrLzn5bCShS7_OZWK_RHve-_UtQwVKcbkRiQL_RDifmxwXXOro2K02MpkT7J_0rtL8nIqENno66gmWlzxgbsALQLIsgbslfQtCxfp1ub43PkbcLuQGZnWl2UjpgSbryI\" alt=\"\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">ArgoCD\ub97c \uc815\uc0c1\uc73c\ub85c \uc124\uce58\ud558\uc600\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>4. Argo-CD\ub97c \uc774\uc6a9\ud558\uc5ec NGINX \ud5ec\ub984 \ubc30\ud3ec<\/strong><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\uc81c \uc124\uce58\ud55c&nbsp; ArgoCD\ub97c \uc774\uc6a9\ud558\uc5ec \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \ubc30\ud3ec\ud569\ub2c8\ub2e4. \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc740 \uc6f9\uc11c\ubc84 \uc6a9\ub3c4\ub85c \ub9ce\uc774 \uc0ac\uc6a9\ud558\ub294 Nginx\uc785\ub2c8\ub2e4.&nbsp;<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nginx \uc5ed\uc2dc \ud5ec\ub984 \ucc28\ud2b8\ub97c \uc774\uc6a9\ud558\uc5ec \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=\"\">[jerry:k8s-class (jerry:argocd)]$ mkdir nginx-webserver &amp;&amp; cd nginx-webserver\n[jerry:nginx-webserver (jerry:argocd)]$ helm pull oci:\/\/registry-1.docker.io\/bitnamicharts\/nginx --version 15.1.0\n[jerry:nginx-webserver (jerry:argocd)]$ tar xvfz nginx-15.1.0.tgz\n[jerry:nginx-webserver (jerry:argocd)]$ rm -rf nginx-15.1.0.tgz\n[jerry:nginx-webserver (jerry:argocd)]$ mv nginx nginx-web15.1.0\n[jerry:nginx-webserver (jerry:argocd)]$ mkdir ci &amp;&amp; cp values.yaml ci\/my-values.yaml<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\uc804\uacfc \ub3d9\uc77c\ud558\uac8c \ud5ec\ub984\uc744 \uc124\uce58\ud558\ub294 \uacfc\uc815\uc785\ub2c8\ub2e4. Nginx \uc6f9\uc11c\ubc84 \ubc84\uc804\uc740 \ucd5c\uc2e0 \ubc84\uc804\uc744 \uc0ac\uc6a9\ud574\ub3c4 \uad1c\ucc2e\uc9c0\ub9cc \ud544\uc790\uc640 \ub3d9\uc77c\ud55c \uad6c\uc131\uc744 \uc6d0\ud558\uba74 \ubc84\uc804 \uc815\ubcf4(15.1.0)\uc744 \uc9c0\uc815\ud569\ub2c8\ub2e4.<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ud5ec\ub984 Values.yaml \ud30c\uc77c\uc744 \uac04\ub2e8\ud788 \uc544\ub798\uc640 \uac19\uc774 \uc218\uc815\ud569\ub2c8\ub2e4. \ud574\ub2f9 \ud30c\uc77c\uc740 <a href=\"https:\/\/github.com\/junghoon2\/k8s-class\/blob\/main\/nginx-webserver\/nginx-15.1.0\/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=\"\">replicaCount: 2\nservice:\n  type: ClusterIP\nmetrics:\n  enabled: true<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uae30\ubcf8 \uc124\uc815\uc5d0\uc11c Nginx \uc6f9\uc11c\ubc84\uc758 \ud30c\ub4dc \uc218\ub7c9\uc744 2\uac1c\ub85c \ubcc0\uacbd\ud558\ub294 \ub4f1 \uac04\ub2e8\ud55c \ubcc0\uacbd\uc785\ub2c8\ub2e4. \ud574\ub2f9 \ud5ec\ub984 Values \ud30c\uc77c\uc744 \uae30\uc900\uc73c\ub85c Nginx \uc6f9\uc11c\ubc84\ub97c \ubc30\ud3ec\ud569\ub2c8\ub2e4. ArgoCD\ub294 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \ucfe0\ubc84\ub124\ud2f0\uc2a4 \ud658\uacbd\uc5d0 \ubc30\ud3ec\ud558\uae30 \uc704\ud558\uc5ec GUI \uc6f9\uc5d0\uc11c \uc791\uc5c5\uc774 \uac00\ub2a5\ud569\ub2c8\ub2e4. \ud558\uc9c0\ub9cc \ub2e4\uc2dc \uc0ac\uc6a9\ud558\uae30 \uc6a9\uc774\ud558\uace0 GitOps\uc5d0 \uc801\ud569\ud558\uac8c \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \ubc30\ud3ec \uc124\uc815\ub3c4 \ucf54\ub4dc\ub85c \ud558\ub294 \uac83\uc744 \ucd94\ucc9c\ud569\ub2c8\ub2e4.<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">ArgoCD\ub294 \ucf54\ub4dc\ub85c \ubc30\ud3ec\ud560 \uc218 \uc788\ub3c4\ub85d \u2018Application\u2019\uc774\ub77c\ub294 CRD(Custom Resource Definition)\ub97c \uc0ac\uc6a9\ud569\ub2c8\ub2e4. CRD\ub294 \ucfe0\ubc84\ub124\ud2f0\uc2a4\uc5d0\uc11c \uc0ac\uc6a9\uc790 \uc815\uc758 \ub9ac\uc18c\uc2a4\ub97c \uc815\uc758\ud558\uae30 \uc704\ud55c \uae30\ub2a5\uc785\ub2c8\ub2e4. \ucfe0\ubc84\ub124\ud2f0\uc2a4\ub294 \uae30\ubcf8\uc801\uc73c\ub85c \ud30c\ub4dc, \uc11c\ube44\uc2a4, \ub514\ud50c\ub85c\uc774\uba3c\ud2b8 \ub4f1\uacfc \uac19\uc740 \ud575\uc2ec \ub9ac\uc18c\uc2a4\ub97c \uc81c\uacf5\ud558\uc9c0\ub9cc, \uc0ac\uc6a9\uc790\ub294 \uc774 \uc678\uc5d0\ub3c4 \ub3c5\uc790\uc801\uc778 \ub9ac\uc18c\uc2a4 \uc720\ud615\uc744 \uc815\uc758\ud558\uace0 \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.&nbsp;<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">CRD\ub97c \uc0ac\uc6a9\ud558\uba74 \uc0ac\uc6a9\uc790\ub294 \uc790\uc2e0\ub9cc\uc758 \ub9ac\uc18c\uc2a4 \uc720\ud615\uc744 \uc815\uc758\ud558\uace0, \uc774\ub97c \ud074\ub7ec\uc2a4\ud130\uc5d0\uc11c \ub9c8\uce58 \ub0b4\uc7a5\ub41c \ub9ac\uc18c\uc2a4\ucc98\ub7fc \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. ArgoCD\uc5d0\uc11c\ub3c4 \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \ubc30\ud3ec\ub97c \uc6a9\uc774\ud558\uac8c \u2018Application\u2019\uc774\ub77c\ub294 \uc790\uccb4 \ub9ac\uc18c\uc2a4\ub97c \uc81c\uacf5\ud569\ub2c8\ub2e4.<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uadf8\ub7fc Nginx \uc6f9\uc11c\ubc84\ub97c \ubc30\ud3ec\ud558\uae30 \uc704\ud55c ArgoCD Application\ub97c \ub9cc\ub4e4\uaca0\uc2b5\ub2c8\ub2e4. (<a href=\"https:\/\/github.com\/junghoon2\/k8s-class\/edit\/main\/nginx-webserver\/nginx-15.1.0\/cd\/my-application.yaml\">\ud544\uc790 \uae43\ud5d9<\/a>)<\/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: argoproj.io\/v1alpha1\nkind: Application\nmetadata:\n  name: nginx\n  namespace: argocd\n  finalizers:\n  - resources-finalizer.argocd.argoproj.io\nspec:\n  destination:\n    namespace: nginx\n    server: https:\/\/kubernetes.default.svc\n  project: default\n  source:\n    helm:\n      valueFiles:\n      - ci\/my-values.yaml\n    path: nginx-webserver\/nginx-15.1.0\n    repoURL: https:\/\/github.com\/junghoon2\/k8s-class.git\n    targetRevision: HEAD\n  syncPolicy:\n    automated:\n      prune: true\n      selfHeal: true\n    syncOptions:\n    - CreateNamespace=true<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">. metadata.finalizers<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u2018Application\u2019 \ub9ac\uc18c\uc2a4\ub97c \uc0ad\uc81c\ud558\uba74 \uad00\ub828\ub41c \ucfe0\ubc84\ub124\ud2f0\uc2a4 \ub9ac\uc18c\uc2a4(\ud30c\ub4dc \ub4f1)\uae4c\uc9c0 \uac19\uc774 \uc0ad\uc81c\ud558\ub294 \uc635\uc158\ub2c8\ub2e4.&nbsp;<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">. spec.destination.server<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">&nbsp;ArgoCD\uac00 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \ubc30\ud3ec\ud558\ub294 \ubaa9\uc801\uc9c0\ub97c \uc9c0\uc815\ud569\ub2c8\ub2e4. \uc6d0\uaca9 \ucfe0\ubc84\ub124\ud2f0\uc2a4 \ud074\ub7ec\uc2a4\ud130\ub3c4 \uc9c0\uc815\ud560 \uc218 \uc788\uace0 ArgoCD\uac00 \uc124\uce58\ub41c \ucfe0\ubc84\ub124\ud2f0\uc2a4\ub3c4 \uc9c0\uc815\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.&nbsp; \uc8fc\uc18c\ub97c \u2018<a href=\"https:\/\/kubernetes.default.svc\">https:\/\/kubernetes.default.svc<\/a>\u2019 \uc9c0\uc815\ud558\uba74 ArgoCD\uac00 \uc124\uce58\ub41c \ucfe0\ubc84\ub124\ud2f0\uc2a4\ub85c \uc9c0\uc815\ud569\ub2c8\ub2e4.<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">. spec.source.helm<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">ArgoCD\ub294 \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \uc124\uce58 \ud615\ud0dc\ub97c \ud5ec\ub984, \ub9e4\ub2c8\ud398\uc2a4\ud2b8 \ub4f1\uc744 \uc9c0\uc6d0\ud569\ub2c8\ub2e4. \uc774\ubc88 \uc2e4\uc2b5\uc5d0\uc11c Nginx\ub97c \ud5ec\ub984\uc73c\ub85c \uc124\uce58\ud558\ubbc0\ub85c \u2018helm\u2019\uc73c\ub85c \uc9c0\uc815\ud558\uc600\uc2b5\ub2c8\ub2e4.<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">. spec.source.path, repoURL<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ud5ec\ub984 \ucc28\ud2b8\uac00 \uc704\uce58\ud55c \uae43\ud5c8\ube0c \ub808\ud3ec\uc9c0\ud1a0\ub9ac URL\uacfc \ud574\ub2f9 \ud5ec\ub984 \ucc28\ud2b8 \uacbd\ub85c\ub97c \uc9c0\uc815\ud569\ub2c8\ub2e4.<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">.spec.syncPolicy.automated.prune\/selfHeal<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">ArgoCD\uc5d0\uc11c \uc790\ub3d9\uc73c\ub85c \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \ubc30\ud3ec\ud560\uc9c0 \uc9c0\uc815\ud558\ub294 \uc635\uc158\uc785\ub2c8\ub2e4. \uae43\uc5d0 \uc18c\uc2a4\uac00 \uc62c\ub77c\uac00\uba74 \uc790\ub3d9\uc73c\ub85c \ucfe0\ubc84\ub124\ud2f0\uc2a4\uc5d0 \ud5ec\ub984\uc744 \ubc30\ud3ec\ud558\uace0 \uc2f6\uc73c\uba74 \u2018automated\u2019 \uc635\uc158\uc744 \uc9c0\uc815\ud569\ub2c8\ub2e4.&nbsp;<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc2e4\uc81c \ud604\uc5c5\uc5d0\uc11c Dev, Stage \ud658\uacbd\uc5d0\uc11c\ub294 automated \uc635\uc158\uc744 \uc0ac\uc6a9\ud558\uace0 \uc6b4\uc601 \ud658\uacbd\uc5d0\uc11c\ub294 \uc218\ub3d9\uc73c\ub85c \ubcc0\ud654(\u2018Diff\u2019) \ub0b4\uc5ed\uc744 \ud655\uc778\ud558\uace0 \ubc30\ud3ec\ud558\uae30 \uc704\ud558\uc5ec automated \uc635\uc158\uc744 \uc0ac\uc6a9\ud558\uc9c0 \uc54a\ub294 \uacbd\uc6b0\ub3c4 \ub9ce\uc2b5\ub2c8\ub2e4.<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">prune\uc740 \uae43\uc5d0\uc11c \ucf54\ub4dc\ub97c \uc0ad\uc81c\ud558\uba74 \uc2e4\uc81c \ub9ac\uc18c\uc2a4\ub3c4 \uac19\uc774 \uc0ad\uc81c\ud558\ub294 \uc635\uc158\uc774\uba70 selfHeal \uc635\uc158\uc740 \uc2e4\ud328\ud55c \uc791\uc5c5\uc744 \uc790\ub3d9\uc73c\ub85c \ubcf5\uad6c\ud569\ub2c8\ub2e4.<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">. spec.syncOptions.CreateNamespace<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ub124\uc784\uc2a4\ud398\uc774\uc2a4\ub97c \uc790\ub3d9\uc73c\ub85c \uc0dd\uc131\ud558\ub294 \uc635\uc158\uc785\ub2c8\ub2e4.<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Application CRD\ub3c4 \uac19\uc740 \ucfe0\ubc84\ub124\ud2f0\uc2a4 \ub9ac\uc18c\uc2a4\uc774\ubbc0\ub85c \u2018k apply\u2019 \uba85\ub839\uc5b4\ub85c \ub9ac\uc18c\uc2a4\ub97c \uc0dd\uc131\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=\"\">$ k apply -f nginx-webserver\/nginx-15.1.0\/cd\/my-application.yaml \napplication.argoproj.io\/nginx created<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Argocd \u2018Application\u2019 \uc774\ub77c\ub294 \ubcc4\ub3c4\uc758 \ucfe0\ubc84\ub124\ud2f0\uc2a4 \uac1d\uccb4\uac00 \uc0dd\uc131\ub418\uc5c8\uc2b5\ub2c8\ub2e4. ArgoCD\uc758 Application\uc774\ub780 \uc77c\ubc18\uc801\uc73c\ub85c \ud504\ub85c\uadf8\ub7a8 Application\uc774 \uc544\ub2c8\ub77c ArgoCD\uc5d0\uc11c \uc790\uccb4 \uc0dd\uc131\ud55c \ucfe0\ubc84\ub124\ud2f0\uc2a4 \uac1d\uccb4\uc758 \ud55c \uc885\ub958\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:argocd) cd]$ k get applications -n argocd nginx\nNAME    SYNC STATUS   HEALTH STATUS\nnginx   Synced        Healthy<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">ArgoCD \uc6f9\uc5d0\uc11c \ud654\uba74 \uc67c\ud3b8 \uba54\ub274\uc758 \u2018Applications\u2019\ub97c \ud655\uc778\ud558\uba74 \uc0c8\ub86d\uac8c argocd\/nginx\uac00 \uc0dd\uc131\ub41c \uac83\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\/Qf5MOUDp67A-X596v9WKrelf7jde0nQ380bBaNn-YhI6y4q9O8mBtiQb9HU9BVh-QoWneigJ7ruitfCSvsraWvJtboHiHHzzENPtQvaHVLcXroiMoEgd7grWAE4wfTz44TQ5h9PEhCcaiukmnvrnJFg\" alt=\"\"\/><\/figure><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">\ud574\ub2f9 \uba54\ub274\ub97c \ud074\ub9ad\ud558\uba74 NGINX \ud5ec\ub984 \ucc28\ud2b8\ub85c \uc124\uce58\ud55c \ucfe0\ubc84\ub124\ud2f0\uc2a4 \ub9ac\uc18c\uc2a4\ub97c \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. Service, Deploy\uac00 \uc124\uce58\ub418\uc5c8\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/lh3.googleusercontent.com\/wTypBPU-2IsUquYOx3qo90IN6ua3cKtMOifjtsP2HC8M6IVFkqhnQATVhE8NXCXHHZPTmUr4Wjou1U0yQ3d5BijFcQN-puC2OB3xWUP4Gc89hiTIbpKSnILLMNgwLl4m6nVSwuKoavg8TXiUB2q5Ixw\" alt=\"\"\/><\/figure><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">\uc124\uce58\ub41c Nginx \uc6f9\uc11c\ubc84 \ud30c\ub4dc\ub294 \uba85\ub839\uc5b4\ub85c\ub3c4 \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=\"\">[jerry:~ (jerry:nginx)]$ k get pod -n nginx\nNAME                     READY   STATUS    RESTARTS      AGE\nnginx-7979bfc556-4twdt   2\/2     Running   2 (35d ago)   35d\nnginx-7979bfc556-cvg5w   2\/2     Running   1 (35d ago)   35d<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc704\uc640 \uac19\uc774 ArgoCD\ub97c \uc774\uc6a9\ud558\uc5ec \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \ud30c\ub4dc\ub97c \ubc30\ud3ec\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.&nbsp;<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ucd5c\ucd08 ArgoCD \ubc30\ud3ec \uc2dc \ub85c\uceec PC\uc5d0\uc11c \u2018helm install\u2019 \uba85\ub839\uc5b4\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \ubc30\ud3ec\ud558\uc600\uc2b5\ub2c8\ub2e4. \uc774 \ud6c4 ArgoCD\ub97c \ubc30\ud3ec\ud55c \ud6c4 NGINX\ub294 \u2018helm install\u2019 \uba85\ub839\uc5b4\uac00 \uc544\ub2c8\ub77c ArgoCD\ub97c \uc774\uc6a9\ud558\uc5ec NGINX \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \ubc30\ud3ec\ud558\uc600\uc2b5\ub2c8\ub2e4.&nbsp;<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ub85c\uceec PC\uc5d0\uc11c \uba85\ub839\uc5b4\ub85c \uc124\uce58\ud55c \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc740 Git\uc5d0 \uc800\uc7a5\ud558\uc9c0 \uc54a\uc744 \uc218 \uc788\uc5b4 \ud5a5\ud6c4 \uad00\ub9ac\uac00 \uc5b4\ub835\uc2b5\ub2c8\ub2e4. \ud558\uc9c0\ub9cc ArgoCD\ub97c \uc774\uc6a9\ud558\uba74 \uae43\uc5d0 \uc18c\uc2a4\ub97c \uc62c\ub9ac\uace0 \ubc30\ud3ec\ud558\ub294 \uac83\uc744 \uac15\uc81c\ud560 \uc218 \uc788\uc5b4 \uae43\uc635\uc2a4 \uc815\ucc45\uc744 \uc801\uc6a9\ud558\uae30\uac00 \uc6a9\uc774\ud569\ub2c8\ub2e4. \ucfe0\ubc84\ub124\ud2f0\uc2a4\uc5d0\uc11c \uc124\uce58\ud558\ub294 \ubaa8\ub4e0 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc740 ArgoCD\ub97c \uc774\uc6a9\ud558\uc5ec \ubc30\ud3ec\ud558\ub294 \uac83\uc744 \uad8c\uace0\ud569\ub2c8\ub2e4.&nbsp;<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">ArgoCD\ub294 UI\ub97c \uc9c0\uc6d0\ud558\uc5ec Helm\uc73c\ub85c \uc5b4\ub5a4 \ub9ac\uc18c\uc2a4\ub97c \uc124\uce58\ud558\uc600\ub294\uc9c0 \ud655\uc778\ud560 \uc218 \uc788\uc5b4 \ud3b8\ub9ac\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><strong>5. GitOps \uc2e4\uc2b5<\/strong><br><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">\uadf8\ub7fc \uc2e4\uc81c \uc6b4\uc601(Ops) \uc911\uc778 \uc0c1\ud0dc\uc640 \uae43(Git) \uc0c1\ud0dc\ub97c \ub2e4\ub974\uac8c \ud558\uc5ec ArgoCD\uac00 \uc5b4\ub5bb\uac8c GitOps\ub97c \uad6c\ud604\ud558\ub294\uc9c0 \uc54c\uc544\ubcf4\uaca0\uc2b5\ub2c8\ub2e4.<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc18c\uc2a4\uac00 \uc544\ub2c8\ub77c \uba85\ub839\uc5b4\ub97c \uc0ac\uc6a9\ud558\uc5ec NGINX \ud30c\ub4dc\uc758 \uc22b\uc790\ub97c 2\uac1c\uc5d0\uc11c 5\uac1c\ub85c \ubcc0\uacbd\ud569\ub2c8\ub2e4. \ub85c\uceec\uc758 \ucf58\uc194 \ucc3d\uc744 2\uac1c\ub85c \ub098\ub204\uace0 \uc704\uc5d0\uc11c\ub294 \ud30c\ub4dc\uc758 \uc22b\uc790\ub97c \ubcc0\uacbd\ud558\uace0 \uc544\ub798\uc5d0\uc11c\ub294 \ubcc0\uacbd \uc0ac\ud56d\uc744 \uc2e4\uc2dc\uac04\uc73c\ub85c \ud655\uc778\ud558\uaca0\uc2b5\ub2c8\ub2e4.<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc544\ub798 \ucc3d\uc740 \uc544\ub798\uc640 \uac19\uc774 \u2018k get pod -w(watch)\u2019 \uba85\ub839\uc5b4\ub85c \ud30c\ub4dc\uc758 \ubcc0\uacbd \uc0ac\ud56d\uc744 \uc2e4\uc2dc\uac04\uc73c\ub85c \ud655\uc778\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=\"\"># nginx \ub124\uc784\uc2a4\ud398\uc774\uc2a4\ub85c \ubcc0\uacbd\ud569\ub2c8\ub2e4.\n$ (\u2388 |switch-singapore-test:echoserver) k ns nginx\nContext \"switch-singapore-test\" modified.\nActive namespace is \"nginx\".\n\n$ (\u2388 |switch-singapore-test:nginx) k get pod -w\nNAME                     READY   STATUS    RESTARTS   AGE\nnginx-7979bfc556-7bz89   2\/2     Running   0          6m30s\nnginx-7979bfc556-gb7t2   2\/2     Running   0          6m30s<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc704 \ucc3d\uc5d0\uc11c \ud30c\ub4dc \uc22b\uc790\ub97c \ubcc0\uacbd\ud569\ub2c8\ub2e4. \ud30c\ub4dc \uc22b\uc790 \ubcc0\uacbd\uc740 \uba85\ub839\uc5b4\ub85c scale\uc744 \uc0ac\uc6a9\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:nginx) k scale deployment nginx --replicas 5\ndeployment.apps\/nginx scaled<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uba85\ub839\uc5b4\ub85c \ud30c\ub4dc\uc758 \uc22b\uc790\ub97c 5\uac1c\ub85c \uc9c0\uc815\ud558\uc600\uc73c\ub098 \ud30c\ub4dc\ub294 \uc99d\uac00\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.&nbsp; \u2018ContainerCreating\u2019\uacfc \ub3d9\uc2dc\uc5d0 \u2018Terminating \u2018 \ub418\uc5c8\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:nginx) k get pod -w\nNAME                     READY   STATUS    RESTARTS   AGE\nnginx-7979bfc556-7bz89   2\/2     Running   0          6m30s\nnginx-7979bfc556-gb7t2   2\/2     Running   0          6m30s\n\nnginx-7979bfc556-8btj2   0\/2     Pending   0          0s\nnginx-7979bfc556-8btj2   0\/2     Pending   0          0s\nnginx-7979bfc556-85x5c   0\/2     Pending   0          0s\nnginx-7979bfc556-sqd4j   0\/2     Pending   0          0s\nnginx-7979bfc556-85x5c   0\/2     Pending   0          0s\nnginx-7979bfc556-8btj2   0\/2     ContainerCreating   0          0s\nnginx-7979bfc556-sqd4j   0\/2     Pending             0          0s\nnginx-7979bfc556-85x5c   0\/2     ContainerCreating   0          0s\nnginx-7979bfc556-sqd4j   0\/2     ContainerCreating   0          0s\nnginx-7979bfc556-sqd4j   0\/2     Terminating         0          1s\nnginx-7979bfc556-85x5c   0\/2     Terminating         0          1s\nnginx-7979bfc556-8btj2   0\/2     Terminating         0          1s<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ud30c\ub4dc\uc758 \uc22b\uc790\ub294 \uc5ec\uc804\ud788 2\uac1c\uc785\ub2c8\ub2e4. \uc65c \uadf8\ub7f4\uae4c\uc694?<\/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:nginx) k get pod\nNAME                     READY   STATUS    RESTARTS   AGE\nnginx-7979bfc556-7bz89   2\/2     Running   0          8m46s\nnginx-7979bfc556-gb7t2   2\/2     Running   0          8m46s<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc65c\ub0d0\ud558\uba74 \uae43\uc18c\uc2a4\uc5d0\uc11c \ud30c\ub4dc\uc758 \uc218\ub7c9\uc744 \uc218\uc815\ud558\uc9c0 \uc54a\uc544\uc11c ArgoCD\uac00 \uc790\ub3d9\uc73c\ub85c \ud604\uc7ac\uc758 \ud074\ub7ec\uc2a4\ud130 \uc0c1\ud0dc\ub97c \uae43\uc5d0 \ub3d9\uae30\ud654\ub41c \uc18c\uc2a4\uc758 \uc0c1\ud0dc\uc640 \uc790\ub3d9\uc73c\ub85c \ub9de\ucd94\uae30 \uc704\ud558\uc5ec \ud56d\uc0c1 2\uac1c\ub85c \uc720\uc9c0\ud558\uae30 \ub54c\ubb38\uc785\ub2c8\ub2e4.&nbsp;<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uadf8\ub7fc, \ucc28\uc774\ub97c \ud655\uc778\ud558\uae30 \uc704\ud558\uc5ec ArgoCD\uc5d0\uc11c \u2018automated\u2019 \uc635\uc158\uc744 \uc81c\uac70\ud558\uaca0\uc2b5\ub2c8\ub2e4. \u2018automated\u2019 \uc635\uc158\uc740 \uc790\ub3d9\uc73c\ub85c \ud604\uc7ac\uc758 \uc0c1\ud0dc\uc640 \uae43\uc758 \uc0c1\ud0dc\ub97c \ub9de\ucd94\ub294 \uc635\uc158\uc785\ub2c8\ub2e4. \ud574\ub2f9 \uc635\uc158\uc744 \uc81c\uac70\ud558\uba74 ArgoCD\uac00 \ud604\uc7ac\uc758 \uc0c1\ud0dc\ub97c \uc790\ub3d9\uc73c\ub85c \uc218\uc815\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.&nbsp;<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ub2e4\uc2dc \u2018k scale deployment nginx &#8211;replicas 5\u2019 \uba85\ub839\uc5b4\ub97c \uc2e4\ud589\ud558\uace0 ArgoCD \uc6f9\uc73c\ub85c \ud655\uc778\ud558\uba74 \u2018OutOfSync\u2019\uc785\ub2c8\ub2e4. \ubb38\uad6c\uc5d0\uc11c \ud655\uc778\ud560 \uc218 \uc788\ub4ef\uc774 \ud604\uc7ac \uae43\uc5d0 \uc800\uc7a5\ub41c \uc18c\uc2a4\uc758 \uc0c1\ud0dc\uac00 \uc6b4\uc601\uc911\uc778 \ud074\ub7ec\uc2a4\ud130\uc758 \ud604\uc7ac \uc0c1\ud0dc\uc640 \uc11c\ub85c Sync \uc0c1\ud0dc\uac00 \uc544\ub2cc \uac83\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:\/\/lh3.googleusercontent.com\/CDc7xoXk8zs97QQ4NJvkXRhhlYG8_G_NDQXL0AUuMscTuFZweAbL5cubOowyjmQFxPDkbSfwTpBLHEieh1qALPuGQdcVpAooGRVps-x-6aRAhz3-O4XLJXNjZbzV-J_Ru_D7vl0vG7tuetM4l4aZquE\" alt=\"\"\/><figcaption>&lt;OutOfSync&gt;<\/figcaption><\/figure><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">\uba54\ub274\uc758 \u2018APP DIFF\u2019\ub97c \ud655\uc778\ud558\uba74 \uc790\uc138\ud55c \uba54\uc2dc\uc9c0\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\/JfglLFuZxhrmq3zjLwzmmVexYqWyzQB1khKRfQnqH-fLkqkpYd6SFxGrXYTMnHITSzAEGV78x9HOgsTBwf52pU4l1JVX4WmLz-_ypWx6j_PrFjDvNc4cTF0EVPAKYcf6TYTjrgGUAI5UIcKgESXHr70\" alt=\"\"\/><\/figure><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">\u2018replicas\u2019, \ud30c\ub4dc\uc758 \ub808\ud50c\ub9ac\uce74 \uc22b\uc790\uac00 5\uac1c\uc640 2\uac1c\ub85c \uc11c\ub85c \ucc28\uc774\ub098\ub294 \uac83\uc744 \uc54c \uc218 \uc788\uc2b5\ub2c8\ub2e4.&nbsp;<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc2e4\ubb34 \uc6b4\uc601 \ud658\uacbd\uc5d0\uc11c\ub294 \uc704\uc640 \uac19\uc774 \u2018automated\u2019 \uc635\uc158\uc744 \ube44\ud65c\uc131\ud654\ud558\uace0 \uc0ac\uc6a9\ud558\uae30\ub3c4 \ud569\ub2c8\ub2e4. \ud56d\uc0c1 \u2018Diff\u2019\ub97c \uc218\ub3d9\uc73c\ub85c \ud655\uc778\ud558\uc5ec \uc791\uc5c5 \uc774\uc0c1 \uc720\ubb34\ub97c \uccb4\ud06c\ud558\uace0 \uc2e4\uc81c \ud074\ub7ec\uc2a4\ud130\uc5d0 \ubc18\uc601\ud558\ub294 \uacfc\uc815\uc744 \uac70\uce69\ub2c8\ub2e4.&nbsp;<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc815\ub9ac\ud558\uba74 \uc791\uc5c5\uc790\uac00 \uae43\uc18c\uc2a4\uac00 \uc544\ub2cc \uc784\uc758\ub85c \uba85\ub839\uc5b4\ub85c \ud30c\ub4dc\uc758 \uc218\ub7c9\uc744 \ubcc0\uacbd\ud558\uc5ec\ub3c4 \u2018Automated\u2019 \uc635\uc158\uc774 \ud65c\uc131\ud654\ub418\uc5b4 \uc788\uc73c\uba74 ArgoCD\uac00 \uc790\ub3d9\uc73c\ub85c \ud604\uc7ac\uc758 \uc0c1\ud0dc\ub97c \uae43 \uc18c\uc2a4\uc640 \ub3d9\uae30\ud654\ud558\uc5ec \ud30c\ub4dc\uc758 \uc22b\uc790\ub97c 2\uac1c\ub85c \uc720\uc9c0\ud569\ub2c8\ub2e4.<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uadf8\ub7fc \uc774\uc81c \ubc18\ub300\ub85c \uae43 \uc18c\uc2a4\uc5d0\uc11c \ud30c\ub4dc\uc758 \uc22b\uc790\ub97c 2\uac1c\uc5d0\uc11c 1\uac1c\ub85c \ubcc0\uacbd\ud558\uaca0\uc2b5\ub2c8\ub2e4. NGINX \ud5ec\ub984 value \ud30c\uc77c\uc758 \u2018replicaCount\u2019 \uc635\uc158\uc744 \ubcc0\uacbd\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=\"\">replicaCount: 1 # 2 to 1\uac1c\ub85c \ubcc0\uacbd<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Git commit \ud6c4 push \ud558\uc5ec Git main\uc73c\ub85c merge \ud569\ub2c8\ub2e4. \uc544\ub798\ub294 \ud544\uc790\uac00 \uc0ac\uc6a9\ud558\ub294 VSCode Git Commit \ud654\uba74 \uc608\uc2dc\uc785\ub2c8\ub2e4.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/lh3.googleusercontent.com\/VsYvGJdWBxUNCIfngJ4TvOe2pVsRLGiaXY7xBJbQ9ceqcg5bFDuw7Vb5epy8fJxnXlXpbK8ZTY1nADrUdS8R0KSyPowH9JLY18QRSV60oDgRKeIekGyODrwdxL8Ou5A0b66CBDwF1sxzDAXYj9n0fJU\" alt=\"\"\/><\/figure><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">ArgoCD \uba54\ub274\uc5d0\uc11c &#8216;REFRESH&#8217;\ud558\uba74 \ud30c\ub4dc\uc758 \uc22b\uc790\uac00 \uc790\ub3d9\uc73c\ub85c 1\uac1c\ub85c \uc904\uc5b4\ub4e4\uc5c8\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/lh4.googleusercontent.com\/AKYsK3IA0uG4DCdSUX554ULsPaR5h55PGdYCJruWlIq6zJWRu1eLs-P7trQIVwSsjDVrVoFEgMCVV-f4igCcnIZofBRLz_no1i_6ELrcfHi0GgOWKUN4ppa9IvMW9pPtpg5cZi5GOsXoMaNHhUi2OuM\" alt=\"\"\/><\/figure><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">kubectl \uba85\ub839\uc5b4\ub85c \ud655\uc778\ud574\ub3c4 \ud30c\ub4dc\uc758 \uc22b\uc790\uac00 1\uac1c\ub85c \uc904\uc5c8\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:nginx) k get pod\nNAME                     READY   STATUS    RESTARTS   AGE\nnginx-7979bfc556-gb7t2   2\/2     Running   0          25m<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\ucc98\ub7fc ArgoCD\ub294 \uae43\uc18c\uc2a4\uc5d0 \ubc18\uc601\ub41c \uc0c1\ud0dc\ub97c \uc2e4\uc81c \uc6b4\uc601 \ucfe0\ubc84\ub124\ud2f0\uc2a4 \uc0c1\ud0dc\uc640 \uc11c\ub85c \ub3d9\uae30\ud654\ud569\ub2c8\ub2e4. \ubaa8\ub4e0 \ubcc0\uacbd \uc791\uc5c5\uc744 \uba85\ub839\uc5b4 \ud639\uc740 \ub85c\uceec\uc758 \uc18c\uc2a4\uc5d0\uc11c \uc784\uc758\ub85c \ud558\uc9c0 \uc54a\uace0 \uc911\uc559\ud654\ub41c \uae43\uc800\uc7a5\uc18c\uc5d0\uc11c\ub9cc \uc791\uc5c5\uc774 \uc774\ub8e8\uc5b4\uc9c0\uac8c \ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.&nbsp;<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\uc640 \uc720\uc0ac\ud558\uac8c \ud14c\ub77c\ud3fc\uc744 \uc0ac\uc6a9\ud558\ub294 \uc778\ud504\ub77c \uc791\uc5c5\ub3c4 Git PR Review \uac70\uccd0\uc11c \uc2e4\uc81c \uc0c1\ud0dc\uc5d0 \ubc18\uc601\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/lh3.googleusercontent.com\/Ynss1LYT1F5w1bBgDhDn2ED2xXWzvPLRyuBxjAvJgKC45eKNomKpQ3752_wfIQ0RmQhEFsJVZCjAQ73XZvkmceMaCPAEZJvxZscRKn1HrL5JvmD8svACWRzaSReRCg-4d1LPyOrA2Q1opVfdklp5AwU\" alt=\"\"\/><\/figure><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">\uc704 \uc2a4\ud06c\ub9b0\uc0f7\uc740 EKS \uc5c5\uadf8\ub808\uc774\ub4dc \uc791\uc5c5 \uc2dc \uc2e4\uc81c\ub85c \uc0ac\uc6a9\ud55c \ud544\uc790\uc758 PR Review \uba54\uc2dc\uc9c0\uc785\ub2c8\ub2e4. EKS \uc5c5\uadf8\ub808\uc774\ub4dc\ub97c \uc704\ud55c \ud14c\ub77c\ud3fc \ucf54\ub4dc \uc791\uc5c5\uc744 \ub9ac\ubdf0\ub97c \ud1b5\ud558\uc5ec \ub3d9\ub8cc\uc5d0\uac8c \uac80\uc99d\ud55c \uc0ac\ub840\uc785\ub2c8\ub2e4. \ubbf8\ub9ac \uc791\uc5c5 \uad00\ub828 \ucf54\ub4dc\ub97c \uac80\uc99d\ud558\uc5ec \uc791\uc5c5 \uc911 \ubc1c\uc0dd\ud560 \uc218 \uc788\ub294 \uc7a5\uc560\ub97c \uc904\uc77c \uc218 \uc788\uc5c8\uc2b5\ub2c8\ub2e4. \uac80\uc99d\ub41c \ucf54\ub4dc\ub97c main\uc73c\ub85c merge\ud558\uc5ec \uc2e4\uc81c \uc0c1\ud0dc\uc5d0 \ubc18\uc601\ud558\uac8c \ud558\uc600\uc2b5\ub2c8\ub2e4.<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ud14c\ub77c\ud3fc \ucf54\ub4dc \uc774 \uc678 \uc791\uc5c5\uc744 \uc704\ud55c \ud30c\uc774\uc36c \ucf54\ub4dc\ub3c4 \ub3d9\uc77c\ud558\uac8c \uae43\uc5d0 \uc800\uc7a5\ud558\uc5ec \ub9ac\ubdf0\ub97c \ubc1b\uc2b5\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=\"\">import boto3\n\nregions = [\"ap-northeast-2\", \"us-west-2\", \"ap-northeast-1\", \"us-east-1\"]\n\nfor region in regions:\n    session = boto3.Session(region_name=region)\n    client = session.client(\"kafka\")\n\n    # to print region name\n    print(f\"{region}\")\n\n    # Get a list of all clusters\n    response = client.list_clusters()\n\n    # Loop through the instances and print out their details\n    for instance in response[\"ClusterInfoList\"]:\n        # Get the type, state, and launch time\n        ClusterName = instance[\"ClusterName\"]\n        InstanceType = instance[\"BrokerNodeGroupInfo\"][\"InstanceType\"]\n        NumberOfBrokerNodes = instance[\"NumberOfBrokerNodes\"]\n        CreationTime = instance[\"CreationTime\"].strftime(\"%Y-%m-%d %H:%M:%S\")\n        State = instance[\"State\"]\n\n        # Print out the instance information in a formatted string\n        print(\n            f\"{ClusterName}, {InstanceType}, {NumberOfBrokerNodes}ea brokers, {CreationTime}, {State}\"\n        )<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc704 \uc608\uc81c\ub294 \uac01 \ub9ac\uc804 \ubcc4 \uc804\uccb4 AWS MSK Cluster \ub9ac\uc2a4\ud2b8\ub97c \ucd9c\ub825\ud558\ub294 \ud30c\uc774\uc36c \ucf54\ub4dc\uc785\ub2c8\ub2e4.<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ubb3c\ub860 \uc2e4\uc81c \uc6b4\uc601\uc744 \ud558\uba74 \ubaa8\ub4e0 \uc791\uc5c5\uc5d0 \ub300\ud558\uc5ec \ucf54\ub4dc \ub9ac\ubdf0\ub97c \ubc1b\uae30\ub294 \uc2dc\uac04 \uc81c\uc57d \uc0c1 \uc5b4\ub835\uc2b5\ub2c8\ub2e4. \ud558\uc9c0\ub9cc \ubaa8\ub4e0 \uc791\uc5c5\uc740 \uc0ac\uc804\uc5d0 \ucf54\ub4dc\ub97c \uc791\uc131\ud558\uace0 \ud574\ub2f9 \ucf54\ub4dc\ub97c \uae30\ubc18\uc73c\ub85c \ubb38\uc11c\ub97c \uc791\uc131\ud574\uc11c \ub3d9\ub8cc\uc5d0\uac8c \uc0ac\uc804 \ub9ac\ubdf0\ub97c \ubc1b\ub294 \ud504\ub85c\uc138\uc2a4\ub97c \uc815\ucc29\ud558\ub294 \uac83\uc774 \uc2dc\uc2a4\ud15c\uc744 \uc548\uc815\uc801\uc73c\ub85c \uc6b4\uc601\ud558\ub294\ub370 \ud6a8\uacfc\uc801\uc785\ub2c8\ub2e4. \uadf8\ub9ac\uace0 \uc801\uc5b4\ub3c4 \ubaa8\ub4e0 \uc791\uc5c5 \ub0b4\uc5ed\uc740 \ucf54\ub4dc\ub85c \ub0a8\uaca8\ub450\ub294 \uac83\uc774 \ud5a5\ud6c4 \ub3d9\uc77c\ud55c \uc791\uc5c5\uc744 \uc218\ud589\ud560 \ub54c \ud070 \ub3c4\uc6c0\uc774 \ub418\ubbc0\ub85c \uaf2d \ub0a8\uaca8\ub450\ub294 \uac83\uc744 \uad8c\uace0\ud569\ub2c8\ub2e4.&nbsp;<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc9c0\uae08\uae4c\uc9c0 ArgoCD \uae43\uc635\uc2a4 \uc0ac\ub840\ub97c \uacf5\uc720\ud558\uc600\uc2b5\ub2c8\ub2e4. \uae43\uc635\uc2a4\ub294 \uc815\ucc45\uc774\ubbc0\ub85c \uc774\ub97c \uc9c0\ud0a4\ub294 \uc758\uc9c0\uac00 \uc911\uc694\ud569\ub2c8\ub2e4. \ucf54\ub4dc \ub9ac\ubdf0\ub97c \ucda9\uc2e4\ud558\uac8c \ud558\uace0 \ubc88\uac70\ub85c\uc6cc\ub3c4 \uc791\uc5c5 \uc808\ucc28\ub97c \uc9c0\ud0a4\ub294 \ub9e4\uc77c\uc758 \ub178\ub825\uc774 \ud544\uc694\ud569\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\" style=\"font-size:11px\">1.&nbsp;CI\/CD \ub3c4\uad6c\ub85c CI\ub294 Github Actions, CD\ub294 ArgoCD\uac00 \uac00\uc7a5 \ub9ce\uc774 \uc0ac\uc6a9\ud558\ub294 \ucd94\uc138\uc785\ub2c8\ub2e4.<br>2. \uc708\ub3c4\uc6b0 Ubuntu \uc0ac\uc6a9\uc790\ub3c4 homebrew\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. homebrew\ub97c \uc0ac\uc6a9\ud558\uc9c0 \uc54a\ub294 \uc0ac\uc6a9\uc790\ub294 apt, yum \ub4f1\uc73c\ub85c \ud5ec\ub984\uc744 \uc124\uce58\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ud5ec\ub984 \uc124\uce58 \ucc38\uc870 : <a href=\"https:\/\/helm.sh\/docs\/intro\/install\/#from-apt-debianubuntu\">https:\/\/helm.sh\/docs\/intro\/install\/#from-apt-debianubuntu<\/a>&nbsp;<br><\/p>\n","protected":false},"excerpt":{"rendered":"\uc774\ubc88 \uc7a5\uc740 ArgoCD\ub97c \uc774\uc6a9\ud558\uc5ec GitOps(\uc774\ud558 \uae43\uc635\uc2a4) \uc2dc\uc2a4\ud15c\uc744 \uad6c\ucd95\ud558\ub294 \ubc29\ubc95\uc744 \uc54c\uc544\ubcf4\uaca0\uc2b5\ub2c8\ub2e4. 1. GitOps\uc640 \ub2e8\uc77c \uc9c4\uc2e4 \uc6d0\ucc9c(SSOT) \uc815\uc758 \uba3c\uc800, \uae43\uc635\uc2a4\uc758 \uc815\uc758\ub97c \uc54c\uc544\ubcf4\uaca0\uc2b5\ub2c8\ub2e4&#8230;.","protected":false},"author":34,"featured_media":12415,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[386],"tags":[297,296,293,298,51,238,299,144,294,55,237,257],"class_list":["post-12414","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-kubernetes","tag-argocd","tag-aws-eks","tag-eks","tag-gitops","tag-jennifer","tag-k8s","tag-k8sedu","tag-kubernetes","tag-msa","tag-55","tag-237","tag-257"],"acf":[],"_links":{"self":[{"href":"https:\/\/jennifersoft.com\/ko\/wp-json\/wp\/v2\/posts\/12414","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=12414"}],"version-history":[{"count":4,"href":"https:\/\/jennifersoft.com\/ko\/wp-json\/wp\/v2\/posts\/12414\/revisions"}],"predecessor-version":[{"id":12420,"href":"https:\/\/jennifersoft.com\/ko\/wp-json\/wp\/v2\/posts\/12414\/revisions\/12420"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/jennifersoft.com\/ko\/wp-json\/wp\/v2\/media\/12415"}],"wp:attachment":[{"href":"https:\/\/jennifersoft.com\/ko\/wp-json\/wp\/v2\/media?parent=12414"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jennifersoft.com\/ko\/wp-json\/wp\/v2\/categories?post=12414"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jennifersoft.com\/ko\/wp-json\/wp\/v2\/tags?post=12414"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}