{"id":1673,"date":"2026-04-21T15:41:39","date_gmt":"2026-04-21T15:41:39","guid":{"rendered":"https:\/\/wayhope.kro.kr\/?p=1673"},"modified":"2026-08-31T07:32:39","modified_gmt":"2026-08-31T07:32:39","slug":"kubernetes-%ed%95%b5%ec%8b%ac-%ec%a0%95%eb%a6%ac","status":"publish","type":"post","link":"https:\/\/wayhope.kro.kr\/?p=1673","title":{"rendered":"Kubernetes \ud575\uc2ec \uc815\ub9ac"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Kubernetes\ub294 \ucee8\ud14c\uc774\ub108\ud654\ub41c \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \uc5ec\ub7ec \uc11c\ubc84\uc5d0\uc11c \uc548\uc815\uc801\uc73c\ub85c \uc2e4\ud589\ud558\uace0 \uad00\ub9ac\ud558\uae30 \uc704\ud55c \uc624\ucf00\uc2a4\ud2b8\ub808\uc774\uc158 \ud50c\ub7ab\ud3fc\uc774\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Docker\ub97c \uc0ac\uc6a9\ud558\uba74 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \ucee8\ud14c\uc774\ub108\ub85c \ud328\ud0a4\uc9d5\ud574\uc11c \uc2e4\ud589\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ubb38\uc81c\ub294 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uacfc \ucee8\ud14c\uc774\ub108\uac00 \ub9ce\uc544\uc84c\uc744 \ub54c\ubd80\ud130 \uc2dc\uc791\ub41c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Server 1 -&gt; Container A \/ Container B \/ Container C\nServer 2 -&gt; Container D \/ Container E \/ Container F\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ucee8\ud14c\uc774\ub108\uac00 \uc218\uc2ed, \uc218\ubc31 \uac1c\ub85c \ub298\uc5b4\ub098\uba74 \uc9c1\uc811 \uc2e4\ud589\ud558\uace0 \uad00\ub9ac\ud558\uae30 \uc5b4\ub835\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc5b4\ub5a4 \uc11c\ubc84\uc5d0 \ucee8\ud14c\uc774\ub108\ub97c \ubc30\uce58\ud560\uc9c0, \uc7a5\uc560\uac00 \ubc1c\uc0dd\ud558\uba74 \uc5b4\ub5bb\uac8c \ub2e4\uc2dc \uc2e4\ud589\ud560\uc9c0, \ud2b8\ub798\ud53d\uc774 \uc99d\uac00\ud558\uba74 \uc5b4\ub5bb\uac8c \ubcf5\uc81c\ud560\uc9c0, \uc5c5\ub370\uc774\ud2b8\ub97c \uc5b4\ub5bb\uac8c \uc218\ud589\ud560\uc9c0 \uad00\ub9ac\ud574\uc57c \ud55c\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Kubernetes\ub294 \uc774\ub7f0 \ucee8\ud14c\uc774\ub108 \uc6b4\uc601 \uc791\uc5c5\uc744 \uc120\uc5b8\uc801\uc778 \ubc29\uc2dd\uc73c\ub85c \uad00\ub9ac\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Developer -&gt; Desired State -&gt; Kubernetes -&gt; Container \uc2e4\ud589\nDeveloper -&gt; Desired State -&gt; Kubernetes -&gt; \uc7a5\uc560 \ubcf5\uad6c\nDeveloper -&gt; Desired State -&gt; Kubernetes -&gt; Scale\nDeveloper -&gt; Desired State -&gt; Kubernetes -&gt; Load Balancing\nDeveloper -&gt; Desired State -&gt; Kubernetes -&gt; Rolling Update\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Docker\uc640 Kubernetes\uc758 \uad00\uacc4<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Docker\uc640 Kubernetes\ub294 \uacbd\uc7c1 \uad00\uacc4\ub85c \uc774\ud574\ud558\uba74 \uc548 \ub41c\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Docker\ub294 \uc8fc\ub85c <strong>\ucee8\ud14c\uc774\ub108\ub97c \ub9cc\ub4e4\uace0 \uc2e4\ud589\ud558\ub294 \uae30\uc220<\/strong>\uc774\uace0, Kubernetes\ub294 \uc5ec\ub7ec \ucee8\ud14c\uc774\ub108\ub97c <strong>\ubc30\ud3ec\ud558\uace0 \uc6b4\uc601\ud558\ub294 \uc2dc\uc2a4\ud15c<\/strong>\uc774\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc608\ub97c \ub4e4\uc5b4 Docker\ub97c \uc0ac\uc6a9\ud558\uba74 \ub2e4\uc74c\uacfc \uac19\uc774 \ucee8\ud14c\uc774\ub108 \ud558\ub098\ub97c \uc2e4\ud589\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Docker -&gt; Game Server Container\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Kubernetes\ub97c \uc0ac\uc6a9\ud558\uba74 \uc5ec\ub7ec \uc11c\ubc84\uc5d0 \ucee8\ud14c\uc774\ub108\ub97c \ubc30\uce58\ud558\uace0 \uc0c1\ud0dc\ub97c \uad00\ub9ac\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Kubernetes Cluster -&gt; Node 1 -&gt; Game Server \/ API Server\nKubernetes Cluster -&gt; Node 2 -&gt; Game Server \/ Database Proxy\nKubernetes Cluster -&gt; Node 3 -&gt; Game Server \/ API Server\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Kubernetes\uac00 \uc9c1\uc811 \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \ucf54\ub4dc\ub97c \uc2e4\ud589\ud558\ub294 \uac83\uc774 \uc544\ub2c8\ub77c \ucee8\ud14c\uc774\ub108 \ub7f0\ud0c0\uc784\uc744 \ud1b5\ud574 \ucee8\ud14c\uc774\ub108\ub97c \uc2e4\ud589\ud55c\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ud604\uc7ac Kubernetes \ud658\uacbd\uc5d0\uc11c\ub294 containerd \uac19\uc740 \ucee8\ud14c\uc774\ub108 \ub7f0\ud0c0\uc784\uc744 \ub9ce\uc774 \uc0ac\uc6a9\ud55c\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Kubernetes Cluster<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Kubernetes\uc758 \uc804\uccb4 \uc2e4\ud589 \ud658\uacbd\uc744 Cluster\ub77c\uace0 \ud55c\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cluster\ub294 \uc5ec\ub7ec Node\ub85c \uad6c\uc131\ub41c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Kubernetes Cluster -&gt; Control Plane\nKubernetes Cluster -&gt; Worker Nodes -&gt; Node 1 \/ Node 2 \/ Node 3\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Node\ub294 \uc2e4\uc81c\ub85c \ucee8\ud14c\uc774\ub108\uac00 \uc2e4\ud589\ub418\ub294 \uc11c\ubc84\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">VM\uc77c \uc218\ub3c4 \uc788\uace0 \ubb3c\ub9ac \uc11c\ubc84\uc77c \uc218\ub3c4 \uc788\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Control Plane\uc740 Cluster \uc804\uccb4\ub97c \uad00\ub9ac\ud558\uace0 Worker Node\uc5d0\uc11c \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc774 \uc2e4\ud589\ub41c\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Control Plane<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Control Plane\uc740 Kubernetes Cluster\uc758 \uc0c1\ud0dc\ub97c \uad00\ub9ac\ud558\ub294 \uc601\uc5ed\uc774\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ub300\ud45c\uc801\uc778 \uad6c\uc131 \uc694\uc18c\ub294 \ub2e4\uc74c\uacfc \uac19\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Control Plane -&gt; API Server \/ Scheduler \/ Controller Manager \/ etcd\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uac01\uac01 \uc5ed\ud560\uc774 \ub2e4\ub974\ub2e4.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">API Server<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Kubernetes\uc758 \uc911\uc2ec \uc778\ud130\ud398\uc774\uc2a4\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc0ac\uc6a9\uc790\uac00 <code>kubectl<\/code>\ub85c \uba85\ub839\uc744 \uc2e4\ud589\ud558\uac70\ub098 \ub2e4\ub978 \uc2dc\uc2a4\ud15c\uc774 Kubernetes API\ub97c \ud638\ucd9c\ud558\uba74 API Server\ub97c \ud1b5\ud574 Cluster\uc640 \ud1b5\uc2e0\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>kubectl -&gt; API Server -&gt; Kubernetes Resources\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">etcd<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Kubernetes Cluster\uc758 \uc0c1\ud0dc \ub370\uc774\ud130\ub97c \uc800\uc7a5\ud558\ub294 \ubd84\uc0b0 Key-Value Store\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pod\uc774 \uba87 \uac1c \uc2e4\ud589\ub418\uc5b4\uc57c \ud558\ub294\uc9c0, \uc5b4\ub5a4 \uc124\uc815\uc774 \uc801\uc6a9\ub418\uc5b4 \uc788\ub294\uc9c0 \ub4f1\uc758 Cluster \uc0c1\ud0dc\ub97c \uc800\uc7a5\ud55c\ub2e4.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Scheduler<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\uc0c8\ub85c\uc6b4 Pod\uc744 \uc5b4\ub290 Node\uc5d0\uc11c \uc2e4\ud589\ud560\uc9c0 \uacb0\uc815\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>New Pod -&gt; Scheduler -&gt; Node 1 \/ Node 2 \/ Node 3\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">CPU\ub098 \uba54\ubaa8\ub9ac \uac19\uc740 \ub9ac\uc18c\uc2a4\uc640 \uc5ec\ub7ec \uc870\uac74\uc744 \uace0\ub824\ud574\uc11c \uc801\uc808\ud55c Node\ub97c \uc120\ud0dd\ud55c\ub2e4.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Controller Manager<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\ud604\uc7ac \uc0c1\ud0dc\uc640 \uc0ac\uc6a9\uc790\uac00 \uc6d0\ud558\ub294 \uc0c1\ud0dc\ub97c \uacc4\uc18d \ube44\uad50\ud558\uba74\uc11c \ud544\uc694\ud55c \uc791\uc5c5\uc744 \uc218\ud589\ud55c\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774 \ubd80\ubd84\uc774 Kubernetes\uc758 \ud575\uc2ec\uc801\uc778 \ud2b9\uc9d5\uacfc \uc5f0\uacb0\ub41c\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\uc120\uc5b8\uc801 \uad00\ub9ac<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Kubernetes\ub294 \uba85\ub839\uc744 \ud558\ub098\uc529 \uc9c1\uc811 \uc2e4\ud589\ud558\ub294 \ubc29\uc2dd\ubcf4\ub2e4 <strong>\uc6d0\ud558\ub294 \uc0c1\ud0dc(Desired State)\ub97c \uc120\uc5b8\ud558\ub294 \ubc29\uc2dd<\/strong>\uc744 \uc0ac\uc6a9\ud55c\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc608\ub97c \ub4e4\uc5b4 \ub2e4\uc74c\uacfc \uac19\uc774 \uc815\uc758\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>apiVersion: apps\/v1\nkind: Deployment\n\nmetadata:\n  name: game-server\n\nspec:\n  replicas: 3\n\n  selector:\n    matchLabels:\n      app: game-server\n\n  template:\n    metadata:\n      labels:\n        app: game-server\n\n    spec:\n      containers:\n        - name: game-server\n          image: my-game-server:1.0\n          ports:\n            - containerPort: 8080\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc5ec\uae30\uc11c \uc911\uc694\ud55c \ubd80\ubd84\uc740:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>replicas: 3\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uac1c\ubc1c\uc790\uac00 \uc6d0\ud558\ub294 \uc0c1\ud0dc\ub97c &#8220;\uac8c\uc784 \uc11c\ubc84 Pod\uc774 3\uac1c \uc2e4\ud589\ub418\ub294 \uc0c1\ud0dc&#8221;\ub77c\uace0 \uc120\uc5b8\ud55c \uac83\uc774\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Kubernetes\ub294 \ud604\uc7ac \uc0c1\ud0dc\ub97c \ud655\uc778\ud558\uace0 \uc6d0\ud558\ub294 \uc0c1\ud0dc\uc640 \ub2e4\ub974\uba74 \uc870\uc815\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Desired State -&gt; replicas = 3 -&gt; Kubernetes -&gt; Current State -&gt; Pod 3\uac1c \uc2e4\ud589\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Pod \ud558\ub098\uac00 \uc8fd\uc73c\uba74 Kubernetes\ub294 \ub2e4\uc2dc Pod\uc744 \ub9cc\ub4e4\uc5b4 \uc6d0\ud558\ub294 \uc0c1\ud0dc\uc778 3\uac1c\ub97c \uc720\uc9c0\ud558\ub824\uace0 \ud55c\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\uac83\uc774 Kubernetes\uc758 Controller \uae30\ubc18 \ub3d9\uc791 \ubc29\uc2dd\uc774\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Pod<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Pod\uc740 Kubernetes\uc5d0\uc11c \ucee8\ud14c\uc774\ub108\uac00 \uc2e4\ud589\ub418\ub294 \uac00\uc7a5 \uae30\ubcf8\uc801\uc778 \ubc30\ud3ec \ub2e8\uc704\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ubcf4\ud1b5 \ud558\ub098\uc758 \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \ucee8\ud14c\uc774\ub108\ub97c \ud558\ub098\uc758 Pod\uc5d0 \ub123\uc9c0\ub9cc, \ubc00\uc811\ud558\uac8c \uacb0\ud569\ub41c \uc5ec\ub7ec \ucee8\ud14c\uc774\ub108\uac00 \ud558\ub098\uc758 Pod\uc5d0\uc11c \ud568\uaed8 \uc2e4\ud589\ub420 \uc218\ub3c4 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Pod -&gt; Container\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ub610\ub294:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Pod -&gt; Application Container \/ Sidecar Container\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Pod\uc740 \uc790\uccb4\uc801\uc73c\ub85c \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \uc7a5\uae30\uac04 \uad00\ub9ac\ud558\ub294 \uac1d\uccb4\ub77c\uae30\ubcf4\ub2e4 Kubernetes\uac00 \ucee8\ud14c\uc774\ub108\ub97c \uc2e4\ud589\ud558\uace0 \uad00\ub9ac\ud558\uae30 \uc704\ud55c \ub2e8\uc704\uc5d0 \uac00\uae5d\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc2e4\ubb34\uc5d0\uc11c\ub294 Pod\uc744 \uc9c1\uc811 \uad00\ub9ac\ud558\uae30\ubcf4\ub2e4 Deployment \uac19\uc740 \uc0c1\uc704 \ub9ac\uc18c\uc2a4\ub97c \ud1b5\ud574 \uad00\ub9ac\ud558\ub294 \uacbd\uc6b0\uac00 \ub9ce\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Deployment<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Deployment\ub294 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc758 Pod\uc744 \uc120\uc5b8\uc801\uc73c\ub85c \uad00\ub9ac\ud558\uae30 \uc704\ud55c Kubernetes \ub9ac\uc18c\uc2a4\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc608\ub97c \ub4e4\uc5b4:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>spec -&gt; replicas: 3\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\ub77c\uace0 \ud558\uba74 Kubernetes\uac00 \ud574\ub2f9 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc758 Pod\uc744 3\uac1c \uc720\uc9c0\ud558\ub3c4\ub85d \uad00\ub9ac\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Deployment -&gt; ReplicaSet -&gt; Pod \/ Pod \/ Pod -&gt; Container\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Deployment\ub294 \ubc30\ud3ec \ubc84\uc804 \uad00\ub9ac\uc640 Rolling Update\uc5d0\ub3c4 \uc0ac\uc6a9\ub41c\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\ubbf8 \uc2e4\ud589 \uc911\uc778 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \uc0c8\ub85c\uc6b4 \uc774\ubbf8\uc9c0 \ubc84\uc804\uc73c\ub85c \uc5c5\ub370\uc774\ud2b8\ud560 \uc218\ub3c4 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Version 1 -&gt; Pod 1 \/ Pod 2 \/ Pod 3 -&gt; Rolling Update -&gt; Version 2 -&gt; Pod 1 \/ Pod 2 \/ Pod 3\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uae30\uc874 Pod\uc744 \ud55c\uaebc\ubc88\uc5d0 \uc81c\uac70\ud558\uc9c0 \uc54a\uace0 \uc810\uc9c4\uc801\uc73c\ub85c \uc0c8\ub85c\uc6b4 \ubc84\uc804\uc73c\ub85c \uad50\uccb4\ud558\ub294 \ubc29\uc2dd\uc774\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Service<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Pod\uc5d0\ub294 \ubb38\uc81c\uac00 \ud558\ub098 \uc788\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pod\uc740 \uc5b8\uc81c\ub4e0 \uc0ad\uc81c\ub418\uace0 \ub2e4\uc2dc \uc0dd\uc131\ub420 \uc218 \uc788\uae30 \ub54c\ubb38\uc5d0 IP\uac00 \uace0\uc815\ub418\uc5b4 \uc788\ub2e4\uace0 \uac00\uc815\ud558\uba74 \uc548 \ub41c\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ub530\ub77c\uc11c \uc548\uc815\uc801\uc778 \uc811\uadfc \uc9c0\uc810\uc774 \ud544\uc694\ud558\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774 \uc5ed\ud560\uc744 \ud558\ub294 \uac83\uc774 Service\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Client -&gt; Service -&gt; Pod \/ Pod \/ Pod\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Service\ub294 \uc5ec\ub7ec Pod\uc744 \ud558\ub098\uc758 \ub17c\ub9ac\uc801\uc778 \ub124\ud2b8\uc6cc\ud06c \uc5d4\ub4dc\ud3ec\uc778\ud2b8\ub85c \ubb36\uc5b4\uc900\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc608\ub97c \ub4e4\uc5b4 API \uc11c\ubc84 Pod\uc774 3\uac1c \uc2e4\ud589 \uc911\uc774\ub77c\uba74:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>api-service -&gt; API Pod 1 \/ API Pod 2 \/ API Pod 3\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ud074\ub77c\uc774\uc5b8\ud2b8\ub294 \uac01\uac01\uc758 Pod IP\ub97c \uc9c1\uc811 \uc54c \ud544\uc694 \uc5c6\uc774 Service\ub97c \ud1b5\ud574 \uc811\uadfc\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Ingress<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\uc678\ubd80\uc5d0\uc11c Kubernetes \ub0b4\ubd80\uc758 HTTP\/HTTPS \uc11c\ube44\uc2a4\ub97c \uc811\uadfc\ud560 \ub54c\ub294 Ingress\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc608\ub97c \ub4e4\uc5b4 \ub2e4\uc74c\uacfc \uac19\uc740 \uad6c\uc870\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Internet -&gt; Ingress -&gt; frontend-service\nInternet -&gt; Ingress -&gt; api-service\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">URL\uc774\ub098 Host \ub4f1\uc744 \uae30\uc900\uc73c\ub85c \uc694\uccad\uc744 \uc801\uc808\ud55c Service\ub85c \ub77c\uc6b0\ud305\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>example.com -&gt; frontend-service\napi.example.com -&gt; api-service\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ub2e4\ub9cc \ucd5c\uadfc Kubernetes \uc0dd\ud0dc\uacc4\uc5d0\uc11c\ub294 Gateway API\ub3c4 \uc0ac\uc6a9\ub418\ubbc0\ub85c Ingress\ub9cc\uc774 \uc720\uc77c\ud55c \uc678\ubd80 \ud2b8\ub798\ud53d \uad00\ub9ac \ubc29\uc2dd\uc740 \uc544\ub2c8\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">ConfigMap\uacfc Secret<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\uc560\ud50c\ub9ac\ucf00\uc774\uc158 \uc124\uc815\uc744 \ucee8\ud14c\uc774\ub108 \uc774\ubbf8\uc9c0\uc5d0 \uc9c1\uc811 \ub123\ub294 \uac83\uc740 \uad00\ub9ac\ud558\uae30 \uc88b\uc9c0 \uc54a\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc608\ub97c \ub4e4\uc5b4 \uac1c\ubc1c \ud658\uacbd\uacfc \uc6b4\uc601 \ud658\uacbd\uc758 \uc124\uc815\uc774 \ub2e4\ub97c \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Development -&gt; DB_HOST = dev-db\nProduction -&gt; DB_HOST = prod-db\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Kubernetes\uc5d0\uc11c\ub294 ConfigMap\uc744 \uc0ac\uc6a9\ud574 \uc77c\ubc18\uc801\uc778 \uc124\uc815\uac12\uc744 \uad00\ub9ac\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>apiVersion: v1\nkind: ConfigMap\n\nmetadata:\n  name: game-config\n\ndata:\n  LOG_LEVEL: \"info\"\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ube44\ubc00\ubc88\ud638\ub098 API Key \uac19\uc740 \ubbfc\uac10\ud55c \uac12\uc740 Secret\uc744 \uc0ac\uc6a9\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ConfigMap -&gt; \uc77c\ubc18 \uc124\uc815\nSecret -&gt; \ubbfc\uac10\ud55c \uc124\uc815\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ub2e4\ub9cc Kubernetes Secret\uc774 \uae30\ubcf8\uc801\uc73c\ub85c \ubaa8\ub4e0 \ubcf4\uc548 \ubb38\uc81c\ub97c \ud574\uacb0\ud574\uc8fc\ub294 \uac83\uc740 \uc544\ub2c8\ub2e4. \uc800\uc7a5 \ubc29\uc2dd\uacfc \uc811\uadfc \uad8c\ud55c, \uc554\ud638\ud654 \uc124\uc815 \ub4f1\uc744 \ubcc4\ub3c4\ub85c \uace0\ub824\ud574\uc57c \ud55c\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Namespace<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\ud558\ub098\uc758 Cluster\uc5d0\uc11c \uc5ec\ub7ec \ud658\uacbd\uc774\ub098 \ud300\uc758 \ub9ac\uc18c\uc2a4\ub97c \ub17c\ub9ac\uc801\uc73c\ub85c \ubd84\ub9ac\ud560 \ub54c Namespace\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Cluster -&gt; namespace: dev -&gt; Deployment \/ Service \/ ConfigMap\nCluster -&gt; namespace: staging -&gt; Deployment \/ Service \/ ConfigMap\nCluster -&gt; namespace: production -&gt; Deployment \/ Service \/ ConfigMap\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ub9ac\uc18c\uc2a4\ub97c \ub17c\ub9ac\uc801\uc73c\ub85c \uad6c\ubd84\ud558\uace0 \uad8c\ud55c\uc774\ub098 \ub9ac\uc18c\uc2a4 \uc815\ucc45\uc744 \uc801\uc6a9\ud558\ub294 \ub370 \ud65c\uc6a9\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Kubernetes\uc758 \uc7a5\uc560 \ubcf5\uad6c<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Kubernetes\ub97c \uc0ac\uc6a9\ud558\ub294 \ub300\ud45c\uc801\uc778 \uc774\uc720 \uc911 \ud558\ub098\uac00 \uc790\ub3d9 \ubcf5\uad6c\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Deployment\uc5d0\uc11c \ub2e4\uc74c\uacfc \uac19\uc774 \uc124\uc815\ud588\ub2e4\uace0 \ud558\uc790.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>replicas: 3\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ud604\uc7ac \uc0c1\ud0dc\uac00:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Pod 1 \/ Pod 2 \/ Pod 3\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc778\ub370 Pod 2\uac00 \uc7a5\uc560\ub85c \uc885\ub8cc\ub418\uba74:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Pod 1 \/ Pod 3\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ub9cc \ub0a8\ub294\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Controller\ub294 \uc6d0\ud558\ub294 \uc0c1\ud0dc\uac00 3\uac1c\ub77c\ub294 \uac83\uc744 \uc54c\uace0 \uc788\uae30 \ub54c\ubb38\uc5d0 \uc0c8\ub85c\uc6b4 Pod\uc744 \uc0dd\uc131\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Pod 1 \/ Pod 3 -&gt; Pod 4\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ub2e4\uc2dc \uc6d0\ud558\ub294 \uc0c1\ud0dc\uc5d0 \ub9de\ucdb0\uc9c4\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\ub7f0 \ubc29\uc2dd\uc73c\ub85c Kubernetes\ub294 <strong>\ud604\uc7ac \uc0c1\ud0dc\ub97c \uc9c0\uc18d\uc801\uc73c\ub85c \uad00\ucc30\ud558\uace0 \uc120\uc5b8\ub41c \uc0c1\ud0dc\uc5d0 \ub9de\ucdb0 \uc870\uc815\ud55c\ub2e4.<\/strong><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Scaling<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\ud2b8\ub798\ud53d\uc774 \uc99d\uac00\ud558\uba74 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc758 Pod \uc218\ub97c \ub298\ub9b4 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Before -&gt; Service -&gt; Pod \/ Pod\nAfter -&gt; Service -&gt; Pod \/ Pod \/ Pod \/ Pod \/ Pod\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc9c1\uc811 Replica \uc218\ub97c \ubcc0\uacbd\ud560 \uc218\ub3c4 \uc788\uace0, CPU \uc0ac\uc6a9\ub7c9\uc774\ub098 \uba54\ubaa8\ub9ac \uc0ac\uc6a9\ub7c9 \uac19\uc740 \uc9c0\ud45c\ub97c \uae30\ubc18\uc73c\ub85c Horizontal Pod Autoscaler(HPA)\ub97c \uc0ac\uc6a9\ud560 \uc218\ub3c4 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Traffic -&gt; HPA -&gt; Deployment -&gt; Pod \/ Pod \/ Pod \/ Pod\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ud2b8\ub798\ud53d\uc774 \uc904\uc5b4\ub4e4\uba74 Pod \uc218\ub97c \ub2e4\uc2dc \uc904\uc774\ub294 \uac83\ub3c4 \uac00\ub2a5\ud558\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Kubernetes\uc5d0\uc11c \ub124\ud2b8\uc6cc\ud06c \uad6c\uc870<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Kubernetes\uc5d0\uc11c\ub294 Pod \uac04 \ud1b5\uc2e0\ub3c4 \uc911\uc694\ud55c \ubd80\ubd84\uc774\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uae30\ubcf8\uc801\uc778 \uad6c\uc870\ub97c \ub2e8\uc21c\ud654\ud558\uba74 \ub2e4\uc74c\uacfc \uac19\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Pod A -&gt; Network -&gt; Pod B\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Pod\ub07c\ub9ac\ub294 \uc11c\ub85c \ud1b5\uc2e0\ud560 \uc218 \uc788\uace0 Service\ub97c \ud1b5\ud574 \ud2b9\uc815 \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \uadf8\ub8f9\uc5d0 \uc811\uadfc\ud560 \uc218\ub3c4 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Pod A -&gt; Service -&gt; Pod B \/ Pod C \/ Pod D\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc678\ubd80 \uc694\uccad\uc740 \uc77c\ubc18\uc801\uc73c\ub85c Load Balancer, Ingress \ub610\ub294 Gateway \uac19\uc740 \uc678\ubd80 \uc811\uadfc \uacc4\uce35\uc744 \uac70\uccd0 Service\uc640 Pod\uc73c\ub85c \uc804\ub2ec\ub41c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>External Request -&gt; Load Balancer \/ Ingress \/ Gateway -&gt; Service -&gt; Pod\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Kubernetes\uc5d0\uc11c \uc800\uc7a5\uc18c<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Pod\uc758 \ud30c\uc77c \uc2dc\uc2a4\ud15c\uc740 \uc601\uad6c \uc800\uc7a5\uc18c\ub85c \uc0ac\uc6a9\ud558\uae30\uc5d0 \uc801\ud569\ud558\uc9c0 \uc54a\uc740 \uacbd\uc6b0\uac00 \ub9ce\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pod\uc774 \uc0ad\uc81c\ub418\uace0 \uc0c8\ub85c \uc0dd\uc131\ub418\uba74 \uae30\uc874 \ucee8\ud14c\uc774\ub108\uc758 \ud30c\uc77c\uc774 \uc0ac\ub77c\uc9c8 \uc218 \uc788\uae30 \ub54c\ubb38\uc774\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ub370\uc774\ud130\ub97c \uc9c0\uc18d\uc801\uc73c\ub85c \ubcf4\uc874\ud574\uc57c \ud55c\ub2e4\uba74 Persistent Volume \uacc4\uc5f4\uc758 \uc800\uc7a5\uc18c\ub97c \uc0ac\uc6a9\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Pod -&gt; Persistent Volume -&gt; Storage\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc608\ub97c \ub4e4\uc5b4 \ub370\uc774\ud130\ubca0\uc774\uc2a4\ucc98\ub7fc \uc0c1\ud0dc\ub97c \uc720\uc9c0\ud574\uc57c \ud558\ub294 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc740 \ubcc4\ub3c4\uc758 \uc601\uad6c \uc800\uc7a5\uc18c\uac00 \ud544\uc694\ud558\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ub2e4\ub9cc Kubernetes\uc5d0\uc11c \ub370\uc774\ud130\ubca0\uc774\uc2a4\uae4c\uc9c0 \uc9c1\uc811 \uc6b4\uc601\ud560\uc9c0\ub294 \ubcc4\ub3c4\uc758 \ud310\ub2e8\uc774 \ud544\uc694\ud558\ub2e4. Managed Database\ub97c \uc0ac\uc6a9\ud558\uace0 Kubernetes\uc5d0\uc11c\ub294 \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \uc11c\ubc84\ub9cc \uc6b4\uc601\ud558\ub294 \uad6c\uc870\ub3c4 \ud754\ud558\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">kubectl<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Kubernetes\ub97c \uad00\ub9ac\ud560 \ub54c \uac00\uc7a5 \uae30\ubcf8\uc801\uc73c\ub85c \uc0ac\uc6a9\ud558\ub294 CLI\uac00 <code>kubectl<\/code>\uc774\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ud604\uc7ac Pod\uc744 \ud655\uc778\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>kubectl get pods\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Deployment\ub97c \ud655\uc778\ud560 \uc218\ub3c4 \uc788\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>kubectl get deployments\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Pod\uc758 \uc0c1\uc138 \uc815\ubcf4\ub97c \ud655\uc778\ud558\ub824\uba74:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>kubectl describe pod &lt;pod-name&gt;\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ub85c\uadf8\ub97c \ud655\uc778\ud560 \ub54c\ub294:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>kubectl logs &lt;pod-name&gt;\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Deployment\ub97c \ubc30\ud3ec\ud560 \ub54c\ub294:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>kubectl apply -f deployment.yaml\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc5ec\uae30\uc11c <code>apply<\/code>\uac00 Kubernetes\uc758 \uc120\uc5b8\uc801 \uad00\ub9ac \ubc29\uc2dd\uc744 \uc798 \ubcf4\uc5ec\uc900\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uac1c\ubc1c\uc790\uac00 &#8220;\uc774 \uba85\ub839\uc744 \uc21c\uc11c\ub300\ub85c \uc2e4\ud589\ud574\uc11c \ucee8\ud14c\uc774\ub108\ub97c \uc774\ub807\uac8c \ub9cc\ub4e4\uc5b4\ub77c&#8221;\ub77c\uace0 \uc9c0\uc2dc\ud558\ub294 \uac83\ubcf4\ub2e4 YAML\uc5d0 \uc6d0\ud558\ub294 \uc0c1\ud0dc\ub97c \uc815\uc758\ud558\uace0 Kubernetes\uac00 \ud604\uc7ac \uc0c1\ud0dc\ub97c \uadf8 \uc0c1\ud0dc\uc5d0 \ub9de\ucd94\ub3c4\ub85d \ud55c\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Kubernetes\ub97c \uc2e4\uc81c \uc11c\ubc84 \uad6c\uc870\uc5d0 \uc801\uc6a9\ud558\uba74<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\uc608\ub97c \ub4e4\uc5b4 \uc6f9 \uc11c\ube44\uc2a4\uac00 \ub2e4\uc74c\uacfc \uac19\uc774 \uad6c\uc131\ub418\uc5b4 \uc788\ub2e4\uace0 \ud558\uc790.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Internet -&gt; Ingress \/ Load Balancer -&gt; API Service -&gt; API Pod \/ API Pod \/ API Pod -&gt; External Database\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">API \uc11c\ubc84\uac00 \uc5ec\ub7ec Pod\uc73c\ub85c \uc2e4\ud589\ub418\uace0 \uc788\uae30 \ub54c\ubb38\uc5d0 \ud2b8\ub798\ud53d\uc744 \ubd84\uc0b0\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc0c8\ub85c\uc6b4 \ubc84\uc804\uc744 \ubc30\ud3ec\ud560 \ub54c\ub294 Deployment\uac00 Pod\uc744 \uc810\uc9c4\uc801\uc73c\ub85c \uad50\uccb4\ud55c\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc7a5\uc560\uac00 \ubc1c\uc0dd\ud558\uba74 Controller\uac00 \uc6d0\ud558\ub294 Replica \uc218\ub97c \uc720\uc9c0\ud558\ub824\uace0 \ud55c\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc124\uc815\uac12\uc740 ConfigMap\uacfc Secret\uc73c\ub85c \ubd84\ub9ac\ud558\uace0, \ud544\uc694\ud55c \uacbd\uc6b0 HPA\ub97c \ud1b5\ud574 Pod \uc218\ub97c \uc790\ub3d9\uc73c\ub85c \uc870\uc808\ud55c\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\ub807\uac8c \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \uc2e4\ud589\ubfd0 \uc544\ub2c8\ub77c <strong>\ubc30\ud3ec, \ub124\ud2b8\uc6cc\ud06c, \uc7a5\uc560 \ubcf5\uad6c, \uc2a4\ucf00\uc77c\ub9c1, \uc124\uc815 \uad00\ub9ac\uae4c\uc9c0 \ud558\ub098\uc758 \uc2dc\uc2a4\ud15c\uc5d0\uc11c \uad00\ub9ac<\/strong>\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Kubernetes\ub97c \uc0ac\uc6a9\ud560 \ub54c \uace0\ub824\ud560 \uac83<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Kubernetes\ub294 \uac15\ub825\ud558\uc9c0\ub9cc \ubaa8\ub4e0 \uc11c\ubc84\uc5d0 \ud544\uc694\ud55c \uac83\uc740 \uc544\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc791\uc740 \uc11c\ube44\uc2a4 \ud558\ub098\ub97c \uc11c\ubc84 \ud55c \ub300\uc5d0\uc11c \uc2e4\ud589\ud558\ub294 \uc0c1\ud669\uc774\ub77c\uba74 Docker Compose\ub098 \ub2e8\uc21c\ud55c VM \ubc30\ud3ec\uac00 \ub354 \uc801\uc808\ud560 \uc218 \uc788\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Kubernetes\ub97c \ub3c4\uc785\ud558\uba74 \ub2e4\uc74c\uacfc \uac19\uc740 \uac1c\ub150\uc744 \ud568\uaed8 \uad00\ub9ac\ud574\uc57c \ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Cluster -&gt; Node -&gt; Pod -&gt; Deployment -&gt; ReplicaSet -&gt; Service -&gt; Ingress \/ Gateway -&gt; ConfigMap -&gt; Secret -&gt; Volume -&gt; Namespace -&gt; Resource -&gt; RBAC -&gt; Monitoring -&gt; Logging\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc5ec\uae30\uc5d0 \ub124\ud2b8\uc6cc\ud06c \uc815\ucc45, \uc2a4\ud1a0\ub9ac\uc9c0, \uc778\uc99d, \uad00\uce21\uc131, \ubc30\ud3ec \uc804\ub7b5\uae4c\uc9c0 \ub4e4\uc5b4\uac00\uba74 \uc2dc\uc2a4\ud15c \ubcf5\uc7a1\ub3c4\uac00 \uc0c1\ub2f9\ud788 \uc62c\ub77c\uac04\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ub530\ub77c\uc11c &#8220;\ucee8\ud14c\uc774\ub108\ub97c \uc0ac\uc6a9\ud558\ub2c8\uae4c Kubernetes\ub97c \uc368\uc57c \ud55c\ub2e4&#8221;\ub294 \uc811\uadfc\uc740 \ub9de\uc9c0 \uc54a\ub294\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc560\ud50c\ub9ac\ucf00\uc774\uc158 \uaddc\ubaa8\uc640 \uc6b4\uc601 \uc694\uad6c\uc0ac\ud56d\uc744 \ubcf4\uace0 \uc120\ud0dd\ud574\uc57c \ud55c\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Kubernetes\uc758 \uc804\uccb4 \uad6c\uc870<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\uc9c0\uae08\uae4c\uc9c0\uc758 \ub0b4\uc6a9\uc744 \ud558\ub098\ub85c \ubb36\uc73c\uba74 \ub2e4\uc74c\uacfc \uac19\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Kubernetes Cluster -&gt; Control Plane -&gt; API Server \/ Scheduler \/ etcd\nKubernetes Cluster -&gt; Worker Nodes -&gt; Node 1 \/ Node 2 \/ Node 3 -&gt; Pod -&gt; Container\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc560\ud50c\ub9ac\ucf00\uc774\uc158 \ubc30\ud3ec \uad6c\uc870\ub294 \ub2e4\uc74c\uacfc \uac19\uc774 \uc5f0\uacb0\ub41c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Deployment -&gt; ReplicaSet -&gt; Pod \/ Pod \/ Pod -&gt; Container\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc678\ubd80 \uc694\uccad\uc740:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Client -&gt; Load Balancer -&gt; Ingress \/ Gateway -&gt; Service -&gt; Pod -&gt; Application\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc124\uc815\uacfc \ub370\uc774\ud130\ub294 \ubcc4\ub3c4\ub85c \uad00\ub9ac\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ConfigMap \/ Secret -&gt; Pod\nPod -&gt; Persistent Volume -&gt; Storage\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\uc815\ub9ac<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Kubernetes\ub97c \uc774\ud574\ud560 \ub54c \uac00\uc7a5 \uba3c\uc800 \uc7a1\uc544\uc57c \ud558\ub294 \uad6c\uc870\ub294 <strong>Cluster -&gt; Node -&gt; Pod -&gt; Container<\/strong>\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uadf8 \uc704\uc5d0\uc11c Deployment\uac00 Pod\uc758 \uc6d0\ud558\ub294 \uc0c1\ud0dc\ub97c \uad00\ub9ac\ud558\uace0, Service\uac00 Pod\uc5d0 \uc548\uc815\uc801\uc73c\ub85c \uc811\uadfc\ud560 \uc218 \uc788\ub294 \ub124\ud2b8\uc6cc\ud06c \uc5d4\ub4dc\ud3ec\uc778\ud2b8\ub97c \uc81c\uacf5\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Cluster -&gt; Node -&gt; Pod -&gt; Container\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uadf8\ub9ac\uace0:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Deployment -&gt; Pod \uad00\ub9ac\nService -&gt; \ub124\ud2b8\uc6cc\ud06c \uc811\uadfc\nIngress \/ Gateway -&gt; \uc678\ubd80 \ud2b8\ub798\ud53d \ub77c\uc6b0\ud305\nConfigMap \/ Secret -&gt; \uc124\uc815 \uad00\ub9ac\nVolume -&gt; \ub370\uc774\ud130 \uc800\uc7a5\nHPA -&gt; \uc790\ub3d9 \ud655\uc7a5\nController -&gt; \uc6d0\ud558\ub294 \uc0c1\ud0dc \uc720\uc9c0\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Docker\uac00 \ucee8\ud14c\uc774\ub108\ub97c \ub9cc\ub4dc\ub294 \uae30\uc220\uc774\ub77c\uba74 Kubernetes\ub294 <strong>\uadf8 \ucee8\ud14c\uc774\ub108\uac00 \uc2e4\uc81c \uc6b4\uc601 \ud658\uacbd\uc5d0\uc11c \uc5b4\ub5bb\uac8c \ubc30\uce58\ub418\uace0, \uc5f0\uacb0\ub418\uace0, \ud655\uc7a5\ub418\uace0, \ubcf5\uad6c\ub420\uc9c0\ub97c \uad00\ub9ac\ud558\ub294 \uc2dc\uc2a4\ud15c<\/strong>\uc5d0 \uac00\uae5d\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Kubernetes\ub97c \uacf5\ubd80\ud560 \ub54c YAML \ubb38\ubc95\ubd80\ud130 \uc678\uc6b0\uae30\ubcf4\ub2e4\ub294 <strong>Pod, Deployment, Service, Controller, Cluster\uc758 \uad00\uacc4<\/strong>\ub97c \uba3c\uc800 \uc774\ud574\ud558\ub294 \uac83\uc774 \ud6a8\uc728\uc801\uc774\ub2e4. \uc774 \uad6c\uc870\uac00 \uc7a1\ud788\uba74 \ub098\uba38\uc9c0 \ub9ac\uc18c\uc2a4\ub4e4\uc740 \uacb0\uad6d \uc774 \uc6b4\uc601 \uad6c\uc870\uc5d0 \ud544\uc694\ud55c \uae30\ub2a5\uc73c\ub85c \uc5f0\uacb0\ub41c\ub2e4.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Kubernetes\ub294 \ucee8\ud14c\uc774\ub108\ud654\ub41c \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \uc5ec\ub7ec \uc11c\ubc84\uc5d0\uc11c \uc548\uc815\uc801\uc73c\ub85c \uc2e4\ud589\ud558\uace0 \uad00\ub9ac\ud558\uae30 \uc704\ud55c \uc624\ucf00\uc2a4\ud2b8\ub808\uc774\uc158 \ud50c\ub7ab\ud3fc\uc774\ub2e4. Docker\ub97c \uc0ac\uc6a9\ud558\uba74 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc744 \ucee8\ud14c\uc774\ub108\ub85c \ud328\ud0a4\uc9d5\ud574\uc11c \uc2e4\ud589\ud560 \uc218 \uc788\ub2e4. \ubb38\uc81c\ub294 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uacfc \ucee8\ud14c\uc774\ub108\uac00 \ub9ce\uc544\uc84c\uc744 \ub54c\ubd80\ud130 \uc2dc\uc791\ub41c\ub2e4. \ucee8\ud14c\uc774\ub108\uac00 \uc218\uc2ed, \uc218\ubc31 \uac1c\ub85c \ub298\uc5b4\ub098\uba74 \uc9c1\uc811 \uc2e4\ud589\ud558\uace0 \uad00\ub9ac\ud558\uae30 \uc5b4\ub835\ub2e4. \uc5b4\ub5a4 \uc11c\ubc84\uc5d0 \ucee8\ud14c\uc774\ub108\ub97c \ubc30\uce58\ud560\uc9c0, \uc7a5\uc560\uac00 \ubc1c\uc0dd\ud558\uba74 \uc5b4\ub5bb\uac8c \ub2e4\uc2dc \uc2e4\ud589\ud560\uc9c0, \ud2b8\ub798\ud53d\uc774 \uc99d\uac00\ud558\uba74 \uc5b4\ub5bb\uac8c \ubcf5\uc81c\ud560\uc9c0, \uc5c5\ub370\uc774\ud2b8\ub97c \uc5b4\ub5bb\uac8c \uc218\ud589\ud560\uc9c0 \uad00\ub9ac\ud574\uc57c \ud55c\ub2e4. Kubernetes\ub294 \uc774\ub7f0 \ucee8\ud14c\uc774\ub108 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[49],"tags":[],"class_list":["post-1673","post","type-post","status-publish","format-standard","hentry","category-server"],"_links":{"self":[{"href":"https:\/\/wayhope.kro.kr\/index.php?rest_route=\/wp\/v2\/posts\/1673","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wayhope.kro.kr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wayhope.kro.kr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wayhope.kro.kr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wayhope.kro.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1673"}],"version-history":[{"count":3,"href":"https:\/\/wayhope.kro.kr\/index.php?rest_route=\/wp\/v2\/posts\/1673\/revisions"}],"predecessor-version":[{"id":1961,"href":"https:\/\/wayhope.kro.kr\/index.php?rest_route=\/wp\/v2\/posts\/1673\/revisions\/1961"}],"wp:attachment":[{"href":"https:\/\/wayhope.kro.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1673"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wayhope.kro.kr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1673"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wayhope.kro.kr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1673"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}