Fourth Korean l10n work for release-1.13 (#12242)
* ko-trans: Fix broken page index for concepts/overview (#11533) * ko-trans: Update outdated files in dev-1.13-ko.4 (#11544) * 1. Translate naturally (#11759) 2. Fix markdown error * ko-trans: Translate building-from-source.md (#11893) * ko-trans: Translate building-from-source.md * Address comments * Update etcd.md (#11976) * ko-trans: Translate ko/_index.html into Korean (#11937) * ko-trans: Translate ko/_index.html into Korean. * Reflect a translation comment. Translate ko/_index.html into Korean * ko-trans: Translate online-training/overview.md (#11932) * ko-trans: Translate node-conformance.md (#11907) * ko-trans: Translate node-conformance.md * Replace 명세 with 매니페스트. * Address comments * ko-trans: Translate tutorials/configuration (#11933) * ko-trans: Translate `tutorials/configuration` directory * Address comments * ko-trans: content/ko/docs/reference/glossary/controller.md (#11994) * ko-trans: Controller ko-trans: Controller * the feedback applied. the feedback applied. * minor edit minor edit * minor edit #2 minor edit #2 * ko-trans: reference/glossary/kube-apiserver.md (#12024) ko-trans: reference/glossary/kube-apiserver.md * Translate tutorials/stateless-application/ in Korean (#12008) * Translate tutorials/stateless-application/ in Korean * Apply comments * Fix deployment related typos * Translate content/ko/docs/concepts/architecture/nodes in Korean #11748 (#11850) * Translate content/ko/docs/concepts/architecture/nodes in Korean #11748 * Translate content/ko/docs/concepts/architecture/nodes in Korean #11748 * Translate content/ko/docs/concepts/architecture/nodes in Korean #11748 * Translate concepts/workloads/pods/pod-lifecycle in Korean (#12054) * Translate concepts/workloads/pods/pod-lifecycle in Korean * apply review ko-translate concepts/.../pod-lifecycle * ko-trans: kube-controller-manager.md (#12077) ko-trans: docs/reference/glossary/kube-controller-manager.md * fix Italic syntax markdown error (#12128) * Translate tasks/_index.md in Korean (#12126) * Translate tasks/_index.md in Korean * Apply review for Translate tasks/_index.md in Korean Apply comments for Translate tasks/_index.md in Korean * Translate setup/_index.md in Korean (#12067) * Translate setup/_index.md in Korean * Update setup/_index.md for Korean term consistency * ko-trans: docs/setup/custom-cloud/kops.md (#11904) * ko-trans: concepts/overview/working-with-objects/names (#11758) * ko-trans: /docs/concepts/overview/working-with-objects/namespaces.md (#11773) * Translate setup/cri.md in Korean (#12174) * Translate setup/cri.md in Korean * Apply review, Translate setup/cri.md in Korean * Translate tasks/tools/install-minikube in Korean (#12176) * Translate tasks/tools/install-minikube in Korean * Apply review,Trans tasks/tools/install-minikube in KO
This commit is contained in:
committed by
Kubernetes Prow Robot
parent
0f6457d5df
commit
848a46a3b7
@@ -8,84 +8,69 @@ content_template: templates/concept
|
||||
|
||||
{{% capture overview %}}
|
||||
|
||||
Use this page to find the type of solution that best fits your needs.
|
||||
니즈에 가장 적합한 솔루션 유형을 찾기 위해서는 이 페이지를 사용하길 바란다.
|
||||
|
||||
Deciding where to run Kubernetes depends on what resources you have available
|
||||
and how much flexibility you need. You can run Kubernetes almost anywhere,
|
||||
from your laptop to VMs on a cloud provider to a rack of bare metal servers.
|
||||
You can also set up a fully-managed cluster by running a single command or craft
|
||||
your own customized cluster on your bare metal servers.
|
||||
쿠버네티스를 어디에서 동작시킬지 결정하는 것은 가용한 자원과 요구되는 유연성의 정도에 의존적이다. 쿠버네티스는 랩톱부터, 클라우드 프로바이더의 VM, 베어메탈(bare metal) 서버로 이루어진 랙까지 거의 모든 곳에서 동작시킬 수 있다. 또한 단 하나의 명령어 실행으로 완전-관리되는(fully-managed) 클러스터를 설치할 수도 있고, 베어메탈 서버에 자신만의 맞춤형 클러스터를 만들 수도 있다.
|
||||
|
||||
{{% /capture %}}
|
||||
|
||||
{{% capture body %}}
|
||||
|
||||
## Local-machine Solutions
|
||||
## 로컬 머신(Local-machine) 솔루션
|
||||
|
||||
A local-machine solution is an easy way to get started with Kubernetes. You
|
||||
can create and test Kubernetes clusters without worrying about consuming cloud
|
||||
resources and quotas.
|
||||
로컬 머신 솔루션은 쿠버네티스를 시작하기에 쉬운 방법이다. 클라우드 자원(resource)과 한도(quota)에 대한 걱정 없이 쿠버네티스 클러스터를 생성하고 테스트할 수 있다.
|
||||
|
||||
You should pick a local solution if you want to:
|
||||
다음과 같은 사항을 원한다면 로컬 솔루션을 선택해야 한다.
|
||||
|
||||
* Try or start learning about Kubernetes
|
||||
* Develop and test clusters locally
|
||||
* 쿠버네티스를 써 보거나 배우기 시작하려고 함
|
||||
* 내부적으로 클러스터를 개발하거나 테스트하려고 함
|
||||
|
||||
Pick a [local-machine solution](/docs/setup/pick-right-solution/#local-machine-solutions).
|
||||
[로컬 머신 솔루션](/docs/setup/pick-right-solution/#local-machine-solutions) 중 하나를 선택하길 바란다.
|
||||
|
||||
## Hosted Solutions
|
||||
## 호스트 된(Hosted) 솔루션
|
||||
|
||||
Hosted solutions are a convenient way to create and maintain Kubernetes clusters. They
|
||||
manage and operate your clusters so you don’t have to.
|
||||
호스트 된 솔루션은 쿠버네티스 클러스터를 생성하고 유지 관리하는데 편리한 방법이다. 호스트가 사용자의 클러스터를 관리하고 운영하기 때문에 사용자는 관리와 운영에서 자유롭다.
|
||||
|
||||
You should pick a hosted solution if you:
|
||||
다음의 경우 호스트 된 솔루션이 필요하다.
|
||||
|
||||
* Want a fully-managed solution
|
||||
* Want to focus on developing your apps or services
|
||||
* Don’t have dedicated site reliability engineering (SRE) team but want high availability
|
||||
* Don't have resources to host and monitor your clusters
|
||||
* 완전히 관리된 솔루션을 원함
|
||||
* 사용자의 앱 또는 서비스를 개발에만 집중하고 싶음
|
||||
* 지정된 사이트 신뢰성 엔지니어링(SRE) 팀은 없지만 고가용성을 원함
|
||||
* 클러스터를 호스팅하고 모니터할 자원이 없음
|
||||
|
||||
Pick a [hosted solution](/docs/setup/pick-right-solution/#hosted-solutions).
|
||||
[호스트 된 솔루션](/docs/setup/pick-right-solution/#hosted-solutions) 중 하나를 선택하길 바란다.
|
||||
|
||||
## Turnkey – Cloud Solutions
|
||||
## 턴키(Turnkey) – 클라우드 솔루션
|
||||
|
||||
이와 같은 솔루션들은 쿠버네티스 클러스터를 단지 몇 가지 명령어로 생성하게 해준다. 솔루션들은 활발히 개발되며 활동적인 커뮤니티의 지원을 받는다. 또한 넓은 범위의 IaaS 클라우드 프로바이더들에 호스트 될 수 있음에도, 노력의 대가로 솔루션들은 더욱 더 큰 자유와 유연성을 제공한다.
|
||||
|
||||
These solutions allow you to create Kubernetes clusters with only a few commands and
|
||||
are actively developed and have active community support. They can also be hosted on
|
||||
a range of Cloud IaaS providers, but they offer more freedom and flexibility in
|
||||
exchange for effort.
|
||||
다음의 경우 턴키 클라우드 솔루션을 선택해야 한다.
|
||||
|
||||
You should pick a turnkey cloud solution if you:
|
||||
* 호스트 된 솔루션이 허용하는 것보다는 클러스터에 대한 더 높은 제어권을 원함
|
||||
* 운영에 대한 더 큰 소유권을 가지고 싶음
|
||||
|
||||
* Want more control over your clusters than the hosted solutions allow
|
||||
* Want to take on more operations ownership
|
||||
[턴키 클라우드 솔루션](/docs/setup/pick-right-solution/#turnkey-cloud-solutions) 중 하나를 선택하길 바란다.
|
||||
|
||||
Pick a [turnkey cloud solution](/docs/setup/pick-right-solution/#turnkey-cloud-solutions)
|
||||
## 턴키(Turnkey) – 온-프레미스(On-Premise) 솔루션
|
||||
|
||||
## Turnkey – On-Premises Solutions
|
||||
이와 같은 솔루션들은 내부의, 안전한, 클라우드 네트워크에 쿠버네티스 클러스터를 단 몇 가지 명령어로 생성하게 해준다.
|
||||
|
||||
These solutions allow you to create Kubernetes clusters on your internal, secure,
|
||||
cloud network with only a few commands.
|
||||
다음의 경우 온-프레미스 턴키 솔루션을 선택해야 한다.
|
||||
|
||||
You should pick a on-prem turnkey cloud solution if you:
|
||||
* 프라이빗 클라우드 네트워크에 클러스터를 디플로이하길 원함
|
||||
* 지정된 사이트 신뢰성 엔지니어링(SRE) 팀을 보유함
|
||||
* 클러스터를 호스팅하고 모니터할 수 있는 자원을 보유함
|
||||
|
||||
* Want to deploy clusters on your private cloud network
|
||||
* Have a dedicated SRE team
|
||||
* Have the resources to host and monitor your clusters
|
||||
[온-프레미스 턴키 클라우드 솔루션](/docs/setup/pick-right-solution/#on-premises-turnkey-cloud-solutions) 중 하나를 선택하길 바란다.
|
||||
|
||||
Pick an [on-prem turnkey cloud solution](/docs/setup/pick-right-solution/#on-premises-turnkey-cloud-solutions).
|
||||
## 사용자 지정(Custom) 솔루션
|
||||
|
||||
## Custom Solutions
|
||||
사용자 지정 솔루션들은 클러스터에 대해서 가장 큰 자유를 제공하지만, 그 대신 높은 전문성을 필요로 한다. 이 솔루션들은 서로 다른 운영체제들에 대해서 베어메탈부터 클라우드 프로바이더들까지의 지원을 포함한다.
|
||||
|
||||
Custom solutions give you the most freedom over your clusters but require the
|
||||
most expertise. These solutions range from bare-metal to cloud providers on
|
||||
different operating systems.
|
||||
|
||||
Pick a [custom solution](/docs/setup/pick-right-solution/#custom-solutions).
|
||||
[사용자 지정 솔루션](/docs/setup/pick-right-solution/#custom-solutions) 중 하나를 선택하길 바란다.
|
||||
|
||||
{{% /capture %}}
|
||||
|
||||
{{% capture whatsnext %}}
|
||||
Go to [Picking the Right Solution](/docs/setup/pick-right-solution/) for a complete
|
||||
list of solutions.
|
||||
완전한 솔루션 리스트를 확인하기 위해서는 [올바른 솔루션 선택하기](/docs/setup/pick-right-solution/)로 가길 바란다.
|
||||
{{% /capture %}}
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
---
|
||||
title: 소스로부터 빌드
|
||||
---
|
||||
|
||||
You can either build a release from source or download a pre-built release. If you do not plan on developing Kubernetes itself, we suggest using a pre-built version of the current release, which can be found in the [Release Notes](/docs/setup/release/notes/).
|
||||
|
||||
The Kubernetes source code can be downloaded from the [kubernetes/kubernetes](https://github.com/kubernetes/kubernetes) repo.
|
||||
|
||||
## 소스로부터 빌드
|
||||
|
||||
If you are simply building a release from source there is no need to set up a full golang environment as all building happens in a Docker container.
|
||||
|
||||
Building a release is simple.
|
||||
|
||||
```shell
|
||||
git clone https://github.com/kubernetes/kubernetes.git
|
||||
cd kubernetes
|
||||
make release
|
||||
```
|
||||
|
||||
For more details on the release process see the kubernetes/kubernetes [`build`](http://releases.k8s.io/{{< param "githubbranch" >}}/build/) directory.
|
||||
@@ -0,0 +1,229 @@
|
||||
---
|
||||
reviewers:
|
||||
- vincepri
|
||||
- bart0sh
|
||||
title: CRI 설치
|
||||
content_template: templates/concept
|
||||
weight: 100
|
||||
---
|
||||
{{% capture overview %}}
|
||||
v1.6.0에서부터, 쿠버네티스는 CRI(컨테이너 런타임 인터페이스) 사용을 기본으로 지원한다.
|
||||
이 페이지는 다양한 런타임들에 대한 설치 지침을 담고 있다.
|
||||
|
||||
{{% /capture %}}
|
||||
|
||||
{{% capture body %}}
|
||||
|
||||
다음의 커맨드들은 사용자의 운영체제에 따라 root로서 실행하길 바란다.
|
||||
각 호스트에 SSH 접속 후 `sudo -i` 실행을 통해서 root 사용자가 될 수 있을 것이다.
|
||||
|
||||
## Docker
|
||||
|
||||
각 머신들에 대해서, Docker를 설치한다.
|
||||
버전 18.06이 추천된다. 그러나 1.11, 1.12, 1.13, 그리고 17.03도 동작하는 것으로 알려져 있다.
|
||||
쿠버네티스 릴리스 노트를 통해서, 최신에 검증된 Docker 버전의 지속적인 파악이 필요하다.
|
||||
|
||||
시스템에 Docker를 설치하기 위해서 아래의 커맨드들을 사용한다.
|
||||
|
||||
{{< tabs name="tab-cri-docker-installation" >}}
|
||||
{{< tab name="Ubuntu 16.04" codelang="bash" >}}
|
||||
# Ubuntu 저장소를 통한 Docker 설치:
|
||||
apt-get update
|
||||
apt-get install -y docker.io
|
||||
|
||||
# 또는 Docker 저장소를 통한 Ubuntu 또는 Debian 용 Docker CE 18.06 설치:
|
||||
|
||||
## 선행 조건들 설치.
|
||||
apt-get update && apt-get install apt-transport-https ca-certificates curl software-properties-common
|
||||
|
||||
## GPG 키 다운로드.
|
||||
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
|
||||
|
||||
## Docker apt 저장소 추가.
|
||||
add-apt-repository \
|
||||
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
|
||||
$(lsb_release -cs) \
|
||||
stable"
|
||||
|
||||
## Docker 설치.
|
||||
apt-get update && apt-get install docker-ce=18.06.0~ce~3-0~ubuntu
|
||||
|
||||
# 데몬 설정.
|
||||
cat > /etc/docker/daemon.json <<EOF
|
||||
{
|
||||
"exec-opts": ["native.cgroupdriver=systemd"],
|
||||
"log-driver": "json-file",
|
||||
"log-opts": {
|
||||
"max-size": "100m"
|
||||
},
|
||||
"storage-driver": "overlay2"
|
||||
}
|
||||
EOF
|
||||
|
||||
mkdir -p /etc/systemd/system/docker.service.d
|
||||
|
||||
# Docker 재시작.
|
||||
systemctl daemon-reload
|
||||
systemctl restart docker
|
||||
{{< /tab >}}
|
||||
{{< tab name="CentOS/RHEL 7.4+" codelang="bash" >}}
|
||||
|
||||
# CentOS/RHEL 저장소를 통한 Docker 설치:
|
||||
yum install -y docker
|
||||
|
||||
# 또는 Docker의 CentOS 저장소를 통한 Docker CE 18.06 설치:
|
||||
|
||||
## 선행 조건들 설치.
|
||||
yum install yum-utils device-mapper-persistent-data lvm2
|
||||
|
||||
## Docker 저장소 추가.
|
||||
yum-config-manager \
|
||||
--add-repo \
|
||||
https://download.docker.com/linux/centos/docker-ce.repo
|
||||
|
||||
## Docker 설치.
|
||||
yum update && yum install docker-ce-18.06.1.ce
|
||||
|
||||
## /etc/docker 디렉토리 생성.
|
||||
mkdir /etc/docker
|
||||
|
||||
# 데몬 설정.
|
||||
cat > /etc/docker/daemon.json <<EOF
|
||||
{
|
||||
"exec-opts": ["native.cgroupdriver=systemd"],
|
||||
"log-driver": "json-file",
|
||||
"log-opts": {
|
||||
"max-size": "100m"
|
||||
},
|
||||
"storage-driver": "overlay2",
|
||||
"storage-opts": [
|
||||
"overlay2.override_kernel_check=true"
|
||||
]
|
||||
}
|
||||
EOF
|
||||
|
||||
mkdir -p /etc/systemd/system/docker.service.d
|
||||
|
||||
# Docker 재시작.
|
||||
systemctl daemon-reload
|
||||
systemctl restart docker
|
||||
{{< /tab >}}
|
||||
{{< /tabs >}}
|
||||
|
||||
자세한 내용은 [공식 Docker 설치 가이드](https://docs.docker.com/engine/installation/)
|
||||
를 참고한다.
|
||||
|
||||
## CRI-O
|
||||
|
||||
이 섹션은 `CRI-O`를 CRI 런타임으로 설치하는 필수적인 단계를 담고 있다.
|
||||
|
||||
시스템에 CRI-O를 설치하기 위해서 다음의 커맨드를 사용한다.
|
||||
|
||||
### 선행 조건
|
||||
|
||||
```shell
|
||||
modprobe overlay
|
||||
modprobe br_netfilter
|
||||
|
||||
# 요구되는 sysctl 파라미터 설정, 이 설정은 재부팅 간에도 유지된다.
|
||||
cat > /etc/sysctl.d/99-kubernetes-cri.conf <<EOF
|
||||
net.bridge.bridge-nf-call-iptables = 1
|
||||
net.ipv4.ip_forward = 1
|
||||
net.bridge.bridge-nf-call-ip6tables = 1
|
||||
EOF
|
||||
|
||||
sysctl --system
|
||||
```
|
||||
|
||||
{{< tabs name="tab-cri-cri-o-installation" >}}
|
||||
{{< tab name="Ubuntu 16.04" codelang="bash" >}}
|
||||
|
||||
# 선행 조건 설치
|
||||
apt-get update
|
||||
apt-get install software-properties-common
|
||||
|
||||
add-apt-repository ppa:projectatomic/ppa
|
||||
apt-get update
|
||||
|
||||
# CRI-O 설치
|
||||
apt-get install cri-o-1.11
|
||||
|
||||
{{< /tab >}}
|
||||
{{< tab name="CentOS/RHEL 7.4+" codelang="bash" >}}
|
||||
|
||||
# 선행 조건 설치
|
||||
yum-config-manager --add-repo=https://cbs.centos.org/repos/paas7-crio-311-candidate/x86_64/os/
|
||||
|
||||
# CRI-O 설치
|
||||
yum install --nogpgcheck cri-o
|
||||
|
||||
{{< /tab >}}
|
||||
{{< /tabs >}}
|
||||
|
||||
### CRI-O 시작
|
||||
|
||||
```
|
||||
systemctl start crio
|
||||
```
|
||||
|
||||
자세한 사항은 [CRI-O 설치 가이드](https://github.com/kubernetes-sigs/cri-o#getting-started)
|
||||
를 참고한다.
|
||||
|
||||
## Containerd
|
||||
|
||||
이 섹션은 `containerd`를 CRI 런타임으로써 사용하는데 필요한 단계를 담고 있다.
|
||||
|
||||
Containerd를 시스템에 설치하기 위해서 다음의 커맨드들을 사용한다.
|
||||
|
||||
### 선행 조건
|
||||
|
||||
```shell
|
||||
modprobe overlay
|
||||
modprobe br_netfilter
|
||||
|
||||
# 요구되는 sysctl 파라미터 설정, 이 설정은 재부팅에서도 유지된다.
|
||||
cat > /etc/sysctl.d/99-kubernetes-cri.conf <<EOF
|
||||
net.bridge.bridge-nf-call-iptables = 1
|
||||
net.ipv4.ip_forward = 1
|
||||
net.bridge.bridge-nf-call-ip6tables = 1
|
||||
EOF
|
||||
|
||||
sysctl --system
|
||||
```
|
||||
|
||||
{{< tabs name="tab-cri-containerd-installation" >}}
|
||||
{{< tab name="Ubuntu 16.04+" codelang="bash" >}}
|
||||
apt-get install -y libseccomp2
|
||||
{{< /tab >}}
|
||||
{{< tab name="CentOS/RHEL 7.4+" codelang="bash" >}}
|
||||
yum install -y libseccomp
|
||||
{{< /tab >}}
|
||||
{{< /tabs >}}
|
||||
|
||||
### Containerd 설치
|
||||
|
||||
[Containerd 릴리스](https://github.com/containerd/containerd/releases)는 주기적으로 출판된다. 아래의 값들은 작성 당시에 가용한 최신 버전을 기준으로 하드코드 되었다. 새로운 버전과 해시는 [여기](https://storage.googleapis.com/cri-containerd-release)에서 참고한다.
|
||||
|
||||
```shell
|
||||
# 요구되는 환경 변수 export.
|
||||
export CONTAINERD_VERSION="1.1.2"
|
||||
export CONTAINERD_SHA256="d4ed54891e90a5d1a45e3e96464e2e8a4770cd380c21285ef5c9895c40549218"
|
||||
|
||||
# containerd tar 다운로드.
|
||||
wget https://storage.googleapis.com/cri-containerd-release/cri-containerd-${CONTAINERD_VERSION}.linux-amd64.tar.gz
|
||||
|
||||
# 해시 확인.
|
||||
echo "${CONTAINERD_SHA256} cri-containerd-${CONTAINERD_VERSION}.linux-amd64.tar.gz" | sha256sum --check -
|
||||
|
||||
# 풀기.
|
||||
tar --no-overwrite-dir -C / -xzf cri-containerd-${CONTAINERD_VERSION}.linux-amd64.tar.gz
|
||||
|
||||
# containerd 시작.
|
||||
systemctl start containerd
|
||||
```
|
||||
|
||||
## 다른 CRI 런타임: rktlet과 frakti
|
||||
|
||||
자세한 정보는 [Frakti 빠른 시작 가이드](https://github.com/kubernetes/frakti#quickstart) 및 [Rktlet 시작하기 가이드](https://github.com/kubernetes-incubator/rktlet/blob/master/docs/getting-started-guide.md)를 참고한다.
|
||||
|
||||
{{% /capture %}}
|
||||
@@ -0,0 +1,148 @@
|
||||
---
|
||||
title: Kops로 AWS에 쿠버네티스 설치하기
|
||||
content_template: templates/concept
|
||||
---
|
||||
|
||||
{{% capture overview %}}
|
||||
|
||||
이곳 빠른 시작에서는 사용자가 얼마나 쉽게 AWS에 쿠버네티스 클러스터를 설치할 수 있는지 보여준다.
|
||||
[`kops`](https://github.com/kubernetes/kops)라는 이름의 툴을 이용할 것이다.
|
||||
|
||||
kops는 강력한 프로비저닝 시스템인데,
|
||||
|
||||
* 완전 자동화된 설치
|
||||
* DNS를 통해 클러스터들의 신원 확인
|
||||
* 자체 복구: 모든 자원이 Auto-Scaling Groups에서 실행
|
||||
* 다양한 OS 지원(Debian, Ubuntu 16.04 supported, CentOS & RHEL, Amazon Linux and CoreOS) - [images.md](https://github.com/kubernetes/kops/blob/master/docs/images.md) 보기
|
||||
* 고가용성 지원 - [high_availability.md](https://github.com/kubernetes/kops/blob/master/docs/high_availability.md) 보기
|
||||
* 직접 프로비저닝 하거나 또는 할 수 있도록 terraform 매니페스트를 생성 - [terraform.md](https://github.com/kubernetes/kops/blob/master/docs/terraform.md) 보기
|
||||
|
||||
만약 클러스터를 구축하는데 있어 이런 방법이 사용자의 생각과 다르다면 일종의 블록처럼 [kubeadm](/docs/admin/kubeadm/)를 이용할 수도 있다.
|
||||
kops는 kubeadmin 위에서도 잘 동작한다.
|
||||
|
||||
{{% /capture %}}
|
||||
|
||||
{{% capture body %}}
|
||||
|
||||
## 클러스터 구축
|
||||
|
||||
### (1/5) kops 설치
|
||||
|
||||
#### 요구사항
|
||||
|
||||
kops를 이용하기 위해서는 [kubectl](/docs/tasks/tools/install-kubectl/)이 설치되어 있어야 한다.
|
||||
|
||||
#### 설치
|
||||
|
||||
[releases page](https://github.com/kubernetes/kops/releases)에서 kops를 다운로드 한다(소스코드로부터 빌드하는것도 역시 어렵지 않다).
|
||||
|
||||
MacOS에서:
|
||||
|
||||
```shell
|
||||
curl -OL https://github.com/kubernetes/kops/releases/download/1.10.0/kops-darwin-amd64
|
||||
chmod +x kops-darwin-amd64
|
||||
mv kops-darwin-amd64 /usr/local/bin/kops
|
||||
# Homebrew를 통해 설치할 수도 있다.
|
||||
brew update && brew install kops
|
||||
```
|
||||
|
||||
Linux에서:
|
||||
|
||||
```shell
|
||||
wget https://github.com/kubernetes/kops/releases/download/1.10.0/kops-linux-amd64
|
||||
chmod +x kops-linux-amd64
|
||||
mv kops-linux-amd64 /usr/local/bin/kops
|
||||
```
|
||||
|
||||
### (2/5) 클러스터에 사용할 route53 domain 생성
|
||||
kops는 디스커버리를 위해 클러스터 내외부에서 DNS를 이용하고 이를 통해 사용자는 쿠버네티스 API서버에 도달할 수 있다.
|
||||
|
||||
이런 클러스터 이름에 kops는 명확한 견해을 가지는데: 반드시 유효한 DNS 이름이어야 한다. 이렇게 함으로써
|
||||
사용자는 클러스터를 헷갈리지 않을것이고, 동료들과 혼선없이 공유할 수 있으며, IP를 기억할 필요없이 접근할 수 있다.
|
||||
|
||||
그렇게 하고 있겠지만, 클러스터를 구분하기 위해 서브도메인을 활용할 수 있다. 예를 들어 `useast1.dev.example.com`을 이용한다면, API 서버 엔드포인트는 `api.useast1.dev.example.com`가 될 것이다.
|
||||
|
||||
Route53 hosted zone은 서브도메인도 지원한다. 여러분의 hosted zone은 `useast1.dev.example.com`, `dev.example.com` 그리고 `example.com` 같은 것도 될 수 있다.
|
||||
kops는 이것들 모두와 잘 동작하며, 사용자는 보통 조직적인 부분을 고려해 결정한다(예를 들어, 사용자가 `dev.example.com`하위에 레코드를 생성하는것은 허용되지만,
|
||||
`example.com`하위에는 그렇지 않을 수 있다).
|
||||
|
||||
`dev.example.com`을 hosted zone으로 사용하고 있다고 가정해보자.
|
||||
보통 사용자는 [일반적인 방법](http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/CreatingNewSubdomain.html) 에 따라 생성하거나
|
||||
`aws route53 create-hosted-zone --name dev.example.com --caller-reference 1` 와 같은 커맨드를 이용한다.
|
||||
그 후 도메인 내 레코드들을 확인할 수 있도록 상위 도메인내에 NS 레코드를 생성해야 한다. 여기서는, `dev` NS 레코드를 `example.com`에 생성한다. 만약 이것이 루트 도메인 네임이라면 이 NS 레코드들은 도메인 등록기관을 통해서 생성해야 한다(예를 들어, `example.com`는 `example.com`를 구매한 곳에서 설정 할 수 있다).
|
||||
|
||||
이 단계에서 문제가 되기 쉽다.(문제를 만드는 가장 큰 이유이다!) dig 툴을 실행해서 클러스터 설정이 정확한지 한번 더 확인 한다.
|
||||
|
||||
`dig NS dev.example.com`
|
||||
|
||||
당신의 hosted zone용으로 할당된 3~4개의 NS 레코드를 Route53에서 확인할 수 있어야 한다.
|
||||
|
||||
### (3/5) 클러스터 상태 저장용 S3 버킷 생성
|
||||
kops는 설치 이후에도 클러스터를 관리할 수 있다. 이를 위해 사용자가 생성한 클러스터의 상태나 사용하는 키 정보들을 지속적으로 추적해야 한다. 이 정보가 S3에 저장된다.
|
||||
이 버킷의 접근은 S3 권한으로 제어한다.
|
||||
|
||||
다수의 클러스터는 동일한 S3 버킷을 이용할 수 있고, 사용자는 이 S3 버킷을 같은 클러스트를 운영하는 동료에게 공유할 수 있다. 하지만 이 S3 버킷에 접근 가능한 사람은 사용자의 모든 클러스터에 관리자 접근이 가능하게 되니, 운영팀 이외로 공유되지 않도록 해야 한다.
|
||||
|
||||
그래서 보통 한 운영팀 당 하나의 S3 버킷을 가지도록 하기도 한다.(그리고 종종 운영팀 이름은 위에서 언급한 hosted zone과 동일하게 짓기도 한다!)
|
||||
|
||||
우리 예제에서는, `dev.example.com`를 hosted zone으로 했으니 `clusters.dev.example.com`를 S3 버킷 이름으로 정하자.
|
||||
|
||||
* `AWS_PROFILE`를 선언한다. (AWS CLI 동작을 위해 다른 profile을 선택해야 할 경우)
|
||||
|
||||
* `aws s3 mb s3://clusters.dev.example.com`를 이용해 S3 버킷을 생성한다.
|
||||
|
||||
* `export KOPS_STATE_STORE=s3://clusters.dev.example.com` 하면, kops는 이 위치를 기본값으로 인식할 것이다.
|
||||
이 부분을 bash profile등에 넣어두는것을 권장한다.
|
||||
|
||||
### (4/5) 클러스터 설정 구성
|
||||
클러스터 설정하려면, `kops create cluster` 를 실행한다:
|
||||
|
||||
`kops create cluster --zones=us-east-1c useast1.dev.example.com`
|
||||
|
||||
kops는 클러스터에 사용될 설정을 생성할것이다. 여기서 주의할 점은 실제 클러스트 리소스가 아닌 _설정_ 만을 생성한다는 것에 주의하자 - 이 부분은 다음 단계에서 `kops update cluster` 으로 구성해볼 것이다. 그 때 만들어진 설정을 점검하거나 변경할 수 있다.
|
||||
|
||||
더 자세한 내용을 알아보기 위한 커맨드가 출력된다.
|
||||
|
||||
* 클러스터 조회: `kops get cluster`
|
||||
* 클러스트 수정: `kops edit cluster useast1.dev.example.com`
|
||||
* 인스턴스 그룹 수정: `kops edit ig --name=useast1.dev.example.com nodes`
|
||||
* 마스터 인스턴스 그룹 수정: `kops edit ig --name=useast1.dev.example.com master-us-east-1c`
|
||||
|
||||
만약 kops사용이 처음이라면, 얼마 걸리지 않으니 이들을 시험해 본다. 인스턴스 그룹은 쿠버네티스 노드로 등록된 인스턴스의 집합을 말한다. AWS상에서는 auto-scaling-groups를 통해 만들어진다. 사용자는 여러개의 인스턴스 그룹을 관리할 수 있는데, 예를 들어, spot과 on-demand 인스턴스 조합 또는 GPU 와 non-GPU 인스턴스의 조합으로 구성할 수 있다.
|
||||
|
||||
|
||||
### (5/5) AWS에 클러스터 생성
|
||||
|
||||
`kops update cluster`를 실행해 AWS에 클러스터를 생성한다.
|
||||
|
||||
`kops update cluster useast1.dev.example.com --yes`
|
||||
|
||||
실행은 수 초 만에 되지만, 실제로 클러스터가 준비되기 전까지 수 분이 걸릴 수 있다.
|
||||
언제든 `kops update cluster`로 클러스트 설정을 변경할 수 있다. 사용자가 변경한 클러스트 설정을 그대로 반영해 줄 것이며, 필요다하면 AWS 나 쿠버네티스를 재설정 해 줄것이다.
|
||||
|
||||
예를 들면, `kops edit ig nodes` 뒤에 `kops update cluster --yes`를 실행해 설정을 반영한다. 그리고 `kops rolling-update cluster`로 설정을 즉시 원복시킬 수 있다.
|
||||
|
||||
`--yes`를 명시하지 않으면 `kops update cluster` 커맨드 후 어떤 설정이 변경될지가 표시된다. 운영계 클러스터 관리할 때 사용하기 좋다!
|
||||
|
||||
|
||||
### 다른 애드온 탐험
|
||||
[애드온 리스트](/docs/concepts/cluster-administration/addons/) 에서 쿠버네티스 클러스터용 로깅, 모니터링, 네트워크 정책, 시각화 & 제어 등을 포함한 다른 애드온을 확인해본다.
|
||||
|
||||
## 정리하기
|
||||
|
||||
* `kops delete cluster useast1.dev.example.com --yes` 로 클러스터를 삭제한다.
|
||||
|
||||
## Feedback
|
||||
|
||||
* Slack Channel: [#kops-users](https://kubernetes.slack.com/messages/kops-users/)
|
||||
* [GitHub Issues](https://github.com/kubernetes/kops/issues)
|
||||
|
||||
{{% /capture %}}
|
||||
|
||||
{{% capture whatsnext %}}
|
||||
|
||||
* 쿠버네티스 [개념](/docs/concepts/) 과 [`kubectl`](/docs/user-guide/kubectl-overview/)에 대해 더 알아보기.
|
||||
* `kops` [고급 사용법](https://github.com/kubernetes/kops) 알아보기.
|
||||
* 튜토리얼, 모범사례, 고급 설정 옵션을 위해 `kops` [문서](https://github.com/kubernetes/kops) 부분 보기.
|
||||
|
||||
{{% /capture %}}
|
||||
@@ -6,43 +6,37 @@ title: 노드 구성 검증하기
|
||||
|
||||
## 노드 적합성 테스트
|
||||
|
||||
*Node conformance test* is a containerized test framework that provides a system
|
||||
verification and functionality test for a node. The test validates whether the
|
||||
node meets the minimum requirements for Kubernetes; a node that passes the test
|
||||
is qualified to join a Kubernetes cluster.
|
||||
*노드 적합성 테스트* 는 노드의 시스템 검증과 기능 테스트를 제공하기 위해 컨테이너화된 테스트 프레임워크이다.
|
||||
테스트는 노드가 쿠버네티스를 위한 최소 요구조건을 만족하는지를 검증한다. 그리고 테스트를 통과한 노드는 쿠버네티스 클러스터에 참
|
||||
여할 자격이 주어진다.
|
||||
|
||||
## 제한 사항
|
||||
|
||||
In Kubernetes version 1.5, node conformance test has the following limitations:
|
||||
쿠버네티스 1.5에서는 노드 적합성 테스트가 아래의 제약이 있다.
|
||||
|
||||
* Node conformance test only supports Docker as the container runtime.
|
||||
* 노드 적합성 테스트는 컨테이너 런타임으로 Docker만 지원한다.
|
||||
|
||||
## 노드 필수 구성 요소
|
||||
|
||||
To run node conformance test, a node must satisfy the same prerequisites as a
|
||||
standard Kubernetes node. At a minimum, the node should have the following
|
||||
daemons installed:
|
||||
노드 적합성 테스트를 실행하기 위해서는, 해당 노드는 표준 쿠버네티스 노드로서 동일한 전제조건을 만족해야 한다.
|
||||
노드는 최소한 아래 데몬들이 설치되어 있어야 한다.
|
||||
|
||||
* Container Runtime (Docker)
|
||||
* 컨테이너 런타임 (Docker)
|
||||
* Kubelet
|
||||
|
||||
## 노드 적합성 테스트 실행
|
||||
|
||||
To run the node conformance test, perform the following steps:
|
||||
노드 적합성 테스트는 다음 순서로 진행된다.
|
||||
|
||||
1. Point your Kubelet to localhost `--api-servers="http://localhost:8080"`,
|
||||
because the test framework starts a local master to test Kubelet. There are some
|
||||
other Kubelet flags you may care:
|
||||
* `--pod-cidr`: If you are using `kubenet`, you should specify an arbitrary CIDR
|
||||
to Kubelet, for example `--pod-cidr=10.180.0.0/24`.
|
||||
* `--cloud-provider`: If you are using `--cloud-provider=gce`, you should
|
||||
remove the flag to run the test.
|
||||
1. 테스트 프레임워크는 Kublet을 테스트하기 위해 로컬 마스터를 시작하기 때문에, Kublet이 localhost를 가르키도록 `--api-servers="http://localhost:8080"`를 사용한다. 고려해야 할 다른 Kubelet 플래그들은 다음과 같다.
|
||||
* `--pod-cidr`: `kubenet`을 사용 중이라면, 임의의 CIDR을 Kubelet에 지정해주어야 한다. 예) `--pod-cidr=10.180.0.0/24`.
|
||||
* `--cloud-provider`: `--cloud-provider=gce`를 사용 중이라면, 테스트 실행 시에는 제거해야 한다.
|
||||
|
||||
2. Run the node conformance test with command:
|
||||
2. 다음 커맨드로 노드 적합성 테스트를 실행한다.
|
||||
|
||||
```shell
|
||||
# $CONFIG_DIR is the pod manifest path of your Kubelet.
|
||||
# $LOG_DIR is the test output path.
|
||||
# $CONFIG_DIR는 Kublet의 파드 매니페스트 경로이다.
|
||||
# $LOG_DIR는 테스트 출력 경로이다.
|
||||
sudo docker run -it --rm --privileged --net=host \
|
||||
-v /:/rootfs -v $CONFIG_DIR:$CONFIG_DIR -v $LOG_DIR:/var/result \
|
||||
k8s.gcr.io/node-test:0.2
|
||||
@@ -50,8 +44,7 @@ sudo docker run -it --rm --privileged --net=host \
|
||||
|
||||
## 다른 아키텍처에서 노드 적합성 테스트 실행
|
||||
|
||||
Kubernetes also provides node conformance test docker images for other
|
||||
architectures:
|
||||
쿠버네티스는 다른 아키텍쳐용 노드 적합성 테스트 Docker 이미지도 제공한다.
|
||||
|
||||
Arch | Image |
|
||||
--------|:-----------------:|
|
||||
@@ -61,37 +54,31 @@ architectures:
|
||||
|
||||
## 선택된 테스트 실행
|
||||
|
||||
To run specific tests, overwrite the environment variable `FOCUS` with the
|
||||
regular expression of tests you want to run.
|
||||
특정 테스트만 실행하기 위해서는 환경 변수 `FOCUS`에 테스트하고자 하는 테스트를 정규식으로 지정한다.
|
||||
|
||||
```shell
|
||||
sudo docker run -it --rm --privileged --net=host \
|
||||
-v /:/rootfs:ro -v $CONFIG_DIR:$CONFIG_DIR -v $LOG_DIR:/var/result \
|
||||
-e FOCUS=MirrorPod \ # Only run MirrorPod test
|
||||
-e FOCUS=MirrorPod \ # MirrorPod 테스트만 실행
|
||||
k8s.gcr.io/node-test:0.2
|
||||
```
|
||||
|
||||
To skip specific tests, overwrite the environment variable `SKIP` with the
|
||||
regular expression of tests you want to skip.
|
||||
특정 테스트를 건너뛰기 위해서는, 환경 변수 `SKIP`에 건너뛰고자 하는 테스트를 정규식으로 지정한다.
|
||||
|
||||
```shell
|
||||
sudo docker run -it --rm --privileged --net=host \
|
||||
-v /:/rootfs:ro -v $CONFIG_DIR:$CONFIG_DIR -v $LOG_DIR:/var/result \
|
||||
-e SKIP=MirrorPod \ # Run all conformance tests but skip MirrorPod test
|
||||
-e SKIP=MirrorPod \ # MirrorPod 테스트만 건너뛰고 모든 적합성 테스트를 실행한다
|
||||
k8s.gcr.io/node-test:0.2
|
||||
```
|
||||
|
||||
Node conformance test is a containerized version of [node e2e test](https://github.com/kubernetes/community/blob/{{< param "githubbranch" >}}/contributors/devel/e2e-node-tests.md).
|
||||
By default, it runs all conformance tests.
|
||||
노드 적합성 테스트는 [노드 e2e 테스트](https://github.com/kubernetes/community/blob/{{< param "githubbranch" >}}/contributors/devel/e2e-node-tests.md)를 컨테이너화한 버전이다.
|
||||
기본적으로, 모든 적합성 테스트를 실행한다.
|
||||
|
||||
Theoretically, you can run any node e2e test if you configure the container and
|
||||
mount required volumes properly. But **it is strongly recommended to only run conformance
|
||||
test**, because it requires much more complex configuration to run non-conformance test.
|
||||
이론적으로, 컨테이너와 필요한 볼륨을 적절히 설정했다면 어떤 노드 e2e 테스트도 수행할 수 있다.
|
||||
하지만, 적합성 테스트가 아닌 테스트들은 훨씬 복잡한 설정이 필요하기 때문에 **적합성 테스트만 실행하기를 강하게 추천한다.**
|
||||
|
||||
## 주의 사항
|
||||
|
||||
* The test leaves some docker images on the node, including the node conformance
|
||||
test image and images of containers used in the functionality
|
||||
test.
|
||||
* The test leaves dead containers on the node. These containers are created
|
||||
during the functionality test.
|
||||
* 테스트 후, 노드 적합성 테스트 이미지 및 기능 테스트에 사용된 이미지들을 포함하여 몇 개의 Docker 이미지들이 노드에 남는다.
|
||||
* 테스트 후, 노드에 죽은 컨테이너가 남는다. 기능 테스트 도중에 생성된 컨테이너들이다.
|
||||
|
||||
@@ -71,6 +71,10 @@ content_template: templates/concept
|
||||
|
||||
* [Stackpoint.io](https://stackpoint.io)는 다중 퍼블릭 클라우드에서 쿠버네티스 인프라 자동화 및 관리 기능을 제공한다.
|
||||
|
||||
* [SysEleven MetaKube](https://www.syseleven.io/products-services/managed-kubernetes/) offers managed Kubernetes as a service powered on our OpenStack public cloud. It includes lifecycle management, administration dashboards, monitoring, autoscaling and much more.
|
||||
|
||||
* [VMware Cloud PKS](https://cloud.vmware.com/vmware-cloud-pks) is an enterprise Kubernetes-as-a-Service offering in the VMware Cloud Services portfolio that provides easy to use, secure by default, cost effective, SaaS-based Kubernetes clusters.
|
||||
|
||||
## 턴키 클라우드 솔루션
|
||||
|
||||
다음 솔루션들은 클라우드 IaaS 공급자의 범위에서 몇 안 되는 명령어로 쿠버네티스 클러스터를 생성을 허용한다. 이러한 솔루션은 활발히 개발되었고 활발한 커뮤니티 지원을 한다.
|
||||
@@ -199,7 +203,7 @@ AWS | Juju | Ubuntu | flannel/calico/canal | [docs]
|
||||
Azure | Juju | Ubuntu | flannel/calico/canal | [docs](/docs/getting-started-guides/ubuntu/) | [Commercial](https://www.ubuntu.com/kubernetes) and [Community](https://jujucharms.com/kubernetes)
|
||||
GCE | Juju | Ubuntu | flannel/calico/canal | [docs](/docs/getting-started-guides/ubuntu/) | [Commercial](https://www.ubuntu.com/kubernetes) and [Community](https://jujucharms.com/kubernetes)
|
||||
Oracle Cloud | Juju | Ubuntu | flannel/calico/canal | [docs](/docs/getting-started-guides/ubuntu/) | [Commercial](https://www.ubuntu.com/kubernetes) and [Community](https://jujucharms.com/kubernetes)
|
||||
Rackspace | Juju | Ubuntu | flannel/calico/canal | [docs](/docs/getting-started-guides/ubuntu/) | [Commercial](https://www.ubuntu.com/kubernetes) and [Community](https://jujucharms.com/kubernetes)
|
||||
Rackspace | custom | CoreOS | flannel/calico/canal | [docs](https://developer.rackspace.com/docs/rkaas/latest/) | [Commercial](https://www.rackspace.com/managed-kubernetes)
|
||||
VMware vSphere | Juju | Ubuntu | flannel/calico/canal | [docs](/docs/getting-started-guides/ubuntu/) | [Commercial](https://www.ubuntu.com/kubernetes) and [Community](https://jujucharms.com/kubernetes)
|
||||
Bare Metal | Juju | Ubuntu | flannel/calico/canal | [docs](/docs/getting-started-guides/ubuntu/) | [Commercial](https://www.ubuntu.com/kubernetes) and [Community](https://jujucharms.com/kubernetes)
|
||||
AWS | Saltstack | Debian | AWS | [docs](/docs/setup/turnkey/aws/) | Community ([@justinsb](https://github.com/justinsb))
|
||||
@@ -214,7 +218,7 @@ Alibaba Cloud Container Service For Kubernetes | ROS | CentOS | flannel/T
|
||||
Agile Stacks | Terraform | CoreOS | multi-support | [docs](https://www.agilestacks.com/products/kubernetes) | Commercial
|
||||
IBM Cloud Kubernetes Service | | Ubuntu | calico | [docs](https://console.bluemix.net/docs/containers/container_index.html) | Commercial
|
||||
Digital Rebar | kubeadm | any | metal | [docs](/docs/setup/on-premises-metal/krib/) | Community ([@digitalrebar](https://github.com/digitalrebar))
|
||||
|
||||
VMware Cloud PKS | | Photon OS | Canal | [docs](https://docs.vmware.com/en/VMware-Kubernetes-Engine/index.html) | Commercial
|
||||
|
||||
{{< note >}}
|
||||
위의 표는 버전 테스트/사용된 노드의 지원 레벨을 기준으로 정렬된다.
|
||||
@@ -236,7 +240,6 @@ Digital Rebar | kubeadm | any | metal | [docs](/docs/setup/
|
||||
* **비활성**: 현재 유지되지 않는다. 쿠버네티스 최초 사용자에게 권장하지 않으며, 삭제될 수도 있다.
|
||||
* **참고**는 사용된 쿠버네티스 버전 같은 기타 관련 정보가 있다.
|
||||
|
||||
|
||||
<!-- reference style links below here -->
|
||||
<!-- GCE conformance test result -->
|
||||
[1]: https://gist.github.com/erictune/4cabc010906afbcc5061
|
||||
|
||||
Executable
+5
@@ -0,0 +1,5 @@
|
||||
---
|
||||
title: "쿠버네티스 다운로드"
|
||||
weight: 20
|
||||
---
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
---
|
||||
title: 소스로부터 빌드
|
||||
---
|
||||
|
||||
소스로부터 빌드하거나 이미 빌드된 릴리스를 다운받을 수 있다. 쿠버네티스를 자체를 개발할 계획이 없다면, [릴리스 노트](/docs/setup/release/notes/)에 있는 현재 릴리스 빌드 버전을 사용하는 것을 추천한다.
|
||||
|
||||
쿠버네티스 소스 코드는 [kubernetes/kubernetes](https://github.com/kubernetes/kubernetes) 리포지토리에서 다운받을 수 있다.
|
||||
|
||||
## 소스로부터 빌드
|
||||
|
||||
소스 코드를 빌드만 하려면, 모든 빌드 과정이 Docker 컨테이너 안에서 실행되기 때문에 golang 환경을 구축할 필요가 없다.
|
||||
|
||||
릴리스를 빌드하는 것은 간단하다.
|
||||
|
||||
```shell
|
||||
git clone https://github.com/kubernetes/kubernetes.git
|
||||
cd kubernetes
|
||||
make release
|
||||
```
|
||||
|
||||
릴리스 절차에 대한 더 자세한 설명은 kubernetes/kubernetes [`빌드`](http://releases.k8s.io/{{< param "githubbranch" >}}/build/) 디렉토리를 참조한다.
|
||||
@@ -163,10 +163,8 @@ You can use a Kubernetes binary release (recommended) or build your Kubernetes b
|
||||
|
||||
Download the [latest binary release](https://github.com/kubernetes/kubernetes/releases/latest) and unzip it.
|
||||
Server binary tarballs are no longer included in the Kubernetes final tarball, so you will need to locate and run
|
||||
`./kubernetes/cluster/get-kube-binaries.sh` to download the client and server binaries.
|
||||
Then locate `./kubernetes/server/kubernetes-server-linux-amd64.tar.gz` and unzip *that*.
|
||||
Then, within the second set of unzipped files, locate `./kubernetes/server/bin`, which contains
|
||||
all the necessary binaries.
|
||||
`./kubernetes/cluster/get-kube-binaries.sh` to download and extract the client and server binaries.
|
||||
Then locate `./kubernetes/server/bin`, which contains all the necessary binaries.
|
||||
|
||||
#### 이미지 선택
|
||||
|
||||
|
||||
Reference in New Issue
Block a user