diff --git a/content/ko/docs/setup/best-practices/_index.md b/content/ko/docs/setup/best-practices/_index.md new file mode 100644 index 0000000000000..844e41a352b8e --- /dev/null +++ b/content/ko/docs/setup/best-practices/_index.md @@ -0,0 +1,4 @@ +--- +title: 모범 사례 +weight: 40 +--- diff --git a/content/ko/docs/setup/certificates.md b/content/ko/docs/setup/best-practices/certificates.md similarity index 88% rename from content/ko/docs/setup/certificates.md rename to content/ko/docs/setup/best-practices/certificates.md index 7b9630c2820b8..0d833c95d8b67 100644 --- a/content/ko/docs/setup/certificates.md +++ b/content/ko/docs/setup/best-practices/certificates.md @@ -1,6 +1,7 @@ --- title: PKI 인증서 및 요구 조건 content_template: templates/concept +weight: 40 --- {{% capture overview %}} @@ -84,15 +85,15 @@ etcd 역시 클라이언트와 피어 간에 상호 TLS 인증을 구현한다. | 기본 CN | 권고되는 키 파일 경로 | 권고하는 인증서 파일 경로 | 명령어 | 키 파라미터 | 인증서 파라미터 | |------------------------------|------------------------------|-----------------------------|----------------|------------------------------|-------------------------------------------| -| etcd-ca | | etcd/ca.crt | kube-apiserver | | --etcd-cafile | +| etcd-ca | etcd/ca.key | etcd/ca.crt | kube-apiserver | | --etcd-cafile | | etcd-client | apiserver-etcd-client.key | apiserver-etcd-client.crt | kube-apiserver | --etcd-keyfile | --etcd-certfile | -| kubernetes-ca | | ca.crt | kube-apiserver | | --client-ca-file | +| kubernetes-ca | ca.key | ca.crt | kube-apiserver | | --client-ca-file | | kube-apiserver | apiserver.key | apiserver.crt | kube-apiserver | --tls-private-key-file | --tls-cert-file | -| apiserver-kubelet-client | | apiserver-kubelet-client.crt| kube-apiserver | | --kubelet-client-certificate | -| front-proxy-ca | | front-proxy-ca.crt | kube-apiserver | | --requestheader-client-ca-file | +| apiserver-kubelet-client | apiserver-kubelet-client.key | apiserver-kubelet-client.crt| kube-apiserver | | --kubelet-client-certificate | +| front-proxy-ca | front-proxy-ca.key | front-proxy-ca.crt | kube-apiserver | | --requestheader-client-ca-file | | front-proxy-client | front-proxy-client.key | front-proxy-client.crt | kube-apiserver | --proxy-client-key-file | --proxy-client-cert-file | | | | | | | | -| etcd-ca | | etcd/ca.crt | etcd | | --trusted-ca-file, --peer-trusted-ca-file | +| etcd-ca | etcd/ca.key | etcd/ca.crt | etcd | | --trusted-ca-file, --peer-trusted-ca-file | | kube-etcd | etcd/server.key | etcd/server.crt | etcd | --key-file | --cert-file | | kube-etcd-peer | etcd/peer.key | etcd/peer.crt | etcd | --peer-key-file | --peer-cert-file | | etcd-ca | | etcd/ca.crt | etcdctl[2] | | --cacert | @@ -128,12 +129,12 @@ KUBECONFIG= kubectl config use-context default-system 이 파일들은 다음과 같이 사용된다. -| 파일명 | 명령어 | 설명 | +| 파일명 | 명령어 | 설명 | |-------------------------|-------------------------|-----------------------------------------------------------------------| -| admin.conf | kubectl | 클러스터 관리자를 설정한다. | -| kubelet.conf | kubelet | 클러스터 각 노드를 위해 필요하다. | +| admin.conf | kubectl | 클러스터 관리자를 설정한다. | +| kubelet.conf | kubelet | 클러스터 각 노드를 위해 필요하다. | | controller-manager.conf | kube-controller-manager | 반드시 매니페스트를 `manifests/kube-controller-manager.yaml`에 추가해야한다. | -| scheduler.conf | kube-scheduler | 반드시 매니페스트를 `manifests/kube-scheduler.yaml`에 추가해야한다. | +| scheduler.conf | kube-scheduler | 반드시 매니페스트를 `manifests/kube-scheduler.yaml`에 추가해야한다. | [usage]: https://godoc.org/k8s.io/api/certificates/v1beta1#KeyUsage [kubeadm]: /docs/reference/setup-tools/kubeadm/kubeadm/ diff --git a/content/ko/docs/setup/cluster-large.md b/content/ko/docs/setup/best-practices/cluster-large.md similarity index 99% rename from content/ko/docs/setup/cluster-large.md rename to content/ko/docs/setup/best-practices/cluster-large.md index 5463923ba2c26..d227f6666253c 100644 --- a/content/ko/docs/setup/cluster-large.md +++ b/content/ko/docs/setup/best-practices/cluster-large.md @@ -1,6 +1,6 @@ --- title: 대형 클러스터 구축 -weight: 80 +weight: 20 --- ## 지원 diff --git a/content/ko/docs/setup/multiple-zones.md b/content/ko/docs/setup/best-practices/multiple-zones.md similarity index 99% rename from content/ko/docs/setup/multiple-zones.md rename to content/ko/docs/setup/best-practices/multiple-zones.md index 8b9804cc0e48b..d9ef519878203 100644 --- a/content/ko/docs/setup/multiple-zones.md +++ b/content/ko/docs/setup/best-practices/multiple-zones.md @@ -1,6 +1,6 @@ --- title: 여러 영역에서 구동 -weight: 90 +weight: 10 content_template: templates/concept --- diff --git a/content/ko/docs/setup/node-conformance.md b/content/ko/docs/setup/best-practices/node-conformance.md similarity index 99% rename from content/ko/docs/setup/node-conformance.md rename to content/ko/docs/setup/best-practices/node-conformance.md index 3af869d905e47..7e3e62dfa135d 100644 --- a/content/ko/docs/setup/node-conformance.md +++ b/content/ko/docs/setup/best-practices/node-conformance.md @@ -1,5 +1,6 @@ --- title: 노드 구성 검증하기 +weight: 30 --- {{< toc >}} diff --git a/content/ko/docs/setup/custom-cloud/_index.md b/content/ko/docs/setup/custom-cloud/_index.md deleted file mode 100644 index 5ddaaf3f3f7ad..0000000000000 --- a/content/ko/docs/setup/custom-cloud/_index.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -title: 사용자 지정 클라우드 솔루션 -weight: 50 ---- diff --git a/content/ko/docs/setup/independent/_index.md b/content/ko/docs/setup/independent/_index.md deleted file mode 100755 index e87c318721942..0000000000000 --- a/content/ko/docs/setup/independent/_index.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: "kubeadm으로 클러스터 부트스트래핑 하기" -weight: 30 ---- - diff --git a/content/ko/docs/setup/learning-environment/_index.md b/content/ko/docs/setup/learning-environment/_index.md new file mode 100644 index 0000000000000..cd7005bf795ac --- /dev/null +++ b/content/ko/docs/setup/learning-environment/_index.md @@ -0,0 +1,4 @@ +--- +title: 학습 환경 +weight: 20 +--- diff --git a/content/ko/docs/setup/minikube.md b/content/ko/docs/setup/learning-environment/minikube.md similarity index 56% rename from content/ko/docs/setup/minikube.md rename to content/ko/docs/setup/learning-environment/minikube.md index dc43fad4207c3..510013d88c86f 100644 --- a/content/ko/docs/setup/minikube.md +++ b/content/ko/docs/setup/learning-environment/minikube.md @@ -1,11 +1,11 @@ --- -title: Minikube로 로컬 상에서 쿠버네티스 구동 -content_template: templates/concept +title: Minikube로 쿠버네티스 설치 +content_template: templates/concept --- {{% capture overview %}} -Minikube는 쿠버네티스를 로컬에서 쉽게 실행하는 도구이다. Minikube는 매일 쿠버네티스를 사용하거나 개발하려는 사용자들을 위해 VM 이나 노트북에서 단일 노드 쿠버네티스 클러스터를 실행한다. +Minikube는 쿠버네티스를 로컬에서 쉽게 실행하는 도구이다. Minikube는 매일 쿠버네티스를 사용하거나 개발하려는 사용자들을 위해 가상 머신(VM) 이나 노트북에서 단일 노드 쿠버네티스 클러스터를 실행한다. {{% /capture %}} @@ -13,14 +13,15 @@ Minikube는 쿠버네티스를 로컬에서 쉽게 실행하는 도구이다. Mi ## Minikube 특징 -* Minikube는 다음과 같은 쿠버네티스의 기능을 제공한다. - * DNS - * 노드 포트 - * 컨피그 맵과 시크릿 - * 대시보드 - * 컨테이너 런타임: Docker, [rkt](https://github.com/rkt/rkt), [CRI-O](https://github.com/kubernetes-incubator/cri-o) 와 [containerd](https://github.com/containerd/containerd) - * CNI(Container Network Interface) 사용 - * 인그레스 +Minikube는 다음과 같은 쿠버네티스의 기능을 제공한다. + +* DNS +* 노드 포트 +* 컨피그 맵과 시크릿 +* 대시보드 +* 컨테이너 런타임: Docker, [rkt](https://github.com/rkt/rkt), [CRI-O](https://github.com/kubernetes-incubator/cri-o) 와 [containerd](https://github.com/containerd/containerd) +* CNI(Container Network Interface) 사용 +* 인그레스 ## 설치 @@ -28,123 +29,183 @@ Minikube는 쿠버네티스를 로컬에서 쉽게 실행하는 도구이다. Mi ## 빠른 시작 -여기부터는 Minikube 사용에 대한 간단한 데모이다. -VM 드라이버를 바꾸기 원하면 적절한 `--vm-driver=xxx` 플래그를 `minikube start`에 추가한다. -Minikube는 다음의 드라이버를 지원한다. - -* virtualbox -* vmwarefusion -* kvm2 ([driver installation](https://git.k8s.io/minikube/docs/drivers.md#kvm2-driver)) -* hyperkit ([driver installation](https://git.k8s.io/minikube/docs/drivers.md#hyperkit-driver)) -* hyperv ([driver installation](https://github.com/kubernetes/minikube/blob/master/docs/drivers.md#hyperv-driver)) -아래 나오는 IP주소는 동적이고 변할 수 있음을 알린다. 이는 `minikube ip` 명령으로 확인할 수 있다. -* vmware ([driver installation](https://github.com/kubernetes/minikube/blob/master/docs/drivers.md#vmware-unified-driver)) (VMware unified driver) -* none (쿠버네티스 구성요소는 VM이 아닌 호스트상에서 동작한다. 이 드라이버를 사용하기 위해서는 Docker ([docker 설치](https://docs.docker.com/install/linux/docker-ce/ubuntu/))와 리눅스 환경)이 필요하다. +여기서 기술하는 간단한 데모는 어떻게 로컬에서 Minikube를 시작하고, 사용하고 삭제하는지를 안내한다. 다음의 주어진 단계를 따라서 Minikube를 시작하고 탐구한다. + +1. Minikube를 시작하고 클러스터를 생성 + ```shell + minikube start + ``` + 결과는 다음과 비슷하다. + + ``` + Starting local Kubernetes cluster... + Running pre-create checks... + Creating machine... + Starting local Kubernetes cluster... + ``` + 특정 쿠버네티스 버전, VM, 컨테이너 런타임 상에서 클러스터를 시작하기 위한 보다 상세한 정보는 [클러스터 시작하기](#클러스터-시작하기)를 참조한다. + +2. 이제, kubectl을 통해서 클러스터와 상호작용할 수 있다. 보다 상세한 정보는 [클러스터와 상호 작용하기](#클러스터와-상호-작용하기)를 참조한다. + + 단순한 HTTP 서버인 `echoserver` 이미지를 사용해서 쿠버네티스 디플로이먼트를 만들고 `--port`를 이용해서 8080 포트로 노출해보자. + ```shell + kubectl run hello-minikube --image=k8s.gcr.io/echoserver:1.10 --port=8080 + ``` + 결과는 다음과 비슷하다. + ``` + deployment.apps/hello-minikube created + ``` +3. `hello-minikube` 디플로이먼트에 액세스하기 위해, 서비스로 노출시킨다. + ```shell + kubectl expose deployment hello-minikube --type=NodePort + ``` + `--type=NodePort` 옵션은 서비스 타입을 지정한다. + + 결과는 다음과 비슷하다. + ``` + service/hello-minikube exposed + ``` +4. `hello-minikube` 파드가 이제 시작되었지만 노출된 서비스를 통해서 접근하기 전에 파드가 뜨기를 기다려야한다. + + 파드가 떠서 구동되고 있는지 확인한다. + ```shell + kubectl get pod + ``` + 출력에서 `STATUS`가 `ContainerCreating`으로 나타나는 경우, 파드는 아직 생성 중이다. + ``` + NAME READY STATUS RESTARTS AGE + hello-minikube-3383150820-vctvh 0/1 ContainerCreating 0 3s + ``` + 출력에서 `STATUS`가 `Running`으로 나타나는 경우, 파드는 이제 떠서 기동 중이다. + ``` + NAME READY STATUS RESTARTS AGE + hello-minikube-3383150820-vctvh 1/1 Running 0 13s + ``` +5. 서비스 상세를 보기 위해서 노출된 서비스의 URL을 얻는다. + ```shell + minikube service hello-minikube --url + ``` +6. 로컬 클러스터의 상세를 보기위해서, 출력에서 얻은 URL을 브라우저에 복사해서 붙여 넣는다. + + 출력은 다음과 비슷하다. + ``` + Hostname: hello-minikube-7c77b68cff-8wdzq + + Pod Information: + -no pod information available- + + Server values: + server_version=nginx: 1.13.3 - lua: 10008 + + Request Information: + client_address=172.17.0.1 + method=GET + real path=/ + query= + request_version=1.1 + request_scheme=http + request_uri=http://192.168.99.100:8080/ + + Request Headers: + accept=*/* + host=192.168.99.100:30674 + user-agent=curl/7.47.0 + + Request Body: + -no body in request- + ``` + 서비스나 클러스터가 더 이상 구동되지 않도록 하려면, 삭제한다. +7. `hello-minikube` 서비스 삭제 + ```shell + kubectl delete services hello-minikube + ``` + 출력은 다음과 비슷하다. + ``` + service "hello-minikube" deleted + ``` +8. `hello-minikube` 디플로이먼트 삭제 + ```shell + kubectl delete deployment hello-minikube + ``` + 출력은 다음과 비슷하다. + ``` + deployment.extensions "hello-minikube" deleted + ``` +9. 로컬 Minikube 클러스터 중지 + ```shell + minikube stop + ``` + 출력은 다음과 비슷하다. + ``` + Stopping "minikube"... + "minikube" stopped. + ``` + 보다 상세한 정보는 [클러스터 중지하기](#클러스터-중지하기)를 참조한다. +10. 로컬 Minikube 클러스터 삭제 + ```shell + minikube delete + ``` + 출력은 다음과 비슷하다. + ``` + Deleting "minikube" ... + The "minikube" cluster has been deleted. + ``` + 보다 상세한 정보는 [Deleting a cluster](#클러스터-삭제하기)를 참조한다. + +## 클러스터 관리하기 + +### 클러스터 시작하기 + +클러스터를 시작하기 위해서 `minikube start` 커멘드를 사용할 수 있다. +이 커멘드는 단일 노드 쿠버네티스 클러스터를 구동하는 가상 머신을 생성하고 구성한다. +이 커멘드는 또한 [kubectl](/docs/user-guide/kubectl-overview/)도 설정해서 클러스터와 통신할 수 있도록 한다. -```shell -minikube start -``` -``` -Starting local Kubernetes cluster... -Running pre-create checks... -Creating machine... -Starting local Kubernetes cluster... -``` -```shell -kubectl run hello-minikube --image=k8s.gcr.io/echoserver:1.10 --port=8080 -``` -``` -deployment.apps/hello-minikube created -``` +{{< note >}} +웹 프록시 뒤에 있다면, `minikube start` 커맨드에 해당 정보를 전달해야 한다. ```shell -kubectl expose deployment hello-minikube --type=NodePort -``` -``` -service/hello-minikube exposed -``` - -에코 서버 파드를 실행했지만 노출된 서비스를 통해 curl 등의 접근하기 전에 -파드가 올라갈 때까지 기다려야 한다. -파드가 실행 중인지 확인하기 위해 다음을 이용할 수 있다. - -``` -kubectl get pod -``` -``` -NAME READY STATUS RESTARTS AGE -hello-minikube-3383150820-vctvh 0/1 ContainerCreating 0 3s -``` - -이 파드는 ContainerCreating 상태임을 알 수 있다. -kubectl get pod - -``` -NAME READY STATUS RESTARTS AGE -hello-minikube-3383150820-vctvh 1/1 Running 0 13s -``` - -이제 파드가 Running 상태이므로 curl를 실행해 볼 수 있다. - -``` -curl $(minikube service hello-minikube --url) -``` +https_proxy= minikube start --docker-env http_proxy= --docker-env https_proxy= --docker-env no_proxy=192.168.99.0/24 ``` +불행하게도, 환경 변수 설정만으로는 되지 않는다. -Hostname: hello-minikube-7c77b68cff-8wdzq - -Pod Information: - -no pod information available- - -Server values: - server_version=nginx: 1.13.3 - lua: 10008 - -Request Information: - client_address=172.17.0.1 - method=GET - real path=/ - query= - request_version=1.1 - request_scheme=http - request_uri=http://192.168.99.100:8080/ +Minikube는 또한 "minikube" 컨텍스트를 생성하고 이를 kubectl의 기본값으로 설정한다. +이 컨텍스트로 돌아오려면, 다음의 코멘드를 입력한다. `kubectl config use-context minikube`. +{{< /note >}} -Request Headers: - accept=*/* - host=192.168.99.100:30674 - user-agent=curl/7.47.0 +#### 쿠버네티스 버전 지정하기 -Request Body: - -no body in request- -``` +`minikube start` 코멘드에 `--kubernetes-version` 문자열을 +추가해서 Minikube에서 사용할 쿠버네티스 버전을 지정할 수 있다. +예를 들어 버전 {{< param "fullversion" >}}를 구동하려면, 다음과 같이 실행한다. -```shell -kubectl delete services hello-minikube -``` ``` -service "hello-minikube" deleted +minikube start --kubernetes-version {{< param "fullversion" >}} ``` - +#### VM 드라이버 지정하기 +`minikube start` 코멘드에 `--vm-driver=` 플래그를 추가해서 VM 드라이버를 변경할 수 있다. +코멘드를 예를 들면 다음과 같다. ```shell -kubectl delete deployment hello-minikube -``` -``` -deployment.extensions "hello-minikube" deleted +minikube start --vm-driver= ``` + Minikube는 다음의 드라이버를 지원한다. + {{< note >}} + 지원되는 드라이버와 플러그인 설치 방법에 대한 보다 상세한 정보는 [드라이버](https://git.k8s.io/minikube/docs/drivers.md)를 참조한다. +{{< /note >}} -```shell -minikube stop -``` -``` -Stopping local Kubernetes cluster... -Stopping "minikube"... -``` - -### 다른 컨테이너 런타임 - -#### containerd - +* virtualbox +* vmwarefusion +* kvm2 ([드라이버 설치](https://git.k8s.io/minikube/docs/drivers.md#kvm2-driver)) +* hyperkit ([드라이버 설치](https://git.k8s.io/minikube/docs/drivers.md#hyperkit-driver)) +* hyperv ([드라이버 설치](https://github.com/kubernetes/minikube/blob/master/docs/drivers.md#hyperv-driver)) +다음 IP는 동적이며 변경할 수 있다. `minikube ip`로 알아낼 수 있다. +* vmware ([드라이버 설치](https://github.com/kubernetes/minikube/blob/master/docs/drivers.md#vmware-unified-driver)) (VMware unified driver) +* none (쿠버네티스 컴포넌트를 VM이 아닌 호스트 상에서 구동한다. 이 드라이버를 사용하려면 도커와 리눅스 환경이 필요하다.([도커 설치](https://docs.docker.com/install/linux/docker-ce/ubuntu/))) + +#### 대안적인 컨테이너 런타임 상에서 클러스터 시작하기 +Minikube를 다음의 컨테이너 런타임에서 기동할 수 있다. +{{< tabs name="container_runtimes" >}} +{{% tab name="containerd" %}} [containerd](https://github.com/containerd/containerd)를 컨테이너 런타임으로 사용하려면, 다음을 실행한다. - ```bash minikube start \ --network-plugin=cni \ @@ -164,9 +225,8 @@ minikube start \ --extra-config=kubelet.image-service-endpoint=unix:///run/containerd/containerd.sock \ --bootstrapper=kubeadm ``` - -#### CRI-O - +{{% /tab %}} +{{% tab name="CRI-O" %}} [CRI-O](https://github.com/kubernetes-incubator/cri-o)를 컨테이너 런타임으로 사용하려면, 다음을 실행한다. ```bash @@ -176,7 +236,6 @@ minikube start \ --container-runtime=cri-o \ --bootstrapper=kubeadm ``` - 혹은 확장 버전을 사용할 수 있다. ```bash @@ -188,9 +247,8 @@ minikube start \ --extra-config=kubelet.image-service-endpoint=/var/run/crio.sock \ --bootstrapper=kubeadm ``` - -#### rkt 컨테이너 엔진 - +{{% /tab %}} +{{% tab name="rkt container engine" %}} [rkt](https://github.com/rkt/rkt)를 컨테이너 런타임으로 사용하려면, 다음을 실행한다. ```shell @@ -199,37 +257,38 @@ minikube start \ --enable-default-cni \ --container-runtime=rkt ``` - 이것은 rkt와 Docker와 CNI 네트워킹을 포함하는 대안적인 Minikube ISO 이미지를 이용한다. +{{% /tab %}} +{{< /tabs >}} -### 드라이버 플러그인 - -지원하는 드라이버 상세 정보와 설치방법은 [드라이버](https://git.k8s.io/minikube/docs/drivers.md)를 살펴보자 -꼭 필요하다면 말이다. +#### Docker 데몬 재사용을 통한 로컬 이미지 사용하기 -### Docker 데몬 재사용 +쿠버네티스 단일 VM을 사용하면 Minikube에 내장된 도커 데몬을 재사용하기에 매우 간편하다. 이 경우는 호스트 장비에 도커 레지스트리를 설치하고 이미지를 푸시할 필요가 없다. 또 로컬에서 빠르게 실행할 수 있는데 이는 Minikube와 동일한 도커 데몬 안에서 이미지를 빌드하기 때문이다. -쿠버네티스 단일 VM을 사용하면 Minikube에 내장된 Docker 데몬을 재사용하기에 매우 간편하다. 이 경우는 호스트 장비에 Docker 레지스트리를 설치하고 이미지를 푸시할 필요가 없다. 또 로컬에서 빠르게 실행할 수 있는데 이는 Minikube와 동일한 Docker 데몬 안에서 이미지를 빌드하기 때문이다. Docker 이미지를 'latest'가 아닌 다른 태그로 태그했는지 확인하고 이미지를 풀링할 때에는 그 태그를 이용한다. 혹시 이미지 태그 버전을 지정하지 않았다면, 기본값은 `:latest`이고 이미지 풀링 정책은 `Always`가 가정하나, 만약 기본 Docker 레지스트리(보통 DockerHub)에 해당 Docker 이미지 버전이 없다면 `ErrImagePull`의 결과가 나타날 것이다. +{{< note >}} +Docker 이미지를 'latest'가 아닌 다른 태그로 태그했는지 확인하고 이미지를 풀링할 때에는 그 태그를 이용한다. 혹시 이미지 태그 버전을 지정하지 않았다면, 기본값은 `:latest`이고 이미지 풀링 정책은 `Always`가 가정하나, 만약 기본 Docker 레지스트리(보통 DockerHub)에 해당 Docker 이미지 버전이 없다면 `ErrImagePull`의 결과가 나타날 것이다. +{{< /note >}} -맥이나 리눅스 호스트의 Docker 데몬에서 이 작업이 가능하게 하려면 `docker-env command`를 쉘에서 사용해야 한다. +맥이나 리눅스 호스트에서 해당 Docker 데몬을 사용하려면 `docker-env command`를 쉘에서 사용해야 한다. ```shell eval $(minikube docker-env) ``` -맥이나 리눅스 호스트에서 Minikube VM안에 Docker 데몬과 통신하도록 Docker를 명령행에서 사용할 수 있어야 한다. +이제 개인의 맥/리눅스 머신 내 커멘드 라인에서 도커를 사용해서 Minikube VM 안의 도커 데몬과 통신할 수 있다. ```shell docker ps ``` +{{< note >}} Centos 7 에서 Docker는 아래와 같은 오류를 발생한다. -```shell +``` Could not read CA certificate "/etc/docker/ca.pem": open /etc/docker/ca.pem: no such file or directory ``` -해결 방법은 /etc/sysconfig/docker를 Minikube의 환경 변화를 기대한 것대로 바꾸도록 업데이트하는 것이다. +/etc/sysconfig/docker를 업데이트하고 Minikube의 환경에 변경이 반영되었는지 확인해서 고칠 수 있다. ```shell < DOCKER_CERT_PATH=/etc/docker @@ -238,39 +297,9 @@ Could not read CA certificate "/etc/docker/ca.pem": open /etc/docker/ca.pem: no > DOCKER_CERT_PATH=/etc/docker > fi ``` +{{< /note >}} -imagePullPolicy:Always를 꺼야하는 것은 명심하자. 그렇지 않으면 쿠버네티스가 로컬에서 빌드한 이미지를 사용하지 않는다. - -## 클러스터 관리 - -### 클러스터 시작 - -`minikube start` 명령은 클러스터를 시작하는데 사용할 수 있다. -이 명령은 단일 노드 쿠버네티스 클러스터를 실행하는 가상머신을 생성하고 구성한다. -또한 클러스터와 통신하기 위해 [kubectl](/docs/user-guide/kubectl-overview/)를 구성한다. - -만약 웹 프록시를 사용 중이라면 `minikube start` 명령에서 이 정보를 포함해야 한다. - -```shell -https_proxy= minikube start --docker-env http_proxy= --docker-env https_proxy= --docker-env no_proxy=192.168.99.0/24 -``` - -불행히 환경 설정 변수만으로는 동작하지 않는다. - -Minikube는 또한 "minikube" 컨텍스트를 생성하고, kubectl의 기본값으로 설정한다. -나중에 이 컨택스트를 변경하려면, `kubectl config use-context minikube` 명령을 실행하자. - -#### 쿠버네티스 버전 지정 - -Minikube에서 사용할 쿠버네티스 버전은 `--kubernetes-version` 문자열을 -`minikube start` 명령에 추가하여 지정할 수 있다. -예를 들어, `v1.7.3`을 이용한다면 아래처럼 할 수 있다. - -``` -minikube start --kubernetes-version v1.7.3 -``` - -### 쿠버네티스 구성 +### 쿠버네티스 구성하기 Minikube는 사용자가 쿠버네티스 컴포넌트를 다양한 값으로 설정할 수 있도록 하는 '설정기' 기능이 있다. 이 기능을 사용하려면, `--extra-config` 플래그를 `minikube start` 명령어에 추가하여야 한다. @@ -307,18 +336,18 @@ Minikube는 사용자가 쿠버네티스 컴포넌트를 다양한 값으로 설 `minikube delete` 명령은 클러스터를 삭제하는데 사용할 수 있다. 이 명령어는 Minikube 가상 머신을 종료하고 삭제한다. 어떤 데이터나 상태도 보존되지 않다. -## 클러스터와 상호 작용 +## 클러스터와 상호 작용하기 ### Kubectl -`minikube start` 명령어는 Minikube로 부르는 "[kubectl 컨텍스트](/docs/reference/generated/kubectl/kubectl-commands/#-em-set-context-em-)" 를 생성한다. +`minikube start` 명령어는 Minikube로 부르는 [kubectl 컨텍스트](/docs/reference/generated/kubectl/kubectl-commands/#-em-set-context-em-)를 생성한다. 이 컨텍스트는 Minikube 클러스터와 통신하는 설정을 포함한다. Minikube는 이 컨텍스트를 자동적으로 기본으로 설정한다. 만약 미래에 이것을 바꾸고 싶다면 `kubectl config use-context minikube`을 실행하자. -혹은 각 명령어를 `kubectl get pods --context=minikube`처럼 컨텍스트를 전달하십시오. +혹은 `kubectl get pods --context=minikube`처럼 코멘드를 실행할때마다 매번 컨텍스트를 전달한다. ### 대시보드 @@ -400,7 +429,7 @@ Minikube와 함께 시작하려는 애드온을 `~/.minikube/addons` 디렉터 폴더 내부의 애드온은 Minikube VM으로 이동되어 Minikube가 시작하거나 재시작될 때에 함께 실행된다. -## HTTP 프록시 환경에서 Minikube 사용 +## HTTP 프록시 환경에서 Minikube 사용하기 Minikube는 쿠버네티스와 Docker 데몬을 포함한 가상 머신을 생성한다. 쿠버네티스가 Docker를 이용하여 컨테이너를 스케쥴링 시도할 때에, Docker 데몬은 컨테이너 이미지를 풀링하기 위해 외부 네트워크를 이용해야 한다. diff --git a/content/ko/docs/setup/production-environment/_index.md b/content/ko/docs/setup/production-environment/_index.md new file mode 100644 index 0000000000000..5296cfcaf2fe1 --- /dev/null +++ b/content/ko/docs/setup/production-environment/_index.md @@ -0,0 +1,4 @@ +--- +title: 운영 환경 +weight: 30 +--- diff --git a/content/ko/docs/setup/cri.md b/content/ko/docs/setup/production-environment/container-runtimes.md similarity index 97% rename from content/ko/docs/setup/cri.md rename to content/ko/docs/setup/production-environment/container-runtimes.md index 11408b9562b1f..74a9489426bed 100644 --- a/content/ko/docs/setup/cri.md +++ b/content/ko/docs/setup/production-environment/container-runtimes.md @@ -1,7 +1,7 @@ --- -title: CRI 설치 +title: 컨테이너 런타임 content_template: templates/concept -weight: 100 +weight: 10 --- {{% capture overview %}} {{< feature-state for_k8s_version="v1.6" state="stable" >}} @@ -181,7 +181,7 @@ add-apt-repository ppa:projectatomic/ppa apt-get update # CRI-O 설치 -apt-get install cri-o-1.11 +apt-get install cri-o-1.13 {{< /tab >}} {{< tab name="CentOS/RHEL 7.4+" codelang="bash" >}} @@ -281,7 +281,7 @@ systemctl restart containerd `systemd` cgroup driver를 사용하려면, `/etc/containerd/config.toml`의 `plugins.cri.systemd_cgroup = true`을 설정한다. kubeadm을 사용하는 경우에도 마찬가지로, 수동으로 -[cgroup driver for kubelet](/docs/setup/independent/install-kubeadm/#configure-cgroup-driver-used-by-kubelet-on-master-node)을 +[cgroup driver for kubelet](/docs/setup/production-environment/tools/kubeadm/install-kubeadm/#configure-cgroup-driver-used-by-kubelet-on-master-node)을 설정해준다. ## 다른 CRI 런타임: frakti diff --git a/content/ko/docs/setup/on-premises-vm/_index.md b/content/ko/docs/setup/production-environment/on-premises-vm/_index.md similarity index 76% rename from content/ko/docs/setup/on-premises-vm/_index.md rename to content/ko/docs/setup/production-environment/on-premises-vm/_index.md index 92d67a957cc0b..d9b92bea18310 100644 --- a/content/ko/docs/setup/on-premises-vm/_index.md +++ b/content/ko/docs/setup/production-environment/on-premises-vm/_index.md @@ -1,4 +1,4 @@ --- title: 온-프레미스 VM -weight: 60 +weight: 40 --- diff --git a/content/ko/docs/setup/production-environment/tools/_index.md b/content/ko/docs/setup/production-environment/tools/_index.md new file mode 100644 index 0000000000000..5beb1d5a9da43 --- /dev/null +++ b/content/ko/docs/setup/production-environment/tools/_index.md @@ -0,0 +1,4 @@ +--- +title: Installing Kubernetes with deployment tools +weight: 30 +--- diff --git a/content/ko/docs/setup/custom-cloud/kops.md b/content/ko/docs/setup/production-environment/tools/kops.md similarity index 99% rename from content/ko/docs/setup/custom-cloud/kops.md rename to content/ko/docs/setup/production-environment/tools/kops.md index f19e0488d638c..50dad0c32e728 100644 --- a/content/ko/docs/setup/custom-cloud/kops.md +++ b/content/ko/docs/setup/production-environment/tools/kops.md @@ -1,6 +1,7 @@ --- -title: Kops로 AWS에 쿠버네티스 설치하기 +title: Kops로 쿠버네티스 설치하기 content_template: templates/concept +weight: 20 --- {{% capture overview %}} diff --git a/content/ko/docs/setup/turnkey/_index.md b/content/ko/docs/setup/production-environment/turnkey/_index.md similarity index 80% rename from content/ko/docs/setup/turnkey/_index.md rename to content/ko/docs/setup/production-environment/turnkey/_index.md index 8abee4413ce5b..652a2f3f63dee 100644 --- a/content/ko/docs/setup/turnkey/_index.md +++ b/content/ko/docs/setup/production-environment/turnkey/_index.md @@ -1,4 +1,4 @@ --- title: 턴키 클라우드 솔루션 -weight: 40 +weight: 30 --- diff --git a/content/ko/docs/setup/release/_index.md b/content/ko/docs/setup/release/_index.md index 9ced1d7beeffa..4f2fadb8add8c 100755 --- a/content/ko/docs/setup/release/_index.md +++ b/content/ko/docs/setup/release/_index.md @@ -1,5 +1,5 @@ --- -title: "쿠버네티스 다운로드" -weight: 20 +title: "릴리스 노트와 버전 정책" +weight: 10 --- diff --git a/content/ko/docs/setup/release/building-from-source.md b/content/ko/docs/setup/release/building-from-source.md deleted file mode 100644 index d8b9af438f3c7..0000000000000 --- a/content/ko/docs/setup/release/building-from-source.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: 릴리스 빌드 -content_template: templates/concept -card: - name: download - weight: 20 - title: 릴리스 빌드하기 ---- - -{{% capture overview %}} -소스로부터 빌드하거나 이미 빌드된 릴리스를 다운받을 수 있다. 쿠버네티스를 자체를 개발할 계획이 없다면, [릴리스 노트](/docs/setup/release/notes/)에 있는 현재 릴리스 빌드 버전을 사용하는 것을 추천한다. - -쿠버네티스 소스 코드는 [kubernetes/kubernetes](https://github.com/kubernetes/kubernetes) 리포지토리에서 다운받을 수 있다. -{{% /capture %}} - -{{% capture body %}} -## 소스로부터 빌드 - -소스 코드를 빌드만 하려면, 모든 빌드 과정이 Docker 컨테이너 안에서 실행되기 때문에 golang 환경을 구축할 필요가 없다. - -릴리스를 빌드하는 것은 간단하다. - -```shell -git clone https://github.com/kubernetes/kubernetes.git -cd kubernetes -make release -``` - -릴리스 절차에 대한 더 자세한 설명은 kubernetes/kubernetes [`빌드`](http://releases.k8s.io/{{< param "githubbranch" >}}/build/) 디렉토리를 참조한다. -{{% /capture %}}