From 9ca9e728c20cdcfe23c6fd02400b8fdf3baf1de1 Mon Sep 17 00:00:00 2001 From: Lawlait Date: Tue, 18 Sep 2018 22:56:48 +0900 Subject: [PATCH] Translate /tutorials/hello-minikube.md in Korean (#18) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * init translate - Hello Minikube * update translate - Hello Minikube Translate /tutorials/hello-minikube.md in Korean #18 r s/어플리케이션/애플리케이션/ s/Node.js 로/Node.js로/ s/Minikube 에서/Minikube에서/ s/변환 한/변환한/ 줄 맞춤 - 원본과 동일하게 수정 * update translate - Hello Minikube --- content/ko/docs/tutorials/hello-minikube.md | 246 ++++++++++---------- 1 file changed, 122 insertions(+), 124 deletions(-) diff --git a/content/ko/docs/tutorials/hello-minikube.md b/content/ko/docs/tutorials/hello-minikube.md index 7f02a333a..7c293cb11 100644 --- a/content/ko/docs/tutorials/hello-minikube.md +++ b/content/ko/docs/tutorials/hello-minikube.md @@ -6,202 +6,202 @@ weight: 5 {{% capture overview %}} -The goal of this tutorial is for you to turn a simple Hello World Node.js app -into an application running on Kubernetes. The tutorial shows you how to -take code that you have developed on your machine, turn it into a Docker -container image and then run that image on [Minikube](/docs/getting-started-guides/minikube). -Minikube provides a simple way of running Kubernetes on your local machine for free. +이 튜토리얼의 목표는 Node.js 로 작성된 간단한 Hello World 애플리케이션을 쿠버네티스에서 실행되는 +애플리케이션으로 변환하는 것 입니다. 튜토리얼을 통해 로컬에서 작성된 코드를 Docker 컨테이너 이미지로 +변환한 다음, [Minikube](/docs/getting-started-guides/minikube)에서 해당 이미지를 실행하는 +방법을 보여줍니다. Minikube는 무료로 로컬 기기를 이용해서 쿠버네티스를 실행할 수 있는 간단한 방법을 +제공합니다. {{% /capture %}} {{% capture objectives %}} -* Run a hello world Node.js application. -* Deploy the application to Minikube. -* View application logs. -* Update the application image. +* Node.js로 hello world 애플리케이션을 실행합니다. +* Minikube에 만들어진 애플리케이션을 배포합니다. +* 애플리케이션 로그의 확인합니다. +* 애플리케이션 이미지 업데이트합니다. {{% /capture %}} {{% capture prerequisites %}} -* For macOS, you can use [Homebrew](https://brew.sh) to install Minikube. +* macOS 의 경우, [Homebrew](https://brew.sh)를 사용하여 Minikube를 설치할 수 있습니다. {{< note >}} - **Note:** If you see the following Homebrew error when you run `brew update` after you update your computer to macOS 10.13: - + **참고:** macOS 10.13 버전으로 업데이트 후 Homebrew에서 `brew update` 를 실행 시 다음과 같은 오류가 발생할 경우: + ``` Error: /usr/local is not writable. You should change the ownership and permissions of /usr/local back to your user account: sudo chown -R $(whoami) /usr/local ``` - You can resolve the issue by reinstalling Homebrew: + Homebrew를 다시 설치하여 문제를 해결: ``` /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" ``` {{< /note >}} -* [NodeJS](https://nodejs.org/en/) is required to run the sample application. +* 예제 애플리케이션을 실행하기 위해서는 [NodeJS](https://nodejs.org/en/)가 필요합니다. -* Install Docker. On macOS, we recommend -[Docker for Mac](https://docs.docker.com/engine/installation/mac/). +* Docker를 설치하십시오. macOS의 경우, +[Docker for Mac](https://docs.docker.com/engine/installation/mac/)를 권장합니다. {{% /capture %}} {{% capture lessoncontent %}} -## Create a Minikube cluster +## Minikube 클러스터 만들기 -This tutorial uses [Minikube](https://github.com/kubernetes/minikube) to -create a local cluster. This tutorial also assumes you are using -[Docker for Mac](https://docs.docker.com/engine/installation/mac/) -on macOS. If you are on a different platform like Linux, or using VirtualBox -instead of Docker for Mac, the instructions to install Minikube may be -slightly different. For general Minikube installation instructions, see -the [Minikube installation guide](/docs/getting-started-guides/minikube/). +이 튜토리얼에서는 [Minikube](https://github.com/kubernetes/minikube)를 사용하여 +로컬 클러스터를 만듭니다. 이 튜토리얼에서는 macOS에서 +[Docker for Mac](https://docs.docker.com/engine/installation/mac/)을 +사용한다고 가정하였습니다. Docker for Mac 대신 Linux 혹은 VirtualBox와 같이 다른 플랫폼을 +사용하는 경우, Minikube를 설치하는 방법이 약간 다를 수 있습니다. 일반적인 Minikube 설치 지침은 +[Minikube installation guide](/docs/getting-started-guides/minikube/) +를 참조하십시오. -Use Homebrew to install the latest Minikube release: +Homebrew를 사용하여 최신 버전의 Minikube 설치: ```shell brew cask install minikube ``` -Install the HyperKit driver, as described by the -[Minikube driver installation guide](https://github.com/kubernetes/minikube/blob/master/docs/drivers.md#hyperkit-driver). +[Minikube driver installation guide](https://github.com/kubernetes/minikube/blob/master/docs/drivers.md#hyperkit-driver)에 +설명한 것과 같이 HyperKit 드라이버를 설치하십시오. -Use Homebrew to download the `kubectl` command-line tool, which you can -use to interact with Kubernetes clusters: +Homebrew를 사용하여 쿠버네티스 클러스터와 상호 작용을 위한 +`kubectl` 명령줄 도구 다운로드: ```shell brew install kubernetes-cli ``` -Determine whether you can access sites like [https://cloud.google.com/container-registry/](https://cloud.google.com/container-registry/) directly without a proxy, by opening a new terminal and using +프록시를 거치지않고 직접 [https://cloud.google.com/container-registry/](https://cloud.google.com/container-registry/)같은 사이트에 액세스 할 수 있는지 확인하려면 새 터미널을 열고 다음과 같이 실행하십시오. ```shell curl --proxy "" https://cloud.google.com/container-registry/ ``` -Make sure that the Docker daemon is started. You can determine if docker is running by using a command such as: +Docker 데몬이 시작되었는지 확인하십시오. Docker가 실행 중인지는 다음과 같은 커맨드를 사용하여 확인: ```shell docker images ``` -If NO proxy is required, start the Minikube cluster: +프록시가 필요하지 않은 경우, Minikube 클러스터를 시작: ```shell minikube start --vm-driver=hyperkit ``` -If a proxy server is required, use the following method to start Minikube cluster with proxy setting: +프록시가 필요한 경우, 다음 방법을 사용하여 프록시 설정과 함께 Minikube 클러스터를 시작: ```shell minikube start --vm-driver=hyperkit --docker-env HTTP_PROXY=http://your-http-proxy-host:your-http-proxy-port --docker-env HTTPS_PROXY=http(s)://your-https-proxy-host:your-https-proxy-port ``` -The `--vm-driver=hyperkit` flag specifies that you are using Docker for Mac. The -default VM driver is VirtualBox. +`--vm-driver=hyperkit` 플래그는 Docker for Mac을 사용하고 있음을 의 합니다. +기본 VM 드라이버는 VirtualBox입니다. -Now set the Minikube context. The context is what determines which cluster -`kubectl` is interacting with. You can see all your available contexts in the -`~/.kube/config` file. +이제 Minikube 컨텍스트를 설정하십시오. 컨텍스트는 'kubectl'이 어떠한 클러스터와 상호작용 하려고 +하는지를 결정하는 내용입니다. `~/.kube/config` 파일에서 사용 가능한 +모든 컨텍스트를 볼 수 있습니다. ```shell kubectl config use-context minikube ``` -Verify that `kubectl` is configured to communicate with your cluster: +`kubectl` 이 클러스터와 통신할 수 있도록 설정되어 있는지 확인: ```shell kubectl cluster-info ``` -Open the Kubernetes dashboard in a browser: +브라우저에서 쿠버네티스 대시보드 열기: ```shell minikube dashboard ``` -## Create your Node.js application +## Node.js 애플리케이션 만들기 -The next step is to write the application. Save this code in a folder named `hellonode` -with the filename `server.js`: +다음 단계는 애플리케이션을 작성해봅니다. 아래 코드를 `hellonode` 폴더에 +`server.js` 라는 이름으로 저장: {{< codenew language="js" file="minikube/server.js" >}} -Run your application: +작성된 애플리케이션 실행: ```shell node server.js ``` -You should be able to see your "Hello World!" message at http://localhost:8080/. +http://localhost:8080/ 에 접속하여 "Hello World!"라는 메세지를 확인하여 주십시오. -Stop the running Node.js server by pressing **Ctrl-C**. +**Ctrl-C** 를 입력하면 실행 중인 Node.js 서버가 중단됩니다. -The next step is to package your application in a Docker container. +다음 단계는 작성된 애플리케이션을 Docker 컨테이너로 변환해봅니다. -## Create a Docker container image +## Docker 컨테이너 이미지 만들기 -Create a file, also in the `hellonode` folder, named `Dockerfile`. A Dockerfile describes -the image that you want to build. You can build a Docker container image by extending an -existing image. The image in this tutorial extends an existing Node.js image. +앞에서 사용하였던 `hellonode` 폴더에 `Dockerfile` 이라는 이름으로 파일을 만듭니다. Dockerfile +은 작성하고자하는 이미지에 대한 구성요소를 미리 설정해놓은 파일입니다 기존 이미지를 확장하여 Docker +컨테이너 이미지를 작성할 수 있습니다. 이 튜토리얼에서는 기존 Node.js 이미지를 확장하여 사용합니다. {{< codenew language="conf" file="minikube/Dockerfile" >}} -This recipe for the Docker image starts from the official Node.js LTS image -found in the Docker registry, exposes port 8080, copies your `server.js` file -to the image and starts the Node.js server. +Docker 레지스트리에 있는 공식 Node.js LTS 이미지를 사용해서, +8080 포트를 열고, `server.js` 파일을 이미지에 복사하고 +Node.js 서버를 시작하도록 구성하였습니다. -Because this tutorial uses Minikube, instead of pushing your Docker image to a -registry, you can simply build the image using the same Docker host as -the Minikube VM, so that the images are automatically present. To do so, make -sure you are using the Minikube Docker daemon: +이 튜토리얼은 Minikube를 사용하기 때문에, Docker 이미지를 레지스트리로 Push하는 대신, +Minikube VM과 같은 Docker 호스트를 사용하여 간단하게 이미지를 작성하고, +자동으로 목록에 저장되도록 변경 할 수 있습니다. 변경하려면 Minikube Docker 데몬을 확인 후, +아래와 같이 실행: ```shell eval $(minikube docker-env) ``` {{< note >}} -**Note:** Later, when you no longer wish to use the Minikube host, you can undo -this change by running `eval $(minikube docker-env -u)`. +**참고:** 나중에 Minikube 호스트를 사용하지 않을 경우, `eval $ (minikube docker-env -u)` +를 실행하여 변경을 취소 할 수 있습니다. {{< /note >}} -Build your Docker image, using the Minikube Docker daemon (mind the trailing dot): +Minikube Docker 데몬을 사용하여 Docker 이미지를 작성 (마지막의 점에 주의): ```shell docker build -t hello-node:v1 . ``` -Now the Minikube VM can run the image you built. +이제 Minikube VM은 작성한 이미지를 실행 할 수 있습니다. -## Create a Deployment +## 디플로이먼트 만들기 -A Kubernetes [*Pod*](/docs/concepts/workloads/pods/pod/) is a group of one or more Containers, -tied together for the purposes of administration and networking. The Pod in this -tutorial has only one Container. A Kubernetes -[*Deployment*](/docs/concepts/workloads/controllers/deployment/) checks on the health of your -Pod and restarts the Pod's Container if it terminates. Deployments are the -recommended way to manage the creation and scaling of Pods. +쿠버네티스 [*파드*](/docs/concepts/workloads/pods/pod/)는 관리 및 네트워크 구성을 목적으로 +함께 묶은 하나 이상의 컨테이너 그룹입니다. +이 튜토리얼의 파드에는 단 하나의 컨테이너만 있습니다. +쿠버네티스 [*디플로이먼트*](/docs/concepts/workloads/controllers/deployment/)는 포드의 +상태를 검사하고 종료되는 일이 발생하면 파드 컨테이너를 다시 시작합니다. +파드의 생성 및 확장을 관리에 디플로이먼트를 권장합니다. -Use the `kubectl run` command to create a Deployment that manages a Pod. The -Pod runs a Container based on your `hello-node:v1` Docker image. Set the -`--image-pull-policy` flag to `Never` to always use the local image, rather than -pulling it from your Docker registry (since you haven't pushed it there): +`kubectl run` 커맨드를 사용하여 파드를 관리하는 디플로이먼트를 만드십시오. +파드는 `hello-node:v1` Docker 이미지로 만들어진 컨테이너를 실행 합니다. +Docker 레지스트리에서 가져오지 않고 로컬이미지를 사용하려면 `--image-pull-policy` 플래그를 +`Never` 로 설정 (레지스트리에 Push 하지 않았기 때문에 로컬 이미지를 사용해야 함): ```shell kubectl run hello-node --image=hello-node:v1 --port=8080 --image-pull-policy=Never ``` -View the Deployment: +디플로이먼트를 확인: ```shell kubectl get deployments ``` -Output: +출력: ```shell @@ -209,14 +209,14 @@ NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE hello-node 1 1 1 1 3m ``` -View the Pod: +파드를 확인: ```shell kubectl get pods ``` -Output: +출력: ```shell @@ -224,42 +224,42 @@ NAME READY STATUS RESTARTS AGE hello-node-714049816-ztzrb 1/1 Running 0 6m ``` -View cluster events: +클러스터 이벤트를 확인: ```shell kubectl get events ``` -View the `kubectl` configuration: +`kubectl` 의 설정을 확인: ```shell kubectl config view ``` -For more information about `kubectl`commands, see the -[kubectl overview](/docs/user-guide/kubectl-overview/). +`kubectl` 커맨드에 대한 더 많은 정보를 원하는 경우, +[kubectl overview](/docs/user-guide/kubectl-overview/) 를 확인하세요. -## Create a Service +## 서비스 만들기 -By default, the Pod is only accessible by its internal IP address within the -Kubernetes cluster. To make the `hello-node` Container accessible from outside the -Kubernetes virtual network, you have to expose the Pod as a -Kubernetes [*Service*](/docs/concepts/services-networking/service/). +기본적으로 파드는 쿠버네티스 클러스터 내의 내부 IP 주소로만 접속가능합니다. +쿠버네티스 가상 네트워크 밖에서 `hello-node` 컨테이너에 접속하기 위해서는 파드를 쿠버네티스 +[*서비스*](/docs/concepts/services-networking/service/)로 +노출하여야 합니다. -From your development machine, you can expose the Pod to the public internet -using the `kubectl expose` command: +디플로이먼트에서 `kubectl expose` 커맨드를 통해 +파드를 퍼블릭 인터넷에 노출: ```shell kubectl expose deployment hello-node --type=LoadBalancer ``` -View the Service you just created: +방금 생성한 서비스 확인: ```shell kubectl get services ``` -Output: +출력: ```shell NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE @@ -267,64 +267,64 @@ hello-node 10.0.0.71 8080/TCP 6m kubernetes 10.0.0.1 443/TCP 14d ``` -The `--type=LoadBalancer` flag indicates that you want to expose your Service -outside of the cluster. On cloud providers that support load balancers, -an external IP address would be provisioned to access the Service. On Minikube, -the `LoadBalancer` type makes the Service accessible through the `minikube service` -command. +`--type=LoadBalancer` 플래그는 해당 서비스를 클러스터 외에 노출 시키는 것을 의미합니다. +로드 밸런서를 지원하는 클라우드 제공 업체의 경우, +외부 IP 주소가 서비스에 액세스 할 수 있도록 제공됩니다. +Minikube에서 `LoadBalancer` 타입은 `minikube service` 커맨드를 통해 +서비스에 접근 가능하도록 합니다. ```shell minikube service hello-node ``` -This automatically opens up a browser window using a local IP address that -serves your app and shows the "Hello World" message. +로컬 IP 주소를 이용하여 App을 제공하고 "Hello World" 메세지를 보여주는 브라우저 윈도우를 +자동으로 열어줍니다. -Assuming you've sent requests to your new web service using the browser or curl, -you should now be able to see some logs: +브라우저 또는 curl 을 통해 새 웹서비스에 리퀘스트를 보냈을 때, +로그가 쌓이는 것을 확인: ```shell kubectl logs ``` -## Update your app +## App 업데이트 -Edit your `server.js` file to return a new message: +`server.js` 파일을 새로운 메세지를 출력하도록 수정: ```javascript response.end('Hello World Again!'); ``` -Build a new version of your image (mind the trailing dot): +새로운 버전의 이미지를 작성 (마지막의 점에 주의): ```shell docker build -t hello-node:v2 . ``` -Update the image of your Deployment: +디플로이먼트의 이미지를 업데이트: ```shell kubectl set image deployment/hello-node hello-node=hello-node:v2 ``` -Run your app again to view the new message: +App을 다시 실행하여 새로운 메세지를 확인: ```shell minikube service hello-node ``` -## Enable addons +## 애드온 활성화하기 -Minikube has a set of built-in addons that can be enabled, disabled and opened in the local Kubernetes environment. +Minikube에는 로컬 쿠버네티스 환경에서 활성화/비활성화 할 수 있거나 이미 열려 있는 내장 애드온 세트가 있습니다. -First list the currently supported addons: +현재 지원되는 애드온 목록을 확인: ```shell minikube addons list ``` -Output: +출력: ```shell - storage-provisioner: enabled @@ -340,25 +340,25 @@ Output: - ingress: disabled ``` -Minikube must be running for these commands to take effect. To enable `heapster` addon, for example: +커맨드를 적용하기 위해서는 Minikube가 실행 중이어야 합니다. 예시로, `heapster` 애드온을 활성화: ```shell minikube addons enable heapster ``` -Output: +출력: ```shell heapster was successfully enabled ``` -View the Pod and Service you just created: +파드와 생성된 서비스 확인: ```shell kubectl get po,svc -n kube-system ``` -Output: +출력: ```shell NAME READY STATUS RESTARTS AGE @@ -371,41 +371,41 @@ svc/monitoring-grafana NodePort 10.0.0.33 80:30002/TCP svc/monitoring-influxdb ClusterIP 10.0.0.43 8083/TCP,8086/TCP 2m ``` -Open the endpoint to interacting with heapster in a browser: +브라우저에서 엔드포인트를 열어 heapster 와 상호작용: ```shell minikube addons open heapster ``` -Output: +출력: ```shell Opening kubernetes service kube-system/monitoring-grafana in default browser... ``` -## Clean up +## 제거하기 -Now you can clean up the resources you created in your cluster: +이제 클러스터에서 만들어진 리소스들을 제거: ```shell kubectl delete service hello-node kubectl delete deployment hello-node ``` -Optionally, force removal of the Docker images created: +상황에 따라, 생성된 Docker 이미지를 강제로 제거: ```shell docker rmi hello-node:v1 hello-node:v2 -f ``` -Optionally, stop the Minikube VM: +상황에 따라, Minikube VM 을 정지: ```shell minikube stop eval $(minikube docker-env -u) ``` -Optionally, delete the Minikube VM: +상황에 따라, Minikube VM 을 삭제: ```shell minikube delete @@ -416,10 +416,8 @@ minikube delete {{% capture whatsnext %}} -* Learn more about [Deployment objects](/docs/concepts/workloads/controllers/deployment/). -* Learn more about [Deploying applications](/docs/user-guide/deploying-applications/). -* Learn more about [Service objects](/docs/concepts/services-networking/service/). +* [Deployment objects](/docs/concepts/workloads/controllers/deployment/) 에 대해서 더 배워봅니다. +* [Deploying applications](/docs/user-guide/deploying-applications/) 에 대해서 더 배워봅니다. +* [Service objects](/docs/concepts/services-networking/service/) 에 대해서 더 배워봅니다. {{% /capture %}} - -