{"id":117,"date":"2026-03-08T05:51:07","date_gmt":"2026-03-08T05:51:07","guid":{"rendered":"https:\/\/blog.rebalai.com\/ko\/2026\/03\/08\/argocd-gitops-kubernetes\/"},"modified":"2026-03-09T04:52:48","modified_gmt":"2026-03-09T04:52:48","slug":"argocd-gitops-kubernetes","status":"publish","type":"post","link":"https:\/\/blog.rebalai.com\/ko\/2026\/03\/08\/argocd-gitops-kubernetes\/","title":{"rendered":"ArgoCD\ub85c GitOps \uad6c\ucd95\ud558\uae30: \uc218\ub3d9 kubectl apply\ub97c \ub04a\uc5b4\ub0b8 \ud6c4\uae30"},"content":{"rendered":"<p>\uae08\uc694\uc77c \uc624\ud6c4 4\uc2dc 30\ubd84\uc5d0 <code>kubectl apply -f deployment.yaml<\/code>\uc744 \uc798\ubabb \uc2e4\ud589\ud55c \uc801\uc774 \uc788\ub2e4.<\/p>\n<p>Staging\uc774 \uc544\ub2c8\ub77c <a href=\"https:\/\/m.do.co\/c\/06956e5e2802\" title=\"DigitalOcean for Production Workloads\" rel=\"nofollow sponsored\" target=\"_blank\">Production<\/a> \ud074\ub7ec\uc2a4\ud130\uc5d0. 5\uba85\uc9dc\ub9ac \ud300\uc5d0\uc11c \ud63c\uc790 backend\ub97c \ub2f4\ub2f9\ud558\uace0 \uc788\ub358 \ub54c\ub77c, \uadf8 \uc21c\uac04\uc774 \uc9c0\uae08\ub3c4 \uc0dd\uc0dd\ud558\ub2e4. \uc2ac\ub799\uc5d0 \uc0ac\uc6a9\uc790 \uc624\ub958 \uc54c\ub78c\uc774 \uc3df\uc544\uc9c0\uae30 \uc2dc\uc791\ud588\uace0, \ub098\ub294 30\ubd84 \ub3d9\uc548 \ub864\ubc31\ud558\ub290\ub77c \uc9c4\ub540\uc744 \ube90\ub2e4. \uadf8\ub54c\ubd80\ud130 &#8220;\uc0ac\ub78c\uc774 \uc9c1\uc811 kubectl\uc744 \uce58\ub294 \ubc29\uc2dd\uc740 \ud55c\uacc4\uac00 \uc788\ub2e4&#8221;\ub294 \uac78 \ubf08\uc800\ub9ac\uac8c \ub290\uaf08\ub2e4.<\/p>\n<p>\uadf8\ub798\uc11c ArgoCD\ub97c \ub3c4\uc785\ud588\ub2e4. ArgoCD 2.9 \ubc84\uc804\ubd80\ud130 \uc368\ubd24\uace0, \uc9c0\uae08\uc740 2.10.x\ub97c \uc6b4\uc601 \uc911\uc774\ub2e4. \uc194\uc9c1\ud788 \ucc98\uc74c\uc5d4 &#8220;\uadf8\ub0e5 GitHub Actions\ub85c kubectl apply \uc790\ub3d9\ud654\ud558\uba74 \ub418\ub294 \uac70 \uc544\ub2cc\uac00?&#8221; \uc2f6\uc5c8\ub294\ub370, \ub450 \ubc29\uc2dd\uc744 \uba87 \ub2ec \ub3d9\uc548 \ubcd1\ud589\ud574\ubcf4\uace0 \ub098\uc11c \uc0dd\uac01\uc774 \uc644\uc804\ud788 \ubc14\ub00c\uc5c8\ub2e4.<\/p>\n<h2>ArgoCD\uac00 <a href=\"https:\/\/blog.rebalai.com\/ko\/2026\/03\/09\/python-github-actions-2\/\" title=\"GitHub Actions\">GitHub Actions<\/a> \uae30\ubc18 <a href=\"https:\/\/m.do.co\/c\/06956e5e2802\" title=\"DigitalOcean\uc73c\ub85c \ubc30\ud3ec\ud558\uae30\" rel=\"nofollow sponsored\" target=\"_blank\">\ubc30\ud3ec<\/a>\uc640 \ub2e4\ub978 \uc774\uc720<\/h2>\n<p>\ub450 \ubc29\uc2dd\uc758 \ucc28\uc774\ub294 \uad6c\uc870\uc5d0 \uc788\ub2e4. GitOps\uc758 \ud575\uc2ec\uc740 &#8220;Git\uc774 \ub2e8\uc77c \uc9c4\uc2e4\uc758 \uc6d0\ucc9c(source of truth)\uc774 \ub41c\ub2e4&#8221;\ub294 \uac70\ub2e4. \uc989, \ud074\ub7ec\uc2a4\ud130\uc5d0 \uc5b4\ub5a4 \uc0c1\ud0dc\uac00 <a href=\"https:\/\/m.do.co\/c\/06956e5e2802\" title=\"DigitalOcean\uc73c\ub85c \ubc30\ud3ec\ud558\uae30\" rel=\"nofollow sponsored\" target=\"_blank\">\ubc30\ud3ec<\/a>\ub418\uc5b4 \uc788\uc5b4\uc57c \ud558\ub294\uc9c0\ub97c Git repository\uac00 \uae30\ub85d\ud558\uace0, \uadf8 \uc0c1\ud0dc\ub97c \uc9c0\uc18d\uc801\uc73c\ub85c \ub3d9\uae30\ud654\ud558\ub294 \uc5ed\ud560\uc744 \ubcc4\ub3c4\uc758 \ub3c4\uad6c\uac00 \ub9e1\ub294\ub2e4.<\/p>\n<p>GitHub Actions \ubc29\uc2dd\uc740 push\uac00 trigger\uac00 \ub418\uc5b4 CI\uac00 \ud074\ub7ec\uc2a4\ud130\ub85c \uba85\ub839\uc744 &#8220;\ubc00\uc5b4 \ub123\ub294&#8221; \uad6c\uc870\ub2e4. \uc678\ubd80\uc5d0\uc11c \ud074\ub7ec\uc2a4\ud130\ub85c \uc811\uadfc\ud558\ub294 \ubc29\uc2dd\uc774\ub77c \uad8c\ud55c \uad00\ub9ac\ub3c4 \ubcf5\uc7a1\ud574\uc9c4\ub2e4. \ubc18\uba74 ArgoCD\ub294 \ud074\ub7ec\uc2a4\ud130 \uc548\uc5d0\uc11c \uc2e4\ud589\ub418\uba74\uc11c Git repo\ub97c \uc8fc\uae30\uc801\uc73c\ub85c \ubc14\ub77c\ubcf4\ub2e4\uac00, \uc2e4\uc81c \ud074\ub7ec\uc2a4\ud130 \uc0c1\ud0dc\uc640 Git\uc758 \uc6d0\ud558\ub294 \uc0c1\ud0dc\uac00 \ub2ec\ub77c\uc9c0\uba74 \uc790\ub3d9\uc73c\ub85c sync\ud55c\ub2e4. Push \ubc29\uc2dd vs Pull \ubc29\uc2dd\uc758 \ucc28\uc774\uc778\ub370, \uc6b4\uc601\ud558\ub2e4 \ubcf4\uba74 \uc774\uac8c \uc0dd\uac01\ubcf4\ub2e4 \ud06c\uac8c \ub2e4\uac00\uc628\ub2e4.<\/p>\n<p>\uc2e4\uc81c\ub85c \uacaa\uc740 \ucc28\uc774\uac00 \uc788\ub2e4. <a href=\"https:\/\/blog.rebalai.com\/ko\/2026\/03\/09\/python-github-actions-2\/\" title=\"GitHub Actions\">GitHub Actions<\/a> \uae30\ubc18\uc77c \ub54c\ub294 \ub204\uad70\uac00 \ud074\ub7ec\uc2a4\ud130\uc5d0 \uc9c1\uc811 \ub4e4\uc5b4\uac00\uc11c \ubb54\uac00\ub97c \uc218\ub3d9\uc73c\ub85c \ubc14\uafd4\ub3c4 \uc54c \ubc29\ubc95\uc774 \uc5c6\uc5c8\ub2e4. ArgoCD\ub294 \uadf8 \uc989\uc2dc &#8220;OutOfSync&#8221; \uc0c1\ud0dc\ub85c \ud45c\uc2dc\ud574\uc900\ub2e4. \ud300\uc6d0 \ud55c \uba85\uc774 \uae34\uae09 \ud328\uce58\ud55c\ub2e4\uace0 \uc9c1\uc811 kubectl\ub85c \ud658\uacbd\ubcc0\uc218\ub97c \ubc14\uafd4\ub1a8\ub358 \uac8c, ArgoCD \ub3c4\uc785 \ud6c4\uc5d0 \ucc98\uc74c\uc73c\ub85c \ubc1c\uacac\ub410\ub2e4. \uadf8 \ud328\uce58\uac00 \ubb34\ub824 3\uac1c\uc6d4 \ub3d9\uc548 Git\uc5d0 \ubc18\uc601\uc774 \uc548 \ub41c \ucc44\ub85c \uc788\uc5c8\ub2e4\ub294 \uac83\ub3c4 \uadf8\ub54c \uc54c\uc558\ub2e4.<\/p>\n<h2>\uc2e4\uc81c \uc124\uce58: \ube60\ub978\ub370 \ud568\uc815\uc774 \uc788\ub2e4<\/h2>\n<p>\uc124\uce58 \uc790\uccb4\ub294 \uac04\ub2e8\ud558\ub2e4. ArgoCD namespace\ub97c \ub9cc\ub4e4\uace0 \uacf5\uc2dd manifest\ub97c apply\ud558\uba74 \ub41c\ub2e4.<\/p>\n<pre><code class=\"language-bash\">kubectl create namespace argocd\nkubectl apply -n argocd -f \\\n  https:\/\/raw.githubusercontent.com\/argoproj\/argo-cd\/v2.10.0\/manifests\/install.yaml\n<\/code><\/pre>\n<p>\ubb38\uc81c\ub294 \uadf8\ub2e4\uc74c\uc774\ub2e4.<\/p>\n<p>\uae30\ubcf8 \uc124\uce58\ub97c \ud558\uba74 argocd-server\uac00 ClusterIP\ub85c \ub72c\ub2e4. \ub85c\uceec\uc5d0\uc11c \uc811\uadfc\ud558\ub824\uba74 port-forward\ub97c \uc368\uc57c \ud558\uace0, \uc2e4\uc81c \uc6b4\uc601 \ud658\uacbd\uc5d0\uc11c\ub294 LoadBalancer\ub098 Ingress\ub97c \ubd99\uc5ec\uc57c \ud55c\ub2e4. \ub098\ub294 \uc774\uac78 \ubab0\ub77c\uc11c &#8220;\uc65c \uc811\uc18d\uc774 \uc548 \ub418\uc9c0?&#8221; \ud558\uace0 10\ubd84\uc744 \ub0a0\ub838\ub2e4 \u2014 \uacf5\uc2dd \ubb38\uc11c\uc5d0\ub3c4 \uc801\ud600 \uc788\ub294 \ub0b4\uc6a9\uc778\ub370, \ucc98\uc74c\uc5d4 \uc124\uce58\uc5d0 \uae09\ud574\uc11c \uadf8 \ubd80\ubd84\uc744 \uadf8\ub0e5 \uc9c0\ub098\ucce4\ub2e4.<\/p>\n<p>admin \ucd08\uae30 \ube44\ubc00\ubc88\ud638\ub294 \uc790\ub3d9 \uc0dd\uc131\ub41c secret\uc5d0\uc11c \uac00\uc838\uc640\uc57c \ud55c\ub2e4:<\/p>\n<pre><code class=\"language-bash\">kubectl -n argocd get secret argocd-initial-admin-secret \\\n  -o jsonpath=&quot;{.data.password}&quot; | base64 -d\n<\/code><\/pre>\n<p>\ub85c\uadf8\uc778\ud558\uace0 \ub098\uc11c \ubc18\ub4dc\uc2dc \ube44\ubc00\ubc88\ud638\ub97c \ubc14\uafd4\uc57c \ud55c\ub2e4. \ucc98\uc74c\uc5d0 \ud14c\uc2a4\ud2b8\ud55c\ub2e4\uace0 \uadf8\ub0e5 \ub194\ub480\ub2e4\uac00, <a href=\"https:\/\/m.do.co\/c\/06956e5e2802\" title=\"DigitalOcean \ud504\ub85c\ub355\uc158 \ud074\ub77c\uc6b0\ub4dc\" rel=\"nofollow sponsored\" target=\"_blank\">\ud504\ub85c\ub355\uc158<\/a> \uc804\ud658\ud560 \ub54c \ucd08\uae30 secret\uc744 \uc0ad\uc81c\ud558\uc9c0 \uc54a\uc544\uc11c \ub098\uc911\uc5d0 \ubcf4\uc548 \uac80\ud1a0\uc5d0\uc11c \uc9c0\uc801\ubc1b\uc740 \uc801\uc774 \uc788\ub2e4. \uc0ac\uc18c\ud55c \uac83 \uac19\uc544\ub3c4 \uc774\ub7f0 \uac8c \uc313\uc774\uba74 \ub098\uc911\uc5d0 \uace8\uce58\uc544\ud30c\uc9c4\ub2e4.<\/p>\n<p>\uc124\uce58 \ud6c4 \uccab \ubc88\uc9f8 Application\uc744 \uc5f0\uacb0\ud558\ub294 \ubc29\ubc95\uc740 \ub450 \uac00\uc9c0\ub2e4 \u2014 UI\uc5d0\uc11c \ud558\uac70\ub098, YAML\ub85c \ud558\uac70\ub098. \ub098\ub294 \ucc98\uc74c\uc5d0 UI\ub85c \ud574\ubcf4\uace0 \uac10\uc744 \uc7a1\uc740 \ub2e4\uc74c YAML \ubc29\uc2dd\uc73c\ub85c \uc804\ud658\ud588\ub2e4. YAML \ubc29\uc2dd\uc774 \uad00\ub9ac\ud558\uae30 \ud3b8\ud558\uace0, \ubb34\uc5c7\ubcf4\ub2e4 Application \uc124\uc815 \uc790\uccb4\ub97c Git\uc73c\ub85c \uad00\ub9ac\ud560 \uc218 \uc788\ub2e4\ub294 \uc810\uc5d0\uc11c GitOps \ucca0\ud559\uc5d0 \ub354 \ub9de\ub294\ub2e4.<\/p>\n<pre><code class=\"language-yaml\">apiVersion: argoproj.io\/v1alpha1\nkind: Application\nmetadata:\n  name: my-api-service\n  namespace: argocd\nspec:\n  project: default\n  source:\n    repoURL: https:\/\/github.com\/my-org\/k8s-manifests\n    targetRevision: HEAD\n    path: apps\/api-service\n  destination:\n    server: https:\/\/kubernetes.default.svc\n    namespace: <a href=\"https:\/\/m.do.co\/c\/06956e5e2802\" title=\"DigitalOcean for Production Workloads\" rel=\"nofollow sponsored\" target=\"_blank\">production<\/a>\n  syncPolicy:\n    automated:\n      prune: true       # Git\uc5d0\uc11c \uc0ad\uc81c\ub41c \ub9ac\uc18c\uc2a4\ub294 \ud074\ub7ec\uc2a4\ud130\uc5d0\uc11c\ub3c4 \uc0ad\uc81c\n      selfHeal: true    # \ud074\ub7ec\uc2a4\ud130 \uc0c1\ud0dc\uac00 Git\uacfc \ub2ec\ub77c\uc9c0\uba74 \uc790\ub3d9\uc73c\ub85c \ub418\ub3cc\ub9bc\n    syncOptions:\n      - CreateNamespace=true\n<\/code><\/pre>\n<p><code>prune: true<\/code>\uc640 <code>selfHeal: true<\/code>\ub294 \uc870\uc2ec\ud574\uc57c \ud55c\ub2e4. \ud2b9\ud788 prune \u2014 Git\uc5d0\uc11c \uc2e4\uc218\ub85c \ud30c\uc77c\uc744 \uc9c0\uc6e0\ub2e4\uac00 \ud074\ub7ec\uc2a4\ud130\uc5d0\uc11c\ub3c4 Deployment\uac00 \uc0ad\uc81c\ub418\ub294 \uc0c1\ud669\uc744 \uacbd\ud5d8\ud558\uace0 \uc2f6\uc9c0 \uc54a\uc73c\uba74, \ucc98\uc74c\uc5d4 \uc774\uac78 \uaebc\ub454 \ucc44\ub85c \uc2dc\uc791\ud558\uae38 \uad8c\ud55c\ub2e4. \ub0b4\uac00 \ub531 \uadf8 \uc2e4\uc218\ub97c \ud588\ub2e4. \ub2e4\ud589\ud788 Staging\uc774\uc5c8\uc9c0\ub9cc.<\/p>\n<h2>Sync Policy \uc124\uc815\uc758 \ud604\uc2e4<\/h2>\n<p>\uc790\ub3d9 sync\ub97c \ucf24\uc9c0 \ub9d0\uc9c0\ub294 \ud300 \uc0c1\ud669\uc5d0 \ub530\ub77c \ub2e4\ub974\ub2e4 \u2014 \ub77c\uace0 \ub9d0\ud558\uace0 \uc2f6\uc9c0\ub9cc, \uc194\uc9c1\ud788 \ub098\ub294 Production\uc5d0\uc11c \uc790\ub3d9 sync\ub97c \uaebc\ub193\ub294\ub2e4. Staging\uc740 \uc644\uc804 \uc790\ub3d9, Production\uc740 \uc218\ub3d9 \uc2b9\uc778 \ud6c4 sync.<\/p>\n<p>\uc774\uc720\ub294 \uac04\ub2e8\ud558\ub2e4. main branch\uc5d0 merge\ub410\ub2e4\uace0 \ud574\uc11c &#8220;Production\uc5d0 \ubc14\ub85c \uc62c\ub824\ub3c4 \ub418\ub294 \uc0c1\ud0dc&#8221;\ub77c\ub294 \ubcf4\uc7a5\uc774 \uc5c6\ub2e4. \uc6b0\ub9ac \ud300\uc740 Staging\uc5d0\uc11c \ucd5c\uc18c 30\ubd84 \uc774\uc0c1 \ub3cc\uc544\uac00\ub294 \uac78 \ud655\uc778\ud55c \ub2e4\uc74c\uc5d0 <a href=\"https:\/\/m.do.co\/c\/06956e5e2802\" title=\"DigitalOcean for Production Workloads\" rel=\"nofollow sponsored\" target=\"_blank\">Production<\/a> sync\ub97c \ud2b8\ub9ac\uac70\ud55c\ub2e4. ArgoCD UI\uc5d0\uc11c &#8220;SYNC&#8221; \ubc84\ud2bc \ud55c \ubc88 \ud074\ub9ad\uc774\uba74 \ub05d\uc774\ub77c \ucda9\ubd84\ud788 \ud3b8\ud558\ub2e4.<\/p>\n<p>\uadf8\ub7f0\ub370 \uc5ec\uae30\uc11c \uc8fc\ubaa9\ud560 \uac74 \u2014 syncPolicy\ub97c \uc790\ub3d9\uc73c\ub85c \uc548 \uac78\uc5b4\ub3c4 ArgoCD\ub294 \uc5ec\uc804\ud788 drift\ub97c \uac10\uc9c0\ud574\uc11c OutOfSync \uc0c1\ud0dc\ub97c \ubcf4\uc5ec\uc900\ub2e4. \uc790\ub3d9 \uc218\uc815\uc740 \uc548 \ud558\uc9c0\ub9cc, \ud074\ub7ec\uc2a4\ud130 \uc0c1\ud0dc\uac00 Git\uacfc \ub2ec\ub77c\uc84c\ub2e4\ub294 \uac78 UI\uc640 \uc54c\ub78c\uc73c\ub85c \uc54c\ub824\uc900\ub2e4. \uc774\uac83\ub9cc\uc73c\ub85c\ub3c4 \ucda9\ubd84\ud788 \uac00\uce58 \uc788\ub2e4.<\/p>\n<p>ArgoCD\uc758 Sync Wave \uae30\ub2a5\ub3c4 \uc368\ubcf4\uba74 \ub3cc\uc544\uc624\uae30 \uc5b4\ub835\ub2e4. \uc608\ub97c \ub4e4\uc5b4 Database migration job\uc744 \uba3c\uc800 \uc2e4\ud589\ud558\uace0 \uadf8\ub2e4\uc74c\uc5d0 API server\ub97c <a href=\"https:\/\/m.do.co\/c\/06956e5e2802\" title=\"DigitalOcean\uc73c\ub85c <a href=\"https:\/\/m.do.co\/c\/06956e5e2802\" title=\"DigitalOcean\uc73c\ub85c \ubc30\ud3ec\ud558\uae30\" rel=\"nofollow sponsored\" target=\"_blank\">\ubc30\ud3ec<\/a>\ud558\uae30&#8221; rel=&#8221;nofollow sponsored&#8221; target=&#8221;_blank&#8221;>\ubc30\ud3ec<\/a>\ud558\uace0 \uc2f6\uc744 \ub54c, annotation \ud558\ub098\ub85c \uc21c\uc11c\ub97c \uc815\ud560 \uc218 \uc788\ub2e4:<\/p>\n<pre><code class=\"language-yaml\"># migration job\nmetadata:\n  annotations:\n    argocd.argoproj.io\/sync-wave: &quot;0&quot;  # \uba3c\uc800 \uc2e4\ud589\n\n---\n# api server deployment\nmetadata:\n  annotations:\n    argocd.argoproj.io\/sync-wave: &quot;1&quot;  # \uadf8\ub2e4\uc74c \uc2e4\ud589\n<\/code><\/pre>\n<p>\uc774\uac78 \uc54c\uae30 \uc804\uc5d0\ub294 init container\ub85c \uc5b5\uc9c0\ub85c \uc21c\uc11c\ub97c \ub9de\ucd94\uace0 \uc788\uc5c8\ub294\ub370, Sync Wave\uac00 \ud6e8\uc52c \uae54\ub054\ud558\ub2e4. \ub2e4\ub9cc wave \uc0ac\uc774\uc758 \ub300\uae30 \uc2dc\uac04\uc774 \uae30\ubcf8\uac12\uc73c\ub85c\ub294 \uc9e7\uc544\uc11c, Health check\uac00 \ub290\ub9b0 \ub9ac\uc18c\uc2a4\uac00 \uc788\uc73c\uba74 \uc9c1\uc811 timeout \uc124\uc815\uc744 \uac74\ub4dc\ub824\uc57c \ud55c\ub2e4.<\/p>\n<h2>\uc6b4\uc601\ud558\uba74\uc11c \ub9c8\uc8fc\uce5c \uc2e4\uc81c \ubb38\uc81c\ub4e4<\/h2>\n<p><strong>\ube44\uacf5\uac1c repo \uc5f0\uacb0\ud560 \ub54c\uc758 \ud568\uc815<\/strong><\/p>\n<p>\ucc98\uc74c\uc5d0 SSH key \uc124\uc815 \ubc29\ubc95\uc744 \ubab0\ub77c\uc11c HTTPS + personal access token\uc73c\ub85c \uc5f0\uacb0\ud588\ub2e4. \uadf8\ub7f0\ub370 \uc774 \ubc29\ubc95\uc740 token\uc774 \ub9cc\ub8cc\ub418\uac70\ub098 rotate\ub420 \ub54c\ub9c8\ub2e4 ArgoCD \uc124\uc815\uc744 \uc9c1\uc811 \uc5c5\ub370\uc774\ud2b8\ud574\uc57c \ud574\uc11c \ubc88\uac70\ub86d\ub2e4. \uacb0\uad6d SSH \ubc29\uc2dd\uc73c\ub85c \uc804\ud658\ud588\uace0, ArgoCD UI\uc758 Settings &gt; Repositories\uc5d0\uc11c SSH key\ub97c \ub4f1\ub85d\ud558\uba74 \uae54\ub054\ud558\uac8c \ud574\uacb0\ub41c\ub2e4.<\/p>\n<p><strong>App of Apps \ud328\ud134\uc740 \uc120\ud0dd\uc774 \uc544\ub2c8\ub2e4<\/strong><\/p>\n<p>\ud074\ub7ec\uc2a4\ud130\uc5d0 \uc62c\ub824\uc57c \ud558\ub294 Application\uc774 5\uac1c\ub97c \ub118\uc5b4\uac00\uba74, App of Apps \ud328\ud134\uc774 \uac70\uc758 \ud544\uc218\uac00 \ub41c\ub2e4. ArgoCD Application \ub9ac\uc18c\uc2a4\ub4e4\uc744 \uad00\ub9ac\ud558\ub294 \uc0c1\uc704 Application\uc744 \ud558\ub098 \ub9cc\ub4dc\ub294 \ubc29\uc2dd\uc774\ub2e4. \uc774\ub807\uac8c \ud558\uba74 \uc0c8 \uc11c\ube44\uc2a4\ub97c \ucd94\uac00\ud560 \ub54c ArgoCD UI\uc5d0\uc11c \uc9c1\uc811 \ubb54\uac00\ub97c \ud558\uc9c0 \uc54a\uc544\ub3c4, Git\uc5d0 Application YAML \ud30c\uc77c \ud558\ub098\ub97c \ucd94\uac00\ud558\uae30\ub9cc \ud558\uba74 \ub41c\ub2e4.<\/p>\n<p>\uadf8\ub7f0\ub370 \uc774 \ud328\ud134\uc744 \ucc98\uc74c \uc801\uc6a9\ud588\uc744 \ub54c \ud5f7\uac08\ub9b0 \ubd80\ubd84\uc774 \uc788\uc5c8\ub2e4. \uc0c1\uc704 App\uc774 \ud558\uc704 App\ub4e4\uc744 sync\ud560 \ub54c, \ud558\uc704 App \uac01\uac01\uc758 sync \uc124\uc815\uc774 \ub3c5\ub9bd\uc801\uc73c\ub85c \ub3d9\uc791\ud55c\ub2e4. \uc774\uac78 \uc774\ud574 \ubabb\ud558\uace0 \uc0c1\uc704 App\ub9cc sync\ud558\uba74 \ub2e4 \ub420 \uc904 \uc54c\uc558\ub2e4\uac00 \ud55c\ucc38 \uc0bd\uc9c8\ud588\ub2e4.<\/p>\n<p><strong>\ub9ac\uc18c\uc2a4 \uc0ad\uc81c\uac00 \uc548 \ub41c\ub2e4\uace0 \ub2f9\ud669\ud558\uc9c0 \ub9d0 \uac83<\/strong><\/p>\n<p>ArgoCD\ub85c \uad00\ub9ac\ub418\ub294 \ub9ac\uc18c\uc2a4\ub97c \uc9c1\uc811 <code>kubectl delete<\/code>\ub85c \uc9c0\uc6b0\uba74, ArgoCD\uac00 \ub2e4\uc2dc \ub9cc\ub4e4\uc5b4\ubc84\ub9b0\ub2e4 (selfHeal\uc774 \ucf1c\uc838 \uc788\ub294 \uacbd\uc6b0). \uc774\uac78 \ubaa8\ub974\uace0 &#8220;\uc65c \uc0ad\uc81c\uac00 \uc548 \ub418\uc9c0?&#8221; \ud558\uace0 \uc138 \ubc88 \uc2dc\ub3c4\ud55c \ub4a4\uc5d0\uc57c \uae68\ub2ec\uc558\ub2e4. \ub9ac\uc18c\uc2a4\ub97c \uc81c\uac70\ud558\ub824\uba74 Git\uc5d0\uc11c manifest\ub97c \uc9c0\uc6b0\uace0 sync\ud574\uc57c \ud55c\ub2e4. \ub2f9\uc5f0\ud55c \uc598\uae30\uc9c0\ub9cc, GitOps\ub97c \ucc98\uc74c \ub3c4\uc785\ud560 \ub54c\ub294 \uc774 \uc0ac\uace0\ubc29\uc2dd\uc758 \uc804\ud658\uc774 \uc0dd\uac01\ubcf4\ub2e4 \uc27d\uc9c0 \uc54a\ub2e4. \ud300\uc6d0\ub4e4\ud55c\ud14c\ub3c4 \uc774 \ubd80\ubd84\uc744 \uc124\uba85\ud558\ub294 \ub370 \uc2dc\uac04\uc774 \uc880 \uac78\ub838\ub2e4.<\/p>\n<p>Helm\uc744 \uc4f4\ub2e4\uba74 \u2014 ArgoCD\uc758 Helm \uc9c0\uc6d0\uc740 \uaf64 \uc4f8 \ub9cc\ud558\ub2e4. \uadf8\ub7f0\ub370 values\ub97c environment\ubcc4\ub85c \ub2e4\ub974\uac8c \uac00\uc838\uac00\uace0 \uc2f6\uc5b4\uc11c values file\uc744 \ubcc4\ub3c4 repo\uc5d0 \ub450\ub294 \ubc29\uc2dd\uc744 \uc2dc\ub3c4\ud588\ub2e4\uac00 multiple source \uc124\uc815\uc774 \uc0dd\uac01\ubcf4\ub2e4 \ubcf5\uc7a1\ud574\uc11c \uacb0\uad6d \ud3ec\uae30\ud558\uace0, values file\uc744 manifest repo\uc5d0 \uac19\uc774 \ub450\ub294 \ubc29\uc2dd\uc73c\ub85c \ub2e8\uc21c\ud558\uac8c \ud574\uacb0\ud588\ub2e4. ArgoCD 2.6\ubd80\ud130 multiple source\ub97c \uc9c0\uc6d0\ud558\uae30 \uc2dc\uc791\ud588\ub294\ub370, \ub098\ud55c\ud14c\ub294 \uc544\uc9c1 \ubcf5\uc7a1\ub3c4 \ub300\ube44 \uc774\ub4dd\uc774 \ud06c\uc9c0 \uc54a\ub2e4.<\/p>\n<h2>\ud300\uc5d0 \ub3c4\uc785\ud560 \ub9cc\ud55c\uac00<\/h2>\n<p>\ub098\ub294 &#8220;\uadf8\ub807\ub2e4&#8221;\uace0 \ub9d0\ud558\uaca0\ub2e4. \uc870\uac74 \uc5c6\uc774.<\/p>\n<p>\uc6b0\ub9ac \ud300 \uae30\uc900\uc744 \ub9d0\ud558\uba74 \u2014 5\uba85, Kubernetes \ud074\ub7ec\uc2a4\ud130 2\uac1c (Staging, <a href=\"https:\/\/m.do.co\/c\/06956e5e2802\" title=\"DigitalOcean for Production Workloads\" rel=\"nofollow sponsored\" target=\"_blank\">Production<\/a>), \uc11c\ube44\uc2a4 12\uac1c\ub2e4. \uc774 \uaddc\ubaa8\uc5d0\uc11c ArgoCD \ub3c4\uc785 \ud6c4 <a href=\"https:\/\/m.do.co\/c\/06956e5e2802\" title=\"DigitalOcean\uc73c\ub85c \ubc30\ud3ec\ud558\uae30\" rel=\"nofollow sponsored\" target=\"_blank\">\ubc30\ud3ec<\/a> \uad00\ub828 \uc0ac\uace0\uac00 \ub208\uc5d0 \ub744\uac8c \uc904\uc5c8\ub2e4. \uc815\ud655\ud788\ub294, &#8220;\ub204\uac00 \ubb58 \uc5b8\uc81c <a href=\"https:\/\/m.do.co\/c\/06956e5e2802\" title=\"DigitalOcean\uc73c\ub85c \ubc30\ud3ec\ud558\uae30\" rel=\"nofollow sponsored\" target=\"_blank\">\ubc30\ud3ec<\/a>\ud588\ub294\uc9c0 \ubaa8\ub974\ub294 \uc0c1\ud669&#8221;\uc774 \uc0ac\ub77c\uc9c4 \uac8c \uac00\uc7a5 \ud06c\ub2e4. ArgoCD UI\uc758 sync history\ub97c \ubcf4\uba74 \uc5b8\uc81c \uc5b4\ub5a4 Git commit\uc774 <a href=\"https:\/\/m.do.co\/c\/06956e5e2802\" title=\"DigitalOcean\uc73c\ub85c \ubc30\ud3ec\ud558\uae30\" rel=\"nofollow sponsored\" target=\"_blank\">\ubc30\ud3ec<\/a>\ub410\ub294\uc9c0 \ubc14\ub85c \ubcf4\uc778\ub2e4.<\/p>\n<p>\ub864\ubc31\ub3c4 \ud3b8\ud558\ub2e4. \uc774\uc804 commit\uc73c\ub85c Application\uc758 targetRevision\uc744 \ubc14\uafb8\uace0 sync\ud558\uba74 \ub41c\ub2e4. <code>kubectl rollout undo<\/code>\ubcf4\ub2e4 \uba85\ud655\ud558\ub2e4 \u2014 \uc5b4\ub5a4 \uc0c1\ud0dc\ub85c \ub3cc\uc544\uac00\ub294\uc9c0 Git\uc5d0\uc11c \ub208\uc73c\ub85c \ud655\uc778\ud560 \uc218 \uc788\uc73c\ub2c8\uae4c.<\/p>\n<p>\ub2e8\uc810\ub3c4 \uc788\ub2e4. \ud559\uc2b5 \uace1\uc120\uc774 \uc788\uace0, App of Apps \ud328\ud134\uc774\ub098 \uba40\ud2f0 \ud074\ub7ec\uc2a4\ud130 \uc124\uc815\uc73c\ub85c \uac00\uba74 \ubcf5\uc7a1\ub3c4\uac00 \uc0c1\ub2f9\ud788 \uc62c\ub77c\uac04\ub2e4. ArgoCD \uc790\uccb4\ub3c4 \uacb0\uad6d \ud074\ub7ec\uc2a4\ud130\uc5d0 \uc62c\ub77c\uac00\ub294 \uc11c\ube44\uc2a4\ub77c, \uace0\uac00\uc6a9\uc131 \uc124\uc815\uc744 \uc548 \ud558\uba74 ArgoCD\uac00 \uc7a5\uc560\ub098\ub294 \uc21c\uac04 <a href=\"https:\/\/m.do.co\/c\/06956e5e2802\" title=\"DigitalOcean\uc73c\ub85c \ubc30\ud3ec\ud558\uae30\" rel=\"nofollow sponsored\" target=\"_blank\">\ubc30\ud3ec<\/a> \ud30c\uc774\ud504\ub77c\uc778 \uc804\uccb4\uac00 \ub9c9\ud78c\ub2e4 \u2014 \ubb3c\ub860 \uc774\ubbf8 <a href=\"https:\/\/m.do.co\/c\/06956e5e2802\" title=\"DigitalOcean\uc73c\ub85c \ubc30\ud3ec\ud558\uae30\" rel=\"nofollow sponsored\" target=\"_blank\">\ubc30\ud3ec<\/a>\ub41c \uc11c\ube44\uc2a4\ub4e4\uc740 \uacc4\uc18d \ub3cc\uc544\uac00\uc9c0\ub9cc.<\/p>\n<p>100\uba85 \uc774\uc0c1 \uaddc\ubaa8\uc5d0\uc11c\ub3c4 \uc774 \ubc29\uc2dd\uc774 \ucd5c\uc120\uc778\uc9c0\ub294 \uc194\uc9c1\ud788 \uc798 \ubaa8\ub974\uaca0\ub2e4. Flux CD\ub97c \uc368\ubcf8 \uc0ac\ub78c\ub4e4 \uc598\uae30\ub97c \ub4e4\uc5b4\ubcf4\uba74 \uadf8\ucabd\ub3c4 \ub098\ub984\uc758 \uc7a5\uc810\uc774 \uc788\ub2e4\uace0 \ud558\ub294\ub370, \uc9c1\uc811 \ucda9\ubd84\ud788 \uc368\ubcf4\uc9c0 \uc54a\uc544\uc11c \ube44\uad50\ud558\uae30 \uc5b4\ub835\ub2e4.<\/p>\n<p>\uadf8\ub798\ub3c4 \ub0b4 \uad8c\uace0\ub294 \uba85\ud655\ud558\ub2e4: Kubernetes\ub97c \uc4f0\uace0 \uc788\ub2e4\uba74 ArgoCD\ub97c \ub3c4\uc785\ud574\ub77c. \ucc98\uc74c \uc124\uc815\uc5d0 \ubc18\ub098\uc808 \uc815\ub3c4 \ud22c\uc790\ud558\uba74, \uc774\ud6c4 <a href=\"https:\/\/m.do.co\/c\/06956e5e2802\" title=\"DigitalOcean\uc73c\ub85c \ubc30\ud3ec\ud558\uae30\" rel=\"nofollow sponsored\" target=\"_blank\">\ubc30\ud3ec<\/a> \uc2a4\ud2b8\ub808\uc2a4\uac00 \ud655\uc2e4\ud788 \uc904\uc5b4\ub4e0\ub2e4. \uae08\uc694\uc77c \uc624\ud6c4\uc5d0\ub3c4 <a href=\"https:\/\/m.do.co\/c\/06956e5e2802\" title=\"DigitalOcean\uc73c\ub85c \ubc30\ud3ec\ud558\uae30\" rel=\"nofollow sponsored\" target=\"_blank\">\ubc30\ud3ec<\/a>\ud560 \uc218 \uc788\uac8c \ub410\ub2e4 \u2014 \ubb50, \uae08\uc694\uc77c <a href=\"https:\/\/m.do.co\/c\/06956e5e2802\" title=\"DigitalOcean\uc73c\ub85c \ubc30\ud3ec\ud558\uae30\" rel=\"nofollow sponsored\" target=\"_blank\">\ubc30\ud3ec<\/a> \uc790\uccb4\ub97c \ud53c\ud558\ub294 \uac8c \ub354 \ud604\uba85\ud558\uae34 \ud558\uc9c0\ub9cc.<\/p>\n<p><!-- Reviewed: 2026-03-08 | Status: ready_to_publish | Changes: meta_description rewritten (longer, action-oriented); \"\uac1c\ub150 \uc815\ub9ac\ubd80\ud130 \ud574\uc57c \ud55c\ub2e4\" opener removed, replaced with direct claim; added Pull\/Push framing with specific technical label; added parenthetical aside in install section (human mistake acknowledgment); \"multiple source\uac00 \uc815\uc2dd \uc9c0\uc6d0\ub410\ub294\ub370\" corrected to \"\uc9c0\uc6d0\ud558\uae30 \uc2dc\uc791\ud588\ub294\ub370\" (2.6 was alpha, not GA) --><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\uc218\ub3d9 kubectl apply \ud55c \ubc88\uc5d0 \ud504\ub85c\ub355\uc158\uc744 \ub0a0\ub9b4 \ubed4\ud55c \ub4a4 ArgoCD 2.10\uc744 \uc9c1\uc811 \uad6c\ucd95\ud588\uc2b5\ub2c8\ub2e4. \uc124\uce58 \ud568\uc815, Sync Policy, App of Apps \ud328\ud134, \ube44\uacf5\uac1c \ub808\ud3ec \uc5f0\uacb0\uae4c\uc9c0 \uc2e4\uc81c \uc6b4\uc601 \uacbd\ud5d8\uc744 \uc194\uc9c1\ud558\uac8c \uc815\ub9ac\ud569\ub2c8\ub2e4.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[1],"tags":[],"class_list":["post-117","post","type-post","status-publish","format-standard","hentry","category-general"],"_links":{"self":[{"href":"https:\/\/blog.rebalai.com\/ko\/wp-json\/wp\/v2\/posts\/117","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.rebalai.com\/ko\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.rebalai.com\/ko\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.rebalai.com\/ko\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.rebalai.com\/ko\/wp-json\/wp\/v2\/comments?post=117"}],"version-history":[{"count":14,"href":"https:\/\/blog.rebalai.com\/ko\/wp-json\/wp\/v2\/posts\/117\/revisions"}],"predecessor-version":[{"id":226,"href":"https:\/\/blog.rebalai.com\/ko\/wp-json\/wp\/v2\/posts\/117\/revisions\/226"}],"wp:attachment":[{"href":"https:\/\/blog.rebalai.com\/ko\/wp-json\/wp\/v2\/media?parent=117"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.rebalai.com\/ko\/wp-json\/wp\/v2\/categories?post=117"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.rebalai.com\/ko\/wp-json\/wp\/v2\/tags?post=117"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}