{"id":4750,"date":"2026-02-27T21:05:07","date_gmt":"2026-02-27T12:05:07","guid":{"rendered":"https:\/\/www.freelifemakers.org\/wordpress\/?p=4750"},"modified":"2026-03-01T10:24:03","modified_gmt":"2026-03-01T01:24:03","slug":"linux-kubernetes","status":"publish","type":"post","link":"https:\/\/www.freelifemakers.org\/wordpress\/index.php\/2026\/02\/27\/linux-kubernetes\/","title":{"rendered":"[Linux,MacOS]\ucfe0\ubc84\ub124\ud2f0\uc2a4 \/ Kubernetes"},"content":{"rendered":"\n<p>\ud83d\udc49\ud83c\udffb \ucfe0\ubc84\ub124\ud2f0\uc2a4\ub294 \ucee8\ud14c\uc774\ub108\ud654\ub41c \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc758 \ubc30\ud3ec, \ud655\uc7a5, \uad00\ub9ac, \uc790\ub3d9\ud654\ub97c \uc704\ud55c \uc624\ud508\uc18c\uc2a4 \uc624\ucf00\uc2a4\ud2b8\ub808\uc774\uc158 \ud50c\ub7ab\ud3fc\uc785\ub2c8\ub2e4.<br>Kubernetes is an open source orchestration platform for deploying, scaling, managing, and automating containerized applications.<\/p>\n\n\n\n<p>\ud83d\udc49\ud83c\udffb \uc27d\uac8c \uc598\uae30\ud558\uba74 \uc11c\ubc84 \uc811\uc18d\uc790\uac00 \ub9ce\uc73c\uba74 \ub2e4\ub978 \uc11c\ubc84\uc5d0 \uc811\uc18d\ud558\ub3c4\ub85d \ud558\uac70\ub098 \uc571\uc774 \uc8fd\uc73c\uba74 \ub2e4\ub978\uc571\uc73c\ub85c \uc0ac\uc6a9\uc790\uac00 \uc811\uc18d\ud560 \uc218 \uc788\uac8c\ud574\uc8fc\ub294 \uc11c\ubc84 \uc571\uc6a9 \uc571\uad00\ub9ac \uc18c\ud504\ud2b8\uc6e8\uc5b4\ub2e4\ub77c\uace0 \uc0dd\uac01\ud558\uba74 \uc27d\uc2b5\ub2c8\ub2e4.<br>To put it simply, it is an app management software for server apps that allows users to connect to another server when there are many users connected to the server, or to connect to another app when the app crashes.<\/p>\n\n\n\n<p>\ud83d\udc49\ud83c\udffb \ub2e4\ub9cc \ucfe0\ubc84\ub124\ud2f0\uc2a4 \uc790\uccb4\ub294 \ub3c4\ucee4 \ucc98\ub7fc \uc774\ubbf8\uc9c0\ub97c \ub9cc\ub4dc\ub294 \uae30\ub2a5\uc774 \uc5c6\uae30 \ub54c\ubb38\uc5d0 \ub3c4\ucee4\ub791 \uac19\uc774 \uc0ac\uc6a9\ud558\uc2dc\uba74 \ub429\ub2c8\ub2e4.<br>However, since Kubernetes itself does not have the ability to create images like Docker, you can use it together with Docker.<\/p>\n\n\n\n<p>\ud83d\udc49\ud83c\udffb \uac1c\uc778\uc801\uc73c\ub85c \ucfe0\ubc84\ub124\ud2f0\uc2a4\ub294 \uae30\uc874\uc758 \ubb3c\ub9ac\uc801\uc778 \uc11c\ubc84\uc5d0 \uc124\uce58\ud558\ub294 \uc11c\ubc84\uc571(nginx,nodejs,apache,mysql,postgresql&#8230;)\ub4f1\uc744 \ud55c\ubc88 \ub2e4 \uc124\uce58\ud558\uace0 \uc0ac\uc6a9\ud558\uace0 \uac1c\ub150\uc744 \ucda9\ubd84\ud788 \uc774\ud574\ud55c \ud6c4\uc5d0 \ucfe0\ubc84\ub124\ud2f0\uc2a4\ub97c \ubc30\uc6b0\ub294\uac78 \ucd94\ucc9c\ud569\ub2c8\ub2e4.<br>Personally, I recommend learning Kubernetes after installing and using server apps (nginx, nodejs, apache, mysql, postgresql, etc.) installed on existing physical servers and fully understanding the concepts.<\/p>\n\n\n\n<p>\ud83d\udc49\ud83c\udffb \uadf8\ub9ac\uace0 \ub3c4\ucee4 \ucef4\ud3ec\uc988\ub97c \uc548\ud574\ubcf4\uc168\ub2e4\uba74 \ub3c4\ucee4\ucef4\ud3ec\uc988\ub97c \uba3c\uc800 \ud574\ubcf4\uc2dc\uace0 \ucfe0\ubc84\ub124\ud2f0\uc2a4\ub97c \uc811\ud558\uc2dc\uba74 \uc88b\uc740\uac70 \uac19\uc2b5\ub2c8\ub2e4.<br>And if you haven&#8217;t tried Docker Compose, I recommend trying it first and then getting started with Kubernetes.<\/p>\n\n\n\n<p>\ud83d\udc49\ud83c\udffb \ub3c4\ucee4 \ucef4\ud3ec\uc988\uac00 \ud6e8\uc52c \uc27d\uace0 \uae30\ub2a5\uba74\uc774\ub098 \uad00\ub9ac\ud558\ub294 \ubd80\ubd84\uc774\ub098 \ube44\uc2b7\ud55c \ubd80\ubd84\uc774 \uc788\uae30 \ub54c\ubb38\uc785\ub2c8\ub2e4.<br>Docker Compose is much easier and has similar features and management aspects.<\/p>\n\n\n\n<p>\ud83d\udc49\ud83c\udffb \uc544\ub798 \uc124\uba85\uc740 \ucfe0\ubc84\ub124\ud2f0\uc2a4\ub97c \uc774\uc6a9\ud574\uc11c  nginx\ub97c \uc2e4\ud589\ud558\ub294 \uacfc\uc815\uc785\ub2c8\ub2e4.<br>The following describes the process of running nginx using Kubernetes.<\/p>\n\n\n\n<p>\ud83d\udc49\ud83c\udffb \uc544\ub798\uc124\uba85\uc740 \ub9e5os\uc5d0\uc11c \ub3c4\ucee4\ub370\uc2a4\ud06c\ud0d1\uc744 \uc0ac\uc6a9\ud569\ub2c8\ub2e4. \uadf8\ub0e5 \uba3c\uc800 \ud55c\ubc88 \uc2e4\ud589\ud574\ubcf4\uc138\uc694<br>The instructions below use Docker Desktop on macOS. Just try it out first.<\/p>\n\n\n\n<p>\u2714\ufe0f \ub3c4\ucee4\ub370\uc2a4\ud06c\ud0d1\uc5d0\uc11c \ucfe0\ubc84\ub124\ud2f0\uc2a4\ub97c \uc2e4\ud589\ud558\uba74 \uc544\ub798\uc640 \uac19\uc740 \ud654\uba74\uc744 \ub9cc\ub0a0 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<br>When you run Kubernetes on Docker Desktop, you will see a screen like the one below.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"605\" src=\"https:\/\/www.freelifemakers.org\/wordpress\/wp-content\/uploads\/2026\/02\/kube1-jpg-1024x605.jpg\" alt=\"\" class=\"wp-image-4762\" srcset=\"https:\/\/www.freelifemakers.org\/wordpress\/wp-content\/uploads\/2026\/02\/kube1-jpg-1024x605.jpg 1024w, https:\/\/www.freelifemakers.org\/wordpress\/wp-content\/uploads\/2026\/02\/kube1-jpg-300x177.jpg 300w, https:\/\/www.freelifemakers.org\/wordpress\/wp-content\/uploads\/2026\/02\/kube1-jpg-768x454.jpg 768w, https:\/\/www.freelifemakers.org\/wordpress\/wp-content\/uploads\/2026\/02\/kube1-jpg-1536x908.jpg 1536w, https:\/\/www.freelifemakers.org\/wordpress\/wp-content\/uploads\/2026\/02\/kube1-jpg-2048x1211.jpg 2048w, https:\/\/www.freelifemakers.org\/wordpress\/wp-content\/uploads\/2026\/02\/kube1-jpg-1870x1106.jpg 1870w, https:\/\/www.freelifemakers.org\/wordpress\/wp-content\/uploads\/2026\/02\/kube1-jpg-400x236.jpg 400w, https:\/\/www.freelifemakers.org\/wordpress\/wp-content\/uploads\/2026\/02\/kube1-jpg-800x473.jpg 800w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Screenshot<\/figcaption><\/figure>\n\n\n\n<p>\u2714\ufe0f \ud130\ubbf8\ub110\uc744 \uc5f4\uace0 \ucfe0\ubc84\ub124\ud2f0\uc2a4\uac00 \uc815\uc0c1\uc791\ub3d9\ud558\ub294\uc9c0 \ud14c\uc2a4\ud2b8 \ud574\ubd05\ub2c8\ub2e4.<br>Open a terminal and test if Kubernetes is working properly.<\/p>\n\n\n\n<p>&#8212; \ud604\uc7ac \ucee8\ud14d\uc2a4\ud2b8\uac00 docker-desktop\uc778\uc9c0 \ud655\uc778<br>Check if the current context is docker-desktop<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>% kubectl config current-context\ndocker-desktop<\/code><\/pre>\n\n\n\n<p>&#8212; \ub178\ub4dc \ud655\uc778 \/ View Nodes<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>% kubectl get nodes\nNAME             STATUS   ROLES           AGE   VERSION\ndocker-desktop   Ready    control-plane   70d   v1.32.2<\/code><\/pre>\n\n\n\n<p>&#8212; \ud30c\ub4dc \ud655\uc778 \/ View Pods<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>% kubectl get pods -A\n# kube-system \ub124\uc784\uc2a4\ud398\uc774\uc2a4\uc5d0 \uc5ec\ub7ec \ud30c\ub4dc\uac00 Running \uc0c1\ud0dc\ub85c \ubcf4\uc774\uba74 \uc815\uc0c1\n# If multiple pods appear in the kube-system namespace in a Running state, it is normal.<\/code><\/pre>\n\n\n\n<p>\u2714\ufe0f Nginx \uc2e4\ud589\ud574\ubcf4\uae30 \/ Try running Nginx<\/p>\n\n\n\n<p>&#8212; Deployment\uc0dd\uc131 \/ Create a deployment<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>% kubectl create deployment nginx-test --image=nginx<\/code><\/pre>\n\n\n\n<p>&#8212;  \ud30c\ub4dc \uc0dd\uc131\ud655\uc778(Deployment \uc0dd\uc131 \uc2e4\ud589\ud558\uace0 \uba87\ubd84 \uae30\ub2e4\ub9b0 \ud6c4)<br>Confirm pod creation (after running the deployment creation and waiting for a few minutes)<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>% kubectl get pods<\/code><\/pre>\n\n\n\n<p>&#8212; \uc11c\ube44\uc2a4\ub85c \ub178\ucd9c\ud558\uae30 \/ Exposure as a service<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>% kubectl expose deployment nginx-test --port=80 --type=NodePort<\/code><\/pre>\n\n\n\n<p>&#8212; NodePort(\uc11c\ube44\uc2a4)\ud655\uc778 \/ Check NodePort (Service)<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>% kubectl get svc nginx-test<\/code><\/pre>\n\n\n\n<p>-&gt; \uacb0\uacfc(\ud3ec\ud2b8\ubc88\ud638\uac00 \ub2e4\ub97c \uc218 \uc788\uc74c.) \/ Result (port number may be different)<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>NAME         TYPE       CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE\nnginx-test   NodePort   10.105.28.195   &lt;none&gt;        80:31140\/TCP   80s<\/code><\/pre>\n\n\n\n<p>&#8212; \ube0c\ub77c\uc6b0\uc800\uc5d0\uc11c \uc2e4\ud589\ud558\uae30 \/ Run in browser<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>% open http:\/\/localhost:31140<\/code><\/pre>\n\n\n\n<p>&#8212; \uc544\ub798\ucc98\ub7fc \ud654\uba74\uc774 \ubcf4\uc774\uba74 \uc815\uc0c1\uc801\uc73c\ub85c \uc2e4\ud589\ub418\ub294\uac81\ub2c8\ub2e4.<br>If you see the screen as below, it is running normally.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"485\" src=\"https:\/\/www.freelifemakers.org\/wordpress\/wp-content\/uploads\/2026\/02\/kube-nginx-jpg-1024x485.jpg\" alt=\"\" class=\"wp-image-4780\" srcset=\"https:\/\/www.freelifemakers.org\/wordpress\/wp-content\/uploads\/2026\/02\/kube-nginx-jpg-1024x485.jpg 1024w, https:\/\/www.freelifemakers.org\/wordpress\/wp-content\/uploads\/2026\/02\/kube-nginx-jpg-300x142.jpg 300w, https:\/\/www.freelifemakers.org\/wordpress\/wp-content\/uploads\/2026\/02\/kube-nginx-jpg-768x364.jpg 768w, https:\/\/www.freelifemakers.org\/wordpress\/wp-content\/uploads\/2026\/02\/kube-nginx-jpg-400x190.jpg 400w, https:\/\/www.freelifemakers.org\/wordpress\/wp-content\/uploads\/2026\/02\/kube-nginx-jpg-800x379.jpg 800w, https:\/\/www.freelifemakers.org\/wordpress\/wp-content\/uploads\/2026\/02\/kube-nginx-jpg.jpg 1464w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Screenshot<\/figcaption><\/figure>\n\n\n\n<p>\ud83d\udc49\ud83c\udffb\ub3c4\ucee4\ub370\uc2a4\ud06c\ud0d1\uc5d0\uc11c node,service,deployment,pods\ubcf4\uae30<br>View nodes, services, deployments, and pods in Docker Desktop<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"555\" src=\"https:\/\/www.freelifemakers.org\/wordpress\/wp-content\/uploads\/2026\/02\/nodes-service-jpg-1024x555.jpg\" alt=\"\" class=\"wp-image-4781\" srcset=\"https:\/\/www.freelifemakers.org\/wordpress\/wp-content\/uploads\/2026\/02\/nodes-service-jpg-1024x555.jpg 1024w, https:\/\/www.freelifemakers.org\/wordpress\/wp-content\/uploads\/2026\/02\/nodes-service-jpg-300x163.jpg 300w, https:\/\/www.freelifemakers.org\/wordpress\/wp-content\/uploads\/2026\/02\/nodes-service-jpg-768x416.jpg 768w, https:\/\/www.freelifemakers.org\/wordpress\/wp-content\/uploads\/2026\/02\/nodes-service-jpg-1536x832.jpg 1536w, https:\/\/www.freelifemakers.org\/wordpress\/wp-content\/uploads\/2026\/02\/nodes-service-jpg-2048x1109.jpg 2048w, https:\/\/www.freelifemakers.org\/wordpress\/wp-content\/uploads\/2026\/02\/nodes-service-jpg-1870x1013.jpg 1870w, https:\/\/www.freelifemakers.org\/wordpress\/wp-content\/uploads\/2026\/02\/nodes-service-jpg-400x217.jpg 400w, https:\/\/www.freelifemakers.org\/wordpress\/wp-content\/uploads\/2026\/02\/nodes-service-jpg-800x433.jpg 800w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Screenshot<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"490\" src=\"https:\/\/www.freelifemakers.org\/wordpress\/wp-content\/uploads\/2026\/02\/kube-deployment-pods-jpg-1024x490.jpg\" alt=\"\" class=\"wp-image-4782\" srcset=\"https:\/\/www.freelifemakers.org\/wordpress\/wp-content\/uploads\/2026\/02\/kube-deployment-pods-jpg-1024x490.jpg 1024w, https:\/\/www.freelifemakers.org\/wordpress\/wp-content\/uploads\/2026\/02\/kube-deployment-pods-jpg-300x144.jpg 300w, https:\/\/www.freelifemakers.org\/wordpress\/wp-content\/uploads\/2026\/02\/kube-deployment-pods-jpg-768x368.jpg 768w, https:\/\/www.freelifemakers.org\/wordpress\/wp-content\/uploads\/2026\/02\/kube-deployment-pods-jpg-1536x736.jpg 1536w, https:\/\/www.freelifemakers.org\/wordpress\/wp-content\/uploads\/2026\/02\/kube-deployment-pods-jpg-2048x981.jpg 2048w, https:\/\/www.freelifemakers.org\/wordpress\/wp-content\/uploads\/2026\/02\/kube-deployment-pods-jpg-1870x896.jpg 1870w, https:\/\/www.freelifemakers.org\/wordpress\/wp-content\/uploads\/2026\/02\/kube-deployment-pods-jpg-400x192.jpg 400w, https:\/\/www.freelifemakers.org\/wordpress\/wp-content\/uploads\/2026\/02\/kube-deployment-pods-jpg-800x383.jpg 800w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Screenshot<\/figcaption><\/figure>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\ud83d\udc49\ud83c\udffb \ucfe0\ubc84\ub124\ud2f0\uc2a4\ub294 \ucee8\ud14c\uc774\ub108\ud654\ub41c \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc758 \ubc30\ud3ec, \ud655\uc7a5, \uad00\ub9ac, \uc790\ub3d9\ud654\ub97c \uc704\ud55c \uc624\ud508\uc18c\uc2a4 \uc624\ucf00\uc2a4\ud2b8\ub808\uc774\uc158 \ud50c\ub7ab\ud3fc\uc785\ub2c8\ub2e4.Kubernetes is an open source orchestration platform for deploying, scaling, managing, and automating containerized applications. \ud83d\udc49\ud83c\udffb \uc27d\uac8c \uc598\uae30\ud558\uba74 \uc11c\ubc84 \uc811\uc18d\uc790\uac00 \ub9ce\uc73c\uba74 \ub2e4\ub978 \uc11c\ubc84\uc5d0 \uc811\uc18d\ud558\ub3c4\ub85d \ud558\uac70\ub098 \uc571\uc774 \uc8fd\uc73c\uba74 \ub2e4\ub978\uc571\uc73c\ub85c \uc0ac\uc6a9\uc790\uac00 \uc811\uc18d\ud560 \uc218 \uc788\uac8c\ud574\uc8fc\ub294 \uc11c\ubc84 \uc571\uc6a9 \uc571\uad00\ub9ac \uc18c\ud504\ud2b8\uc6e8\uc5b4\ub2e4\ub77c\uace0 \uc0dd\uac01\ud558\uba74 \uc27d\uc2b5\ub2c8\ub2e4.To put it simply, it is an [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6,1],"tags":[],"class_list":["post-4750","post","type-post","status-publish","format-standard","hentry","category-linux","category-uncategorized","missing-thumbnail"],"_links":{"self":[{"href":"https:\/\/www.freelifemakers.org\/wordpress\/index.php\/wp-json\/wp\/v2\/posts\/4750","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.freelifemakers.org\/wordpress\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.freelifemakers.org\/wordpress\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.freelifemakers.org\/wordpress\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.freelifemakers.org\/wordpress\/index.php\/wp-json\/wp\/v2\/comments?post=4750"}],"version-history":[{"count":53,"href":"https:\/\/www.freelifemakers.org\/wordpress\/index.php\/wp-json\/wp\/v2\/posts\/4750\/revisions"}],"predecessor-version":[{"id":4861,"href":"https:\/\/www.freelifemakers.org\/wordpress\/index.php\/wp-json\/wp\/v2\/posts\/4750\/revisions\/4861"}],"wp:attachment":[{"href":"https:\/\/www.freelifemakers.org\/wordpress\/index.php\/wp-json\/wp\/v2\/media?parent=4750"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.freelifemakers.org\/wordpress\/index.php\/wp-json\/wp\/v2\/categories?post=4750"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.freelifemakers.org\/wordpress\/index.php\/wp-json\/wp\/v2\/tags?post=4750"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}