Fourth Korean l10n work for release 1.18

- Translate docs/reference/issues-security/_index.md into Korean (#21145)
- Translate tasks/administer-cluster/kubeadm/adding-windows-nodes.md into Korean (#21003)
- Translate manage-resources/memory-default-namespace.md into Korean (#21089)
- Translate tasks/configure-pod-container/pull-image-private-registry in Korean (#21036)
- Translate contribute/advanced.md into Korean (#21002)
- Update to Outdated files in the dev-1.18-ko.4 branch. (#21102)
- Translate manage-resources/cpu-constraint-namespace.md into Korean (#21048)
- Translate manage-resources/memory-constraint-namespace.md into Korean (#21091)
- Translate setup/release/notes.md in Korean (#21158)
- Translate manage-resources/quota-pod-namespace.md into Korean (#21087)
- Translate tasks/administer-cluster/kubeadm/upgrading-windows-nodes.md into Korean (#20999)
- Translate tasks/administer-cluster/kubeadm/kubeadm-certs.md into Korean (#21000)
- Translate manage-resources/quota-memory-cpu-namespace.md into Korean (#21088)
- Translate manage-resources/cpu-default-namespace.md into Korean (#21090)
- Translate contribute/suggesting-improvements.md into Korean (#21001)
- Translate quality-service-pod in Korean (#21081)

Co-authored-by: Jerry Park <jaehwa@gmail.com>
Co-authored-by: Jesang Myung <jesang.myung@gmail.com>
Co-authored-by: DongMoon Kim <dmoons.kim@gmail.com>
Co-authored-by: Jesang Myung <jesang.myung@gmail.com>
Co-authored-by: Yuk, Yongsu <ysyukr@gmail.com>
Co-authored-by: bluefriday <bluefriday86@gmail.com>
This commit is contained in:
Jerry Park
2020-05-23 21:31:56 +09:00
committed by June Yi
parent 3dee902b75
commit b6760f3ae2
135 changed files with 5336 additions and 1110 deletions
@@ -33,116 +33,151 @@ Minikube는 다음과 같은 쿠버네티스의 기능을 제공한다.
여기서 기술하는 간단한 데모는 어떻게 로컬에서 Minikube를 시작하고, 사용하고 삭제하는지를 안내한다. 다음의 주어진 단계를 따라서 Minikube를 시작하고 탐구한다.
1. Minikube를 시작하고 클러스터를 생성
```shell
```shell
minikube start
```
```
결과는 다음과 비슷하다.
```
Starting local Kubernetes cluster...
Running pre-create checks...
Creating machine...
Starting local Kubernetes cluster...
```
특정 쿠버네티스 버전, VM, 컨테이너 런타임 상에서 클러스터를 시작하기 위한 보다 상세한 정보는 [클러스터 시작하기](#클러스터-시작하기)를 참조한다.
```
Starting local Kubernetes cluster...
Running pre-create checks...
Creating machine...
Starting local Kubernetes cluster...
```
특정 쿠버네티스 버전, VM, 컨테이너 런타임 상에서 클러스터를 시작하기 위한 보다 상세한 정보는 [클러스터 시작하기](#클러스터-시작하기)를 참조한다.
2. 이제, kubectl을 통해서 클러스터와 상호작용할 수 있다. 보다 상세한 정보는 [클러스터와 상호 작용하기](#클러스터와-상호-작용하기)를 참조한다.
단순한 HTTP 서버인 `echoserver` 이미지를 사용해서 쿠버네티스 디플로이먼트를 만들고 `--port`를 이용해서 8080 포트로 노출해보자.
```shell
kubectl create deployment hello-minikube --image=k8s.gcr.io/echoserver:1.10
```
결과는 다음과 비슷하다.
```
deployment.apps/hello-minikube created
```
3. `hello-minikube` 디플로이먼트에 액세스하기 위해, 서비스로 노출시킨다.
```shell
kubectl expose deployment hello-minikube --type=NodePort --port=8080
```
`--type=NodePort` 옵션은 서비스 타입을 지정한다.
간단한 HTTP 서버인 `echoserver` 이미지를 사용해서 쿠버네티스 디플로이먼트를 만들고 `--port`를 이용해서 8080 포트로 노출해보자.
```shell
kubectl create deployment hello-minikube --image=k8s.gcr.io/echoserver:1.10
```
결과는 다음과 비슷하다.
```
service/hello-minikube exposed
```
```
deployment.apps/hello-minikube created
```
3. `hello-minikube` 디플로이먼트에 액세스하기 위해, 서비스로 노출시킨다.
```shell
kubectl expose deployment hello-minikube --type=NodePort --port=8080
```
`--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
```
파드가 시작되고 실행 중인지 확인한다.
```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
```shell
minikube service hello-minikube --url
```
Pod Information:
-no pod information available-
6. 로컬 클러스터의 상세를 보기위해서, 출력에서 얻은 URL을 브라우저에 복사해서 붙여넣는다.
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/
```
Hostname: hello-minikube-7c77b68cff-8wdzq
Request Headers:
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:
Request Body:
-no body in request-
```
서비스나 클러스터가 더 이상 구동되지 않도록 하려면, 삭제한다.
```
서비스나 클러스터가 더 이상 구동되지 않도록 하려면, 삭제한다.
7. `hello-minikube` 서비스 삭제
```shell
kubectl delete services hello-minikube
```
출력은 다음과 비슷하다.
```
service "hello-minikube" deleted
```
```shell
kubectl delete services hello-minikube
```
The output is similar to this:
```
service "hello-minikube" deleted
```
8. `hello-minikube` 디플로이먼트 삭제
```shell
kubectl delete deployment hello-minikube
```
출력은 다음과 비슷하다.
```
deployment.extensions "hello-minikube" deleted
```
```shell
kubectl delete deployment hello-minikube
```
The output is similar to this:
```
deployment.extensions "hello-minikube" deleted
```
9. 로컬 Minikube 클러스터 중지
```shell
minikube stop
```
출력은 다음과 비슷하다.
```
Stopping "minikube"...
"minikube" stopped.
```
보다 상세한 정보는 [클러스터 중지하기](#클러스터-중지하기)를 참조한다.
```shell
minikube stop
```
The output is similar to this:
```
Stopping "minikube"...
"minikube" stopped.
```
보다 상세한 정보는 [클러스터 중지하기](#클러스터-중지하기)를 참조한다.
10. 로컬 Minikube 클러스터 삭제
```shell
minikube delete
```
@@ -188,14 +223,15 @@ minikube start --kubernetes-version {{< param "fullversion" >}}
```shell
minikube start --driver=<driver_name>
```
Minikube는 다음의 드라이버를 지원한다.
{{< note >}}
지원되는 드라이버와 플러그인 설치 방법에 대한 보다 상세한 정보는 [드라이버](https://minikube.sigs.k8s.io/docs/reference/drivers/)를 참조한다.
Minikube는 다음의 드라이버를 지원한다.
{{< note >}}
지원되는 드라이버와 플러그인 설치 방법에 대한 보다 상세한 정보는 [드라이버](https://minikube.sigs.k8s.io/docs/reference/drivers/)를 참조한다.
{{< /note >}}
* virtualbox
* docker ([드라이버 설치](https://minikube.sigs.k8s.io/docs/drivers/docker/))
* virtualbox ([드라이버 설치](https://minikube.sigs.k8s.io/docs/drivers/virtualbox/))
* podman ([드라이버 설치](https://minikube.sigs.k8s.io/docs/drivers/podman/)) (EXPERIMENTAL)
* vmwarefusion
* docker ([드라이버 설치](https://minikube.sigs.k8s.io/docs/drivers/docker/)
* kvm2 ([드라이버 설치](https://minikube.sigs.k8s.io/docs/reference/drivers/kvm2/))
* hyperkit ([드라이버 설치](https://minikube.sigs.k8s.io/docs/reference/drivers/hyperkit/))
* hyperv ([드라이버 설치](https://minikube.sigs.k8s.io/docs/reference/drivers/hyperv/))
@@ -18,8 +18,8 @@ weight: 10
악성 컨테이너는 이 결함을 사용하여 runc 바이너리의 내용을 덮어쓸 수 있으며
따라서 컨테이너 호스트 시스템에서 임의의 명령을 실행할 수 있다.
문제에 대한 자세한 내용은
[cve-2019-5736 : runc 취약점 ] (https://access.redhat.com/security/cve/cve-2019-5736) 참고하자.
문제에 대한 자세한 내용은 [CVE-2019-5736](https://access.redhat.com/security/cve/cve-2019-5736)
참고한다.
{{< /caution >}}
### 적용 가능성
@@ -49,7 +49,7 @@ Control group은 프로세스에 할당된 리소스를 제한하는데 사용
리소스가 부족할 때 불안정해지는 사례를 본 적이 있다.
컨테이너 런타임과 kubelet이 `systemd`를 cgroup 드라이버로 사용하도록 설정을 변경하면
시스템이 안정화된다. 아래의 Docker 설정에서 `native.cgroupdriver=systemd` 옵션을 확인하라.
시스템이 안정화된다. 아래의 도커 설정에서 `native.cgroupdriver=systemd` 옵션을 확인하라.
{{< caution >}}
클러스터에 결합되어 있는 노드의 cgroup 관리자를 변경하는 것은 권장하지 않는다.
@@ -59,38 +59,48 @@ kubelet을 재시작 하는 것은 에러를 해결할 수 없을 것이다.
추천하는 방법은 워크로드에서 노드를 제거하고, 클러스터에서 제거한 다음 다시 결합시키는 것이다.
{{< /caution >}}
## Docker
## 도커
각 머신들에 대해서, Docker를 설치한다.
각 머신들에 대해서, 도커를 설치한다.
버전 19.03.8이 추천된다. 그러나 1.13.1, 17.03, 17.06, 17.09, 18.06 그리고 18.09도 동작하는 것으로 알려져 있다.
쿠버네티스 릴리스 노트를 통해서, 최신에 검증된 Docker 버전의 지속적인 파악이 필요하다.
쿠버네티스 릴리스 노트를 통해서, 최신에 검증된 도커 버전의 지속적인 파악이 필요하다.
시스템에 Docker를 설치하기 위해서 아래의 커맨드들을 사용한다.
시스템에 도커를 설치하기 위해서 아래의 커맨드들을 사용한다.
{{< tabs name="tab-cri-docker-installation" >}}
{{< tab name="Ubuntu 16.04+" codelang="bash" >}}
# Docker CE 설치
{{< tab name="Ubuntu 16.04+" >}}
```shell
# (도커 CE 설치)
## 리포지터리 설정
### apt가 HTTPS 리포지터리를 사용할 수 있도록 해주는 패키지 설치
apt-get update && apt-get install -y \
apt-transport-https ca-certificates curl software-properties-common gnupg2
```
### Docker의 공식 GPG 키 추가
```shell
# 도커 공식 GPG 키 추가
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
```
### Docker apt 리포지터리 추가.
```shell
# 도커 apt 리포지터리 추가.
add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
```
## Docker CE 설치.
```shell
# 도커 CE 설치.
apt-get update && apt-get install -y \
containerd.io=1.2.13-1 \
docker-ce=5:19.03.8~3-0~ubuntu-$(lsb_release -cs) \
docker-ce-cli=5:19.03.8~3-0~ubuntu-$(lsb_release -cs)
```
# 데몬 설정.
```shell
# 도커 데몬 설정
cat > /etc/docker/daemon.json <<EOF
{
"exec-opts": ["native.cgroupdriver=systemd"],
@@ -101,34 +111,48 @@ cat > /etc/docker/daemon.json <<EOF
"storage-driver": "overlay2"
}
EOF
```
```shell
mkdir -p /etc/systemd/system/docker.service.d
```
# Docker 재시작.
```shell
# 도커 재시작.
systemctl daemon-reload
systemctl restart docker
```
{{< /tab >}}
{{< tab name="CentOS/RHEL 7.4+" codelang="bash" >}}
{{< tab name="CentOS/RHEL 7.4+" >}}
# Docker CE 설치
```shell
# (도커 CE 설치)
## 리포지터리 설정
### 필요한 패키지 설치.
### 필요한 패키지 설치
yum install -y yum-utils device-mapper-persistent-data lvm2
```
### Docker 리포지터리 추가
```shell
## 도커 리포지터리 추가
yum-config-manager --add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
```
## Docker CE 설치.
```shell
# 도커 CE 설치.
yum update -y && yum install -y \
containerd.io-1.2.13 \
docker-ce-19.03.8 \
docker-ce-cli-19.03.8
```
## /etc/docker 디렉터리 생성.
```shell
## /etc/docker 생성.
mkdir /etc/docker
```
# 데몬 설정.
```shell
# 도커 데몬 설정.
cat > /etc/docker/daemon.json <<EOF
{
"exec-opts": ["native.cgroupdriver=systemd"],
@@ -142,16 +166,21 @@ cat > /etc/docker/daemon.json <<EOF
]
}
EOF
```
```shell
mkdir -p /etc/systemd/system/docker.service.d
```
# Docker 재시작.
```shell
# 도커 재시작.
systemctl daemon-reload
systemctl restart docker
```
{{< /tab >}}
{{< /tabs >}}
자세한 내용은 [공식 Docker 설치 가이드](https://docs.docker.com/engine/installation/)
자세한 내용은 [공식 도커 설치 가이드](https://docs.docker.com/engine/installation/)
를 참고한다.
## CRI-O
@@ -182,53 +211,78 @@ sysctl --system
```
{{< tabs name="tab-cri-cri-o-installation" >}}
{{< tab name="Debian" codelang="bash" >}}
{{< tab name="Debian" >}}
```shell
# Debian 개발 배포본(Unstable/Sid)
echo 'deb http://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/Debian_Unstable/ /' > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list
wget -nv https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable/Debian_Unstable/Release.key -O- | sudo apt-key add -
```
```shell
# Debian Testing
echo 'deb http://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/Debian_Testing/ /' > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list
wget -nv https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable/Debian_Testing/Release.key -O- | sudo apt-key add -
```
```shell
# Debian 10
echo 'deb http://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/Debian_10/ /' > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list
wget -nv https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable/Debian_10/Release.key -O- | sudo apt-key add -
```
```shell
# Raspbian 10
echo 'deb http://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/Raspbian_10/ /' > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list
wget -nv https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable/Raspbian_10/Release.key -O- | sudo apt-key add -
```
# CRI-O 설치
그리고 다음과 같이 CRI-O 설치한다.
```shell
sudo apt-get install cri-o-1.17
```
{{< /tab >}}
{{< tab name="Ubuntu 18.04, 19.04 and 19.10" codelang="bash" >}}
# 리포지터리 설치
{{< tab name="Ubuntu 18.04, 19.04 and 19.10" >}}
```shell
# 패키지 리포지터리 설정
. /etc/os-release
sudo sh -c "echo 'deb http://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/x${NAME}_${VERSION_ID}/ /' > /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list"
wget -nv https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable/x${NAME}_${VERSION_ID}/Release.key -O- | sudo apt-key add -
sudo apt-get update
```
```shell
# CRI-O 설치
sudo apt-get install cri-o-1.17
```
{{< /tab >}}
{{< tab name="CentOS/RHEL 7.4+" codelang="bash" >}}
{{< tab name="CentOS/RHEL 7.4+" >}}
```shell
# 선행 조건 설치
yum-config-manager --add-repo=https://cbs.centos.org/repos/paas7-crio-115-release/x86_64/os/
curl -L -o /etc/yum.repos.d/devel:kubic:libcontainers:stable.repo https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable/CentOS_7/devel:kubic:libcontainers:stable.repo
curl -L -o /etc/yum.repos.d/devel:kubic:libcontainers:stable:cri-o:{{< skew latestVersion >}}.repo https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable:cri-o:{{< skew latestVersion >}}/CentOS_7/devel:kubic:libcontainers:stable:cri-o:{{< skew latestVersion >}}.repo
```
```shell
# CRI-O 설치
yum install --nogpgcheck -y cri-o
yum install -y cri-o
```
{{< tab name="openSUSE Tumbleweed" codelang="bash" >}}
{{< tab name="openSUSE Tumbleweed" >}}
```shell
sudo zypper install cri-o
```
{{< /tab >}}
{{< /tabs >}}
### CRI-O 시작
```
```shell
systemctl daemon-reload
systemctl start crio
```
@@ -266,51 +320,75 @@ sysctl --system
### containerd 설치
{{< tabs name="tab-cri-containerd-installation" >}}
{{< tab name="Ubuntu 16.04" codelang="bash" >}}
# containerd 설치
{{< tab name="Ubuntu 16.04" >}}
```shell
# (containerd 설치)
## 리포지터리 설정
### apt가 HTTPS로 리포지터리를 사용하는 것을 허용하기 위한 패키지 설치
apt-get update && apt-get install -y apt-transport-https ca-certificates curl software-properties-common
```
### Docker의 공식 GPG 키 추가
```shell
## 도커 공식 GPG 키 추가
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
```
### Docker apt 리포지터리 추가.
```shell
## 도커 apt 리포지터리 추가.
add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
```
```shell
## containerd 설치
apt-get update && apt-get install -y containerd.io
```
```shell
# containerd 설정
mkdir -p /etc/containerd
containerd config default > /etc/containerd/config.toml
```
```shell
# containerd 재시작
systemctl restart containerd
```
{{< /tab >}}
{{< tab name="CentOS/RHEL 7.4+" codelang="bash" >}}
# containerd 설치
{{< tab name="CentOS/RHEL 7.4+" >}}
```shell
# (containerd 설치)
## 리포지터리 설정
### 필요한 패키지 설치
yum install -y yum-utils device-mapper-persistent-data lvm2
```
### Docker 리포지터리 추가리
```shell
## 도커 리포지터리 추가
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
```
```shell
## containerd 설치
yum update -y && yum install -y containerd.io
```
# containerd 설정
```shell
## containerd 설정
mkdir -p /etc/containerd
containerd config default > /etc/containerd/config.toml
```
```shell
# containerd 재시작
systemctl restart containerd
```
{{< /tab >}}
{{< /tabs >}}
@@ -67,7 +67,7 @@ spec:
- -command
- "<#code used from https://gist.github.com/wagnerandrade/5424431#> ; $$listener = New-Object System.Net.HttpListener ; $$listener.Prefixes.Add('http://*:80/') ; $$listener.Start() ; $$callerCounts = @{} ; Write-Host('Listening at http://*:80/') ; while ($$listener.IsListening) { ;$$context = $$listener.GetContext() ;$$requestUrl = $$context.Request.Url ;$$clientIP = $$context.Request.RemoteEndPoint.Address ;$$response = $$context.Response ;Write-Host '' ;Write-Host('> {0}' -f $$requestUrl) ; ;$$count = 1 ;$$k=$$callerCounts.Get_Item($$clientIP) ;if ($$k -ne $$null) { $$count += $$k } ;$$callerCounts.Set_Item($$clientIP, $$count) ;$$ip=(Get-NetAdapter | Get-NetIpAddress); $$header='<html><body><H1>Windows Container Web Server</H1>' ;$$callerCountsString='' ;$$callerCounts.Keys | % { $$callerCountsString+='<p>IP {0} callerCount {1} ' -f $$ip[1].IPAddress,$$callerCounts.Item($$_) } ;$$footer='</body></html>' ;$$content='{0}{1}{2}' -f $$header,$$callerCountsString,$$footer ;Write-Output $$content ;$$buffer = [System.Text.Encoding]::UTF8.GetBytes($$content) ;$$response.ContentLength64 = $$buffer.Length ;$$response.OutputStream.Write($$buffer, 0, $$buffer.Length) ;$$response.Close() ;$$responseStatus = $$response.StatusCode ;Write-Host('< {0}' -f $$responseStatus) } ; "
nodeSelector:
beta.kubernetes.io/os: windows
kubernetes.io/os: windows
```
{{< note >}}
File diff suppressed because it is too large Load Diff