From 918ac7ecae86084d35a130c543b68f5b06bc6ae4 Mon Sep 17 00:00:00 2001 From: Jihoon Seo Date: Mon, 22 Mar 2021 11:09:30 +0900 Subject: [PATCH 1/6] [ko] Update link href to translated page --- .../reference/setup-tools/kubeadm/_index.md | 18 +++++++++--------- .../setup-tools/kubeadm/generated/_index.md | 6 ++++++ content/ko/docs/reference/tools.md | 2 +- .../container-runtimes.md | 2 +- content/ko/docs/tasks/tools/_index.md | 4 ++-- 5 files changed, 19 insertions(+), 13 deletions(-) create mode 100644 content/ko/docs/reference/setup-tools/kubeadm/generated/_index.md diff --git a/content/ko/docs/reference/setup-tools/kubeadm/_index.md b/content/ko/docs/reference/setup-tools/kubeadm/_index.md index 683f78000b..9211da1e0f 100644 --- a/content/ko/docs/reference/setup-tools/kubeadm/_index.md +++ b/content/ko/docs/reference/setup-tools/kubeadm/_index.md @@ -16,15 +16,15 @@ kubeadm은 실행 가능한 최소 클러스터를 시작하고 실행하는 데 ## 설치 방법 -kubeadm을 설치하려면, [설치 가이드](/docs/setup/production-environment/tools/kubeadm/install-kubeadm)를 참고한다. +kubeadm을 설치하려면, [설치 가이드](/ko/docs/setup/production-environment/tools/kubeadm/install-kubeadm/)를 참고한다. ## {{% heading "whatsnext" %}} -* [kubeadm init](/docs/reference/setup-tools/kubeadm/kubeadm-init): 쿠버네티스 컨트롤 플레인 노드를 부트스트랩한다. -* [kubeadm join](/docs/reference/setup-tools/kubeadm/kubeadm-join): 쿠버네티스 워커(worker) 노드를 부트스트랩하고 클러스터에 조인시킨다. -* [kubeadm upgrade](/docs/reference/setup-tools/kubeadm/kubeadm-upgrade): 쿠버네티스 클러스터를 새로운 버전으로 업그레이드한다. -* [kubeadm config](/docs/reference/setup-tools/kubeadm/kubeadm-config): kubeadm v1.7.x 이하의 버전을 사용하여 클러스터를 초기화한 경우, `kubeadm upgrade` 를 위해 사용자의 클러스터를 구성한다. -* [kubeadm token](/docs/reference/setup-tools/kubeadm/kubeadm-token): `kubeadm join` 을 위한 토큰을 관리한다. -* [kubeadm reset](/docs/reference/setup-tools/kubeadm/kubeadm-reset): `kubeadm init` 또는 `kubeadm join` 에 의한 호스트의 모든 변경 사항을 되돌린다. -* [kubeadm version](/docs/reference/setup-tools/kubeadm/kubeadm-version): kubeadm 버전을 출력한다. -* [kubeadm alpha](/docs/reference/setup-tools/kubeadm/kubeadm-alpha): 커뮤니티에서 피드백을 수집하기 위해서 기능 미리 보기를 제공한다. +* [kubeadm init](/docs/reference/setup-tools/kubeadm/kubeadm-init/): 쿠버네티스 컨트롤 플레인 노드를 부트스트랩한다. +* [kubeadm join](/docs/reference/setup-tools/kubeadm/kubeadm-join/): 쿠버네티스 워커(worker) 노드를 부트스트랩하고 클러스터에 조인시킨다. +* [kubeadm upgrade](/docs/reference/setup-tools/kubeadm/kubeadm-upgrade/): 쿠버네티스 클러스터를 새로운 버전으로 업그레이드한다. +* [kubeadm config](/docs/reference/setup-tools/kubeadm/kubeadm-config/): kubeadm v1.7.x 이하의 버전을 사용하여 클러스터를 초기화한 경우, `kubeadm upgrade` 를 위해 사용자의 클러스터를 구성한다. +* [kubeadm token](/docs/reference/setup-tools/kubeadm/kubeadm-token/): `kubeadm join` 을 위한 토큰을 관리한다. +* [kubeadm reset](/docs/reference/setup-tools/kubeadm/kubeadm-reset/): `kubeadm init` 또는 `kubeadm join` 에 의한 호스트의 모든 변경 사항을 되돌린다. +* [kubeadm version](/docs/reference/setup-tools/kubeadm/kubeadm-version/): kubeadm 버전을 출력한다. +* [kubeadm alpha](/docs/reference/setup-tools/kubeadm/kubeadm-alpha/): 커뮤니티에서 피드백을 수집하기 위해서 기능 미리 보기를 제공한다. diff --git a/content/ko/docs/reference/setup-tools/kubeadm/generated/_index.md b/content/ko/docs/reference/setup-tools/kubeadm/generated/_index.md new file mode 100644 index 0000000000..7ebf753ae9 --- /dev/null +++ b/content/ko/docs/reference/setup-tools/kubeadm/generated/_index.md @@ -0,0 +1,6 @@ +--- +title: "Kubeadm Generated" +weight: 10 +toc_hide: true +--- + diff --git a/content/ko/docs/reference/tools.md b/content/ko/docs/reference/tools.md index 97206f3be7..a38158bf14 100644 --- a/content/ko/docs/reference/tools.md +++ b/content/ko/docs/reference/tools.md @@ -16,7 +16,7 @@ content_type: concept ## Kubeadm -[`kubeadm`](/docs/setup/production-environment/tools/kubeadm/install-kubeadm/)은 물리적 환경, 클라우드 서버, 또는 가상머신 상에서 안전한 쿠버네티스를 쉽게 프로비저닝하기 위한 커맨드라인 툴이다(현재는 알파 상태). +[`kubeadm`](/ko/docs/setup/production-environment/tools/kubeadm/install-kubeadm/)은 물리적 환경, 클라우드 서버, 또는 가상머신 상에서 안전한 쿠버네티스를 쉽게 프로비저닝하기 위한 커맨드라인 툴이다(현재는 알파 상태). ## Minikube diff --git a/content/ko/docs/setup/production-environment/container-runtimes.md b/content/ko/docs/setup/production-environment/container-runtimes.md index 827b407b84..ba06b3d023 100644 --- a/content/ko/docs/setup/production-environment/container-runtimes.md +++ b/content/ko/docs/setup/production-environment/container-runtimes.md @@ -265,7 +265,7 @@ Start-Service containerd ``` kubeadm을 사용하는 경우, -[kubelet용 cgroup 드라이버](/docs/setup/production-environment/tools/kubeadm/install-kubeadm/#configure-cgroup-driver-used-by-kubelet-on-control-plane-node)를 수동으로 구성한다. +[kubelet용 cgroup 드라이버](/ko/docs/setup/production-environment/tools/kubeadm/install-kubeadm/#컨트롤-플레인-노드에서-kubelet이-사용하는-cgroup-드라이버-구성)를 수동으로 구성한다. ### CRI-O diff --git a/content/ko/docs/tasks/tools/_index.md b/content/ko/docs/tasks/tools/_index.md index 47c90ec7fd..8c2b3e1aed 100755 --- a/content/ko/docs/tasks/tools/_index.md +++ b/content/ko/docs/tasks/tools/_index.md @@ -53,7 +53,7 @@ kind를 시작하고 실행하기 위해 수행해야 하는 작업을 보여준 {{< glossary_tooltip term_id="kubeadm" text="kubeadm" >}} 도구를 사용하여 쿠버네티스 클러스터를 만들고 관리할 수 있다. 사용자 친화적인 방식으로 최소한의 실행 가능하고 안전한 클러스터를 설정하고 실행하는 데 필요한 작업을 수행한다. -[kubeadm 설치](/docs/setup/production-environment/tools/kubeadm/install-kubeadm/) 페이지는 kubeadm 설치하는 방법을 보여준다. +[kubeadm 설치](/ko/docs/setup/production-environment/tools/kubeadm/install-kubeadm/) 페이지는 kubeadm 설치하는 방법을 보여준다. 설치가 끝나면, [클러스터 생성](/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/)이 가능하다. -kubeadm 설치 가이드 보기 +kubeadm 설치 가이드 보기 From ab8b27fd6ea3d9887dfa4d8598c5ce258c0bc3b0 Mon Sep 17 00:00:00 2001 From: Jihoon Seo Date: Mon, 29 Mar 2021 10:11:35 +0900 Subject: [PATCH 2/6] [ko] Enhance consistency of Korean translation --- .../concepts/overview/working-with-objects/annotations.md | 2 +- .../ko/docs/concepts/overview/working-with-objects/labels.md | 2 +- content/ko/docs/concepts/workloads/controllers/deployment.md | 2 +- content/ko/docs/contribute/new-content/open-a-pr.md | 2 +- content/ko/docs/setup/production-environment/tools/kops.md | 4 ++-- content/ko/docs/tutorials/clusters/apparmor.md | 4 ++-- content/ko/docs/tutorials/stateful-application/cassandra.md | 2 +- .../stateful-application/mysql-wordpress-persistent-volume.md | 2 +- 8 files changed, 10 insertions(+), 10 deletions(-) diff --git a/content/ko/docs/concepts/overview/working-with-objects/annotations.md b/content/ko/docs/concepts/overview/working-with-objects/annotations.md index 944d7340ba..245da33db3 100644 --- a/content/ko/docs/concepts/overview/working-with-objects/annotations.md +++ b/content/ko/docs/concepts/overview/working-with-objects/annotations.md @@ -37,7 +37,7 @@ weight: 50 자동 생성된 필드, 그리고 오토사이징 또는 오토스케일링 시스템에 의해 설정된 필드와 구분된다. -* 빌드, 릴리스, 또는 타임 스탬프, 릴리즈 ID, git 브랜치, +* 빌드, 릴리스, 또는 타임 스탬프, 릴리스 ID, git 브랜치, PR 번호, 이미지 해시 및 레지스트리 주소와 같은 이미지 정보. * 로깅, 모니터링, 분석 또는 감사 리포지터리에 대한 포인터. diff --git a/content/ko/docs/concepts/overview/working-with-objects/labels.md b/content/ko/docs/concepts/overview/working-with-objects/labels.md index 2044cf5135..da3cff2a89 100644 --- a/content/ko/docs/concepts/overview/working-with-objects/labels.md +++ b/content/ko/docs/concepts/overview/working-with-objects/labels.md @@ -32,7 +32,7 @@ _레이블_ 은 파드와 같은 오브젝트에 첨부된 키와 값의 쌍이 레이블을 이용하면 사용자가 느슨하게 결합한 방식으로 조직 구조와 시스템 오브젝트를 매핑할 수 있으며, 클라이언트에 매핑 정보를 저장할 필요가 없다. -서비스 배포와 배치 프로세싱 파이프라인은 흔히 다차원의 엔티티들이다(예: 다중 파티션 또는 배포, 다중 릴리즈 트랙, 다중 계층, 계층 속 여러 마이크로 서비스들). 관리에는 크로스-커팅 작업이 필요한 경우가 많은데 이 작업은 사용자보다는 인프라에 의해 결정된 엄격한 계층 표현인 캡슐화를 깨트린다. +서비스 배포와 배치 프로세싱 파이프라인은 흔히 다차원의 엔티티들이다(예: 다중 파티션 또는 배포, 다중 릴리스 트랙, 다중 계층, 계층 속 여러 마이크로 서비스들). 관리에는 크로스-커팅 작업이 필요한 경우가 많은데 이 작업은 사용자보다는 인프라에 의해 결정된 엄격한 계층 표현인 캡슐화를 깨트린다. 레이블 예시: diff --git a/content/ko/docs/concepts/workloads/controllers/deployment.md b/content/ko/docs/concepts/workloads/controllers/deployment.md index f6b9979d47..7e1cc742db 100644 --- a/content/ko/docs/concepts/workloads/controllers/deployment.md +++ b/content/ko/docs/concepts/workloads/controllers/deployment.md @@ -1037,7 +1037,7 @@ echo $? ## 카나리 디플로이먼트 -만약 디플로이먼트를 이용해서 일부 사용자 또는 서버에 릴리즈를 롤아웃 하기 위해서는 +만약 디플로이먼트를 이용해서 일부 사용자 또는 서버에 릴리스를 롤아웃 하기 위해서는 [리소스 관리](/ko/docs/concepts/cluster-administration/manage-deployment/#카나리-canary-디플로이먼트)에 설명된 카나리 패던에 따라 각 릴리스 마다 하나씩 여러 디플로이먼트를 생성할 수 있다. diff --git a/content/ko/docs/contribute/new-content/open-a-pr.md b/content/ko/docs/contribute/new-content/open-a-pr.md index 516c22bfea..8697159261 100644 --- a/content/ko/docs/contribute/new-content/open-a-pr.md +++ b/content/ko/docs/contribute/new-content/open-a-pr.md @@ -224,7 +224,7 @@ website의 컨테이너 이미지를 만들거나 Hugo를 로컬에서 실행할 {{% tab name="Hugo 컨테이너" %}} {{< note >}} -아래 명령은 도커를 기본 컨테이너 엔진으로 사용한다. 이 동작을 무시하려면 `CONTAINER_ENGINE` 환경변수를 설정한다. +아래 명령은 도커를 기본 컨테이너 엔진으로 사용한다. 이 동작을 무시하려면 `CONTAINER_ENGINE` 환경 변수를 설정한다. {{< /note >}} 1. 로컬에서 이미지를 빌드한다. diff --git a/content/ko/docs/setup/production-environment/tools/kops.md b/content/ko/docs/setup/production-environment/tools/kops.md index dbea03b735..0c0b0f5a15 100644 --- a/content/ko/docs/setup/production-environment/tools/kops.md +++ b/content/ko/docs/setup/production-environment/tools/kops.md @@ -44,7 +44,7 @@ kops는 자동화된 프로비저닝 시스템인데, {{< tabs name="kops_installation" >}} {{% tab name="macOS" %}} -최신 버전의 릴리즈를 다운받는 명령어: +최신 버전의 릴리스를 다운받는 명령어: ```shell curl -LO https://github.com/kubernetes/kops/releases/download/$(curl -s https://api.github.com/repos/kubernetes/kops/releases/latest @@ -84,7 +84,7 @@ brew update && brew install kops {{% /tab %}} {{% tab name="리눅스" %}} -최신 릴리즈를 다운로드 받는 명령어: +최신 릴리스를 다운로드 받는 명령어: ```shell curl -LO https://github.com/kubernetes/kops/releases/download/$(curl -s https://api.github.com/repos/kubernetes/kops/releases/latest | grep tag_name | cut -d '"' -f 4)/kops-linux-amd64 diff --git a/content/ko/docs/tutorials/clusters/apparmor.md b/content/ko/docs/tutorials/clusters/apparmor.md index c28f41a7cc..ae3fce6cb8 100644 --- a/content/ko/docs/tutorials/clusters/apparmor.md +++ b/content/ko/docs/tutorials/clusters/apparmor.md @@ -103,7 +103,7 @@ AppArmor를 이용하면 컨테이너가 수행할 수 있는 작업을 제한 AppArmor 지원이 포함된 Kubelet (>= v1.4)이면 어떤 전제 조건이 충족되지 않으면 AppArmor와 함께한 파드를 거부한다. 노드 상에 AppArmor 지원 여부는 -노드 준비 조건 메시지를 확인하여(이후 릴리즈에서는 삭제될 것 같지만) 검증할 수 있다. +노드 준비 조건 메시지를 확인하여(이후 릴리스에서는 삭제될 것 같지만) 검증할 수 있다. ```shell kubectl get nodes -o=jsonpath=$'{range .items[*]}{@.metadata.name}: {.status.conditions[?(@.reason=="KubeletReady")].message}\n{end}' @@ -396,7 +396,7 @@ AppArmor가 일반 사용자 버전이 되면 제거된다. AppArmor는 일반 사용자 버전(general available)으로 준비되면 현재 어노테이션으로 지정되는 옵션은 필드로 변경될 것이다. 모든 업그레이드와 다운그레이드 방법은 전환을 통해 지원하기에는 매우 미묘하니 전환이 필요할 때에 상세히 설명할 것이다. -최소 두 번의 릴리즈에 대해서는 필드와 어노테이션 모두를 지원할 것이고, +최소 두 번의 릴리스에 대해서는 필드와 어노테이션 모두를 지원할 것이고, 그 이후부터는 어노테이션은 명확히 거부된다. ## 프로파일 제작 {#authoring-profiles} diff --git a/content/ko/docs/tutorials/stateful-application/cassandra.md b/content/ko/docs/tutorials/stateful-application/cassandra.md index 0a420100ce..7b1888a15e 100644 --- a/content/ko/docs/tutorials/stateful-application/cassandra.md +++ b/content/ko/docs/tutorials/stateful-application/cassandra.md @@ -270,7 +270,7 @@ kubectl apply -f cassandra-statefulset.yaml 기반하였고 OpenJDK 8을 포함한다. 이 이미지는 아파치 데비안 리포의 표준 카산드라 설치본을 포함한다. -환경변수를 이용하여 `cassandra.yaml`에 삽입된 값을 바꿀 수 있다. +환경 변수를 이용하여 `cassandra.yaml`에 삽입된 값을 바꿀 수 있다. | 환경 변수 | 기본값 | | ------------- |:-------------: | diff --git a/content/ko/docs/tutorials/stateful-application/mysql-wordpress-persistent-volume.md b/content/ko/docs/tutorials/stateful-application/mysql-wordpress-persistent-volume.md index 5c27b55183..4c5f690d70 100644 --- a/content/ko/docs/tutorials/stateful-application/mysql-wordpress-persistent-volume.md +++ b/content/ko/docs/tutorials/stateful-application/mysql-wordpress-persistent-volume.md @@ -91,7 +91,7 @@ EOF ## MySQL과 WordPress에 필요한 리소스 구성 추가하기 -다음 매니페스트는 MySQL 디플로이먼트 단일 인스턴스를 기술한다. MySQL 컨케이너는 퍼시스턴트볼륨을 /var/lib/mysql에 마운트한다. `MYSQL_ROOT_PASSWORD` 환경변수는 시크릿에서 가져와 데이터베이스 암호로 설정한다. +다음 매니페스트는 MySQL 디플로이먼트 단일 인스턴스를 기술한다. MySQL 컨케이너는 퍼시스턴트볼륨을 /var/lib/mysql에 마운트한다. `MYSQL_ROOT_PASSWORD` 환경 변수는 시크릿에서 가져와 데이터베이스 암호로 설정한다. {{< codenew file="application/wordpress/mysql-deployment.yaml" >}} From 1b1382bd12eae1f79bfe1e3fdd75fae2d6f65587 Mon Sep 17 00:00:00 2001 From: santachopa Date: Fri, 19 Mar 2021 11:26:46 +0900 Subject: [PATCH 3/6] Translate reference/glossary/volume-plugin.md in Korean --- .../docs/reference/glossary/volume-plugin.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 content/ko/docs/reference/glossary/volume-plugin.md diff --git a/content/ko/docs/reference/glossary/volume-plugin.md b/content/ko/docs/reference/glossary/volume-plugin.md new file mode 100644 index 0000000000..779f0303ca --- /dev/null +++ b/content/ko/docs/reference/glossary/volume-plugin.md @@ -0,0 +1,19 @@ +--- +title: 볼륨 플러그인(Volume Plugin) +id: volumeplugin +date: 2018-04-12 +full_link: +short_description: > + 볼륨 플러그인은 파드 내에서의 스토리지 통합을 가능하게 한다. + +aka: +tags: +- core-object +- storage +--- + 볼륨 플러그인은 {{< glossary_tooltip text="파드(Pod)" term_id="pod" >}} 내에서의 스토리지 통합을 가능하게 한다. + + + +볼륨 플러그인을 사용하면 {{< glossary_tooltip text="파드" term_id="pod" >}}에서 사용할 스토리지 볼륨을 연결하고 마운트할 수 있다. 볼륨 플러그인은 _인-트리(in tree)_ 혹은 _아웃-오브-트리(out of tree)_ 일 수 있다. _인-트리_ 플러그인은 쿠버네티스 코드 리포지터리의 일부이며 동일한 릴리즈 주기를 따른다. _아웃-오브-트리_ 플러그인은 독립적으로 개발된다. + From 39c82936d90119c88b6a69354c55b21530f2b694 Mon Sep 17 00:00:00 2001 From: seokho-son Date: Sat, 27 Mar 2021 18:34:09 +0900 Subject: [PATCH 4/6] Update outdated files in dev-1.20-ko.7 (p2) --- .../configure-redis-using-configmap.md | 251 ++++++++++++++---- .../expose/expose-intro.html | 2 +- .../expose-external-ip-address.md | 2 +- .../stateless-application/guestbook.md | 8 +- .../pods/config/example-redis-config.yaml | 8 + 5 files changed, 208 insertions(+), 63 deletions(-) create mode 100644 content/ko/examples/pods/config/example-redis-config.yaml diff --git a/content/ko/docs/tutorials/configuration/configure-redis-using-configmap.md b/content/ko/docs/tutorials/configuration/configure-redis-using-configmap.md index 34095ef424..c1b21d1404 100644 --- a/content/ko/docs/tutorials/configuration/configure-redis-using-configmap.md +++ b/content/ko/docs/tutorials/configuration/configure-redis-using-configmap.md @@ -1,22 +1,23 @@ --- -title: 컨피그 맵을 사용해서 Redis 설정하기 + + + +title: 컨피그맵을 사용해서 Redis 설정하기 content_type: tutorial --- -이 페이지에서는 컨피그 맵을 사용해서 Redis를 설정하는 방법에 대한 실세계 예제를 제공하고, [컨피그 맵을 사용해서 컨테이너 설정하기](/docs/tasks/configure-pod-container/configure-pod-configmap/) 태스크로 빌드를 한다. +이 페이지에서는 컨피그맵(ConfigMap)을 사용해서 Redis를 설정하는 방법에 대한 실세계 예제를 제공하고, [컨피그맵을 사용해서 컨테이너 설정하기](/docs/tasks/configure-pod-container/configure-pod-configmap/) 태스크로 빌드를 한다. ## {{% heading "objectives" %}} -* 다음을 포함하는 `kustomization.yaml` 파일을 생성한다. - * 컨피그 맵 생성자 - * 컨피그 맵을 사용하는 파드 리소스 -* `kubectl apply -k ./`를 실행하여 작업한 디렉터리를 적용한다. -* 구성이 잘 적용되었는지 확인한다. +* Redis 설정값으로 컨피그맵을 생성한다. +* 생성된 컨피그맵을 마운트하고 사용하는 Redis 파드를 생성한다. +* 설정이 잘 적용되었는지 확인한다. @@ -26,91 +27,227 @@ content_type: tutorial {{< include "task-tutorial-prereqs.md" >}} {{< version-check >}} * 예시는 `kubectl` 1.14 이상 버전에서 동작한다. -* [컨피그 맵을 사용해서 컨테이너 설정하기](/docs/tasks/configure-pod-container/configure-pod-configmap/)를 이해한다. +* [컨피그맵을 사용해서 컨테이너 설정하기](/docs/tasks/configure-pod-container/configure-pod-configmap/)를 이해한다. -## 실세상 예제: 컨피그 맵을 사용해서 Redis 설정하기 +## 실세상 예제: 컨피그맵을 사용해서 Redis 설정하기 -아래의 단계를 통해서 컨피그 맵에 저장된 데이터를 사용해서 Redis 캐시를 설정할 수 있다. +아래 단계를 통해서, 컨피그맵에 저장된 데이터를 사용하는 Redis 캐시를 설정한다. -첫째, `redis-config` 파일에서 컨피그 맵을 포함한 `kustomization.yaml`를 생성한다. - -{{< codenew file="pods/config/redis-config" >}} +우선, 비어 있는 설정으로 컨피그맵을 생성한다. ```shell -curl -OL https://k8s.io/examples/pods/config/redis-config - -cat <./kustomization.yaml -configMapGenerator: -- name: example-redis-config - files: - - redis-config +cat <./example-redis-config.yaml +apiVersion: v1 +kind: ConfigMap +metadata: + name: example-redis-config +data: + redis-config: "" EOF ``` -`kustomization.yaml`에 파드 리소스 구성을 추가한다. +위에서 생성한 컨피그맵을 Redis 파드 매니페스트와 함께 적용한다. + +```shell +kubectl apply -f example-redis-config.yaml +kubectl apply -f https://raw.githubusercontent.com/kubernetes/website/master/content/en/examples/pods/config/redis-pod.yaml +``` + +Redis 파드 매니페스트의 내용을 검토하고 다음의 사항을 염두에 둔다. + +* `config` 라는 이름의 볼륨은 `spec.volumes[1]` 에 의해서 생성된다. +* `spec.volumes[1].items[0]` 내부의 `key` 와 `path` 는 `config` 볼륨에 `redis.conf` 라는 파일명으로 지정된 + `example-redis-config` 컨피그맵의 `redis-config` 키를 노출시킨다. +* 그리고 `config` 볼륨은 `spec.containers[0].volumeMounts[1]` 에 의해서 `/redis-master` 에 마운트된다. + +이 내용은 위의 `example-redis-config` 컨피그맵의 `data.redis-config` 내부 데이터를 파드 안에 있는 +`/redis-master/redis.conf` 파일의 내용으로 노출시키는 순효과(net effect)를 낸다. {{< codenew file="pods/config/redis-pod.yaml" >}} -```shell -curl -OL https://raw.githubusercontent.com/kubernetes/website/master/content/en/examples/pods/config/redis-pod.yaml - -cat <>./kustomization.yaml -resources: -- redis-pod.yaml -EOF -``` - -컨피그 맵과 파드 오브젝트를 생성하도록 kustomization 디렉터리를 적용한다. - -```shell -kubectl apply -k . -``` - 생성된 오브젝트를 확인한다. -```shell -> kubectl get -k . -NAME DATA AGE -configmap/example-redis-config-dgh9dg555m 1 52s -NAME READY STATUS RESTARTS AGE -pod/redis 1/1 Running 0 52s +```shell +kubectl get pod/redis configmap/example-redis-config ``` -이 예제에서는 설정 볼륨이 `/redis-master`에 마운트되어 있다. -`redis-config` 키를 `redis.conf`라는 이름의 파일에 추가하기 위해 `path`를 사용한다. -따라서, Redis 설정을 위한 파일 경로는 `/redis-master/redis.conf`이다. -이곳이 이미지가 Redis 마스터를 위한 설정 파일을 찾는 곳이다. +다음의 결과를 볼 수 있다. -설정이 올바르게 적용되었는지 확인하기 위해서, -`kubectl exec`를 사용해 파드 속에서 `redis-cli` 툴을 실행해 본다. +```shell +NAME READY STATUS RESTARTS AGE +pod/redis 1/1 Running 0 8s + +NAME DATA AGE +configmap/example-redis-config 1 14s +``` + +`example-redis-config` 컨피그맵의 `redis-config` 키를 공란으로 둔 것을 기억하자. + +```shell +kubectl describe configmap/example-redis-config +``` + +`redis-config` 키가 비어 있는 것을 확인할 수 있다. + +```shell +Name: example-redis-config +Namespace: default +Labels: +Annotations: + +Data +==== +redis-config: +``` + +`kubectl exec` 를 사용하여 파드에 접속하고, 현재 설정 확인을 위해서 `redis-cli` 도구를 실행한다. ```shell kubectl exec -it redis -- redis-cli +``` + +`maxmemory` 를 확인한다. + +```shell 127.0.0.1:6379> CONFIG GET maxmemory +``` + +기본값인 0을 볼 수 있을 것이다. + +```shell +1) "maxmemory" +2) "0" +``` + +유사하게, `maxmemory-policy` 를 확인한다. + +```shell +127.0.0.1:6379> CONFIG GET maxmemory-policy +``` + +이것도 기본값인 `noeviction` 을 보여줄 것이다. + +```shell +1) "maxmemory-policy" +2) "noeviction" +``` + +이제 `example-redis-config` 컨피그맵에 몇 가지 설정값을 추가해 본다. + +{{< codenew file="pods/config/example-redis-config.yaml" >}} + +갱신된 컨피그맵을 적용한다. + +```shell +kubectl apply -f example-redis-config.yaml +``` + +컨피그맵이 갱신된 것을 확인한다. + +```shell +kubectl describe configmap/example-redis-config +``` + +방금 추가한 설정값을 확인할 수 있을 것이다. + +```shell +Name: example-redis-config +Namespace: default +Labels: +Annotations: + +Data +==== +redis-config: +---- +maxmemory 2mb +maxmemory-policy allkeys-lru +``` + +설정이 적용되었는지 확인하려면, `kubectl exec` 를 통한 `redis-cli` 로 Redis 파드를 다시 확인한다. + +```shell +kubectl exec -it redis -- redis-cli +``` + +`maxmemory` 를 확인한다. + +```shell +127.0.0.1:6379> CONFIG GET maxmemory +``` + +기본값인 0을 볼 수 있을 것이다. + +```shell +1) "maxmemory" +2) "0" +``` + +유사하게, `maxmemory-policy` 도 기본 설정인 `noeviction` 을 보여줄 것이다. + +```shell +127.0.0.1:6379> CONFIG GET maxmemory-policy +``` + +위의 명령은 다음을 반환한다. + +```shell +1) "maxmemory-policy" +2) "noeviction" +``` + +파드는 연관된 컨피그맵에서 갱신된 값을 인지하기 위해서 재시작이 필요하므로 +해당 설정값이 변경되지 않은 상태이다. 파드를 삭제하고 다시 생성한다. + +```shell +kubectl delete pod redis +kubectl apply -f https://raw.githubusercontent.com/kubernetes/website/master/content/en/examples/pods/config/redis-pod.yaml +``` + +이제 마지막으로 설정값을 다시 확인해 본다. + +```shell +kubectl exec -it redis -- redis-cli +``` + +`maxmemory` 를 확인한다. + +```shell +127.0.0.1:6379> CONFIG GET maxmemory +``` + +이것은 이제 갱신된 값인 2097152를 반환한다. + +```shell 1) "maxmemory" 2) "2097152" +``` + +유사하게, `maxmemory-policy` 도 갱신되어 있다. + +```shell 127.0.0.1:6379> CONFIG GET maxmemory-policy +``` + +이것은 원하는 값인 `allkeys-lru` 를 반환한다. + +```shell 1) "maxmemory-policy" 2) "allkeys-lru" ``` -생성된 파드를 삭제한다. +생성된 자원을 삭제하여 작업을 정리한다. + ```shell -kubectl delete pod redis +kubectl delete pod/redis configmap/example-redis-config ``` - - ## {{% heading "whatsnext" %}} -* [컨피그 맵](/docs/tasks/configure-pod-container/configure-pod-configmap/) 배우기. - - - - +* [컨피그맵](/docs/tasks/configure-pod-container/configure-pod-configmap/) 배우기. diff --git a/content/ko/docs/tutorials/kubernetes-basics/expose/expose-intro.html b/content/ko/docs/tutorials/kubernetes-basics/expose/expose-intro.html index e44e68df85..aac6298a7a 100644 --- a/content/ko/docs/tutorials/kubernetes-basics/expose/expose-intro.html +++ b/content/ko/docs/tutorials/kubernetes-basics/expose/expose-intro.html @@ -37,7 +37,7 @@ weight: 10
  • ClusterIP (기본값) - 클러스터 내에서 내부 IP 에 대해 서비스를 노출해준다. 이 방식은 오직 클러스터 내에서만 서비스가 접근될 수 있도록 해준다.
  • NodePort - NAT가 이용되는 클러스터 내에서 각각 선택된 노드들의 동일한 포트에 서비스를 노출시켜준다. <NodeIP>:<NodePort>를 이용하여 클러스터 외부로부터 서비스가 접근할 수 있도록 해준다. ClusterIP의 상위 집합이다.
  • LoadBalancer - (지원 가능한 경우) 기존 클라우드에서 외부용 로드밸런서를 생성하고 서비스에 고정된 공인 IP를 할당해준다. NodePort의 상위 집합이다.
  • -
  • ExternalName - 이름으로 CNAME 레코드를 반환함으로써 임의의 이름(스펙에서 externalName으로 명시)을 이용하여 서비스를 노출시켜준다. 프록시는 사용되지 않는다. 이 방식은 kube-dns 버전 1.7 이상에서 지원 가능하다.
  • +
  • ExternalName - CNAME 레코드 및 값을 반환함으로써 서비스를 externalName 필드의 내용(예를 들면, `foo.bar.example.com`)에 매핑한다. 어떠한 종류의 프록시도 설정되지 않는다. 이 방식은 kube-dns v1.7 이상 또는 CoreDNS 버전 0.0.8 이상을 필요로 한다.
  • 다른 서비스 타입들에 대한 추가 정보는 소스 IP 이용하기 튜토리얼에서 확인 가능하다. 또한 서비스들로 애플리케이션에 접속하기도 참고해 보자.

    부가적으로, spec에 selector를 정의하지 않고 말아넣은 서비스들의 몇 가지 유즈케이스들이 있음을 주의하자. selector 없이 생성된 서비스는 상응하는 엔드포인트 오브젝트들 또한 생성하지 않는다. 이로써 사용자들로 하여금 하나의 서비스를 특정한 엔드포인트에 매핑 시킬수 있도록 해준다. selector를 생략하게 되는 또 다른 가능성은 여러분이 type: ExternalName을 이용하겠다고 확고하게 의도하는 경우이다.

    diff --git a/content/ko/docs/tutorials/stateless-application/expose-external-ip-address.md b/content/ko/docs/tutorials/stateless-application/expose-external-ip-address.md index a8a2c0653a..2b8ffff7ff 100644 --- a/content/ko/docs/tutorials/stateless-application/expose-external-ip-address.md +++ b/content/ko/docs/tutorials/stateless-application/expose-external-ip-address.md @@ -11,7 +11,7 @@ weight: 10 ## {{% heading "prerequisites" %}} - * [kubectl](/ko/docs/tasks/tools/install-kubectl/)을 설치한다. + * [kubectl](/ko/docs/tasks/tools/)을 설치한다. * Google Kubernetes Engine 또는 Amazon Web Services와 같은 클라우드 공급자를 사용하여 쿠버네티스 클러스터를 생성한다. 이 튜토리얼은 [외부 로드 밸런서](/docs/tasks/access-application-cluster/create-external-load-balancer/)를 생성하는데, diff --git a/content/ko/docs/tutorials/stateless-application/guestbook.md b/content/ko/docs/tutorials/stateless-application/guestbook.md index 24e05ab77f..04230b4f3e 100644 --- a/content/ko/docs/tutorials/stateless-application/guestbook.md +++ b/content/ko/docs/tutorials/stateless-application/guestbook.md @@ -1,5 +1,7 @@ --- title: "예시: MongoDB를 사용한 PHP 방명록 애플리케이션 배포하기" + + content_type: tutorial weight: 20 card: @@ -15,8 +17,6 @@ min-kubernetes-server-version: v1.14 * 방명록을 저장하는 단일 인스턴스 [MongoDB](https://www.mongodb.com/) * 여러 개의 웹 프론트엔드 인스턴스 - - ## {{% heading "objectives" %}} * Mongo 데이터베이스를 시작 @@ -87,6 +87,7 @@ kubectl apply -f ./content/en/examples/application/guestbook/mongo-deployment.ya ```shell kubectl apply -f https://k8s.io/examples/application/guestbook/mongo-service.yaml ``` + diff --git a/content/ko/docs/concepts/storage/dynamic-provisioning.md b/content/ko/docs/concepts/storage/dynamic-provisioning.md index 412645e734..d39289106e 100644 --- a/content/ko/docs/concepts/storage/dynamic-provisioning.md +++ b/content/ko/docs/concepts/storage/dynamic-provisioning.md @@ -75,8 +75,8 @@ parameters: 사용자는 `PersistentVolumeClaim` 에 스토리지 클래스를 포함시켜 동적으로 프로비전된 스토리지를 요청한다. 쿠버네티스 v1.6 이전에는 `volume.beta.kubernetes.io/storage-class` 어노테이션을 통해 수행되었다. 그러나 이 어노테이션은 -v1.6부터 더 이상 사용하지 않는다. 사용자는 이제 `PersistentVolumeClaim` 오브젝트의 -`storageClassName` 필드를 사용할 수 있기에 대신하여 사용해야 한다. 이 필드의 값은 +v1.9부터는 더 이상 사용하지 않는다. 사용자는 이제 `PersistentVolumeClaim` 오브젝트의 +`storageClassName` 필드를 사용해야 한다. 이 필드의 값은 관리자가 구성한 `StorageClass` 의 이름과 일치해야 한다. ([아래](#동적-프로비저닝-활성화하기)를 참고) diff --git a/content/ko/docs/concepts/storage/volumes.md b/content/ko/docs/concepts/storage/volumes.md index c9b3ac80d9..5323182966 100644 --- a/content/ko/docs/concepts/storage/volumes.md +++ b/content/ko/docs/concepts/storage/volumes.md @@ -31,7 +31,8 @@ weight: 10 임시 볼륨 유형은 파드의 수명을 갖지만, 퍼시스턴트 볼륨은 파드의 수명을 넘어 존재한다. 결과적으로, 볼륨은 파드 내에서 실행되는 모든 컨테이너보다 오래 지속되며, 컨테이너를 다시 시작해도 데이터가 보존된다. 파드가 -더 이상 존재하지 않으면, 볼륨은 삭제된다. +더 이상 존재하지 않으면, 쿠버네티스는 임시(ephemeral) 볼륨을 삭제하지만, +퍼시스턴트(persistent) 볼륨은 삭제하지 않는다. 기본적으로 볼륨은 디렉터리일 뿐이며, 일부 데이터가 있을 수 있으며, 파드 내 컨테이너에서 접근할 수 있다. 디렉터리의 생성 방식, 이를 지원하는 diff --git a/content/ko/docs/concepts/workloads/controllers/deployment.md b/content/ko/docs/concepts/workloads/controllers/deployment.md index f6b9979d47..fede8a46c8 100644 --- a/content/ko/docs/concepts/workloads/controllers/deployment.md +++ b/content/ko/docs/concepts/workloads/controllers/deployment.md @@ -51,8 +51,8 @@ _디플로이먼트(Deployment)_ 는 {{< glossary_tooltip text="파드" term_id= {{< note >}} `.spec.selector.matchLabels` 필드는 {key,value}의 쌍으로 매핑되어있다. `matchLabels` 에 매핑된 - 단일 {key,value}은 `matchExpressions` 의 요소에 해당하며, 키 필드는 "key"에 그리고 연산자는 "In"에 대응되며 - 값 배열은 "value"만 포함한다. + 단일 {key,value}은 `matchExpressions` 의 요소에 해당하며, `key` 필드는 "key"에 그리고 `operator`는 "In"에 대응되며 + `value` 배열은 "value"만 포함한다. 매칭을 위해서는 `matchLabels` 와 `matchExpressions` 의 모든 요건이 충족되어야 한다. {{< /note >}} diff --git a/content/ko/docs/reference/_index.md b/content/ko/docs/reference/_index.md index c294f2efb5..ff1727ffee 100644 --- a/content/ko/docs/reference/_index.md +++ b/content/ko/docs/reference/_index.md @@ -6,6 +6,7 @@ linkTitle: "레퍼런스" main_menu: true weight: 70 content_type: concept +no_list: true --- @@ -18,11 +19,17 @@ content_type: concept ## API 레퍼런스 +* [표준 용어집](/ko/docs/reference/glossary/) - 포괄적이고, 표준화 된 쿠버네티스 용어 목록 + + + * [쿠버네티스 API 레퍼런스](/docs/reference/kubernetes-api/) * [쿠버네티스 {{< param "version" >}}용 원페이지(One-page) API 레퍼런스](/docs/reference/generated/kubernetes-api/{{< param "version" >}}/) * [쿠버네티스 API 사용](/ko/docs/reference/using-api/) - 쿠버네티스 API에 대한 개요 +* [API 접근 제어](/ko/docs/reference/access-authn-authz/) - 쿠버네티스가 API 접근을 제어하는 방법에 대한 세부사항 +* [잘 알려진 레이블, 어노테이션과 테인트](/docs/reference/kubernetes-api/labels-annotations-taints/) -## API 클라이언트 라이브러리 +## 공식적으로 지원되는 클라이언트 라이브러리 프로그래밍 언어에서 쿠버네티스 API를 호출하기 위해서, [클라이언트 라이브러리](/ko/docs/reference/using-api/client-libraries/)를 사용할 수 있다. @@ -32,22 +39,27 @@ content_type: concept - [쿠버네티스 Python 클라이언트 라이브러리](https://github.com/kubernetes-client/python) - [쿠버네티스 Java 클라이언트 라이브러리](https://github.com/kubernetes-client/java) - [쿠버네티스 JavaScript 클라이언트 라이브러리](https://github.com/kubernetes-client/javascript) +- [쿠버네티스 Dotnet 클라이언트 라이브러리](https://github.com/kubernetes-client/csharp) +- [쿠버네티스 Haskell 클라이언트 라이브러리](https://github.com/kubernetes-client/haskell) -## CLI 레퍼런스 +## CLI * [kubectl](/ko/docs/reference/kubectl/overview/) - 명령어를 실행하거나 쿠버네티스 클러스터를 관리하기 위해 사용하는 주된 CLI 도구. * [JSONPath](/ko/docs/reference/kubectl/jsonpath/) - kubectl에서 [JSONPath 표현](https://goessner.net/articles/JsonPath/)을 사용하기 위한 문법 가이드. * [kubeadm](/ko/docs/reference/setup-tools/kubeadm/) - 안정적인 쿠버네티스 클러스터를 쉽게 프로비전하기 위한 CLI 도구. -## 컴포넌트 레퍼런스 +## 컴포넌트 * [kubelet](/docs/reference/command-line-tools-reference/kubelet/) - 각 노드에서 구동되는 주요한 *노드 에이전트*. kubelet은 PodSpecs 집합을 가지며 기술된 컨테이너가 구동되고 있는지, 정상 작동하는지를 보장한다. * [kube-apiserver](/docs/reference/command-line-tools-reference/kube-apiserver/) - 파드, 서비스, 레플리케이션 컨트롤러와 같은 API 오브젝트에 대한 검증과 구성을 수행하는 REST API. * [kube-controller-manager](/docs/reference/command-line-tools-reference/kube-controller-manager/) - 쿠버네티스에 탑재된 핵심 제어 루프를 포함하는 데몬. * [kube-proxy](/docs/reference/command-line-tools-reference/kube-proxy/) - 간단한 TCP/UDP 스트림 포워딩이나 백-엔드 집합에 걸쳐서 라운드-로빈 TCP/UDP 포워딩을 할 수 있다. * [kube-scheduler](/docs/reference/command-line-tools-reference/kube-scheduler/) - 가용성, 성능 및 용량을 관리하는 스케줄러. - * [kube-scheduler 정책](/ko/docs/reference/scheduling/policies) - * [kube-scheduler 프로파일](/docs/reference/scheduling/config#profiles) + +## 스케줄링 + +* [kube-scheduler 정책](/ko/docs/reference/scheduling/policies) +* [kube-scheduler 프로파일](/docs/reference/scheduling/config#profiles) ## 설계 문서 diff --git a/content/ko/docs/reference/access-authn-authz/_index.md b/content/ko/docs/reference/access-authn-authz/_index.md index 9e23c5d767..0c910199b7 100644 --- a/content/ko/docs/reference/access-authn-authz/_index.md +++ b/content/ko/docs/reference/access-authn-authz/_index.md @@ -1,6 +1,6 @@ --- title: API 접근 제어 -weight: 20 +weight: 15 no_list: true --- diff --git a/content/ko/docs/reference/command-line-tools-reference/_index.md b/content/ko/docs/reference/command-line-tools-reference/_index.md index 14025d0f71..d975db37b1 100644 --- a/content/ko/docs/reference/command-line-tools-reference/_index.md +++ b/content/ko/docs/reference/command-line-tools-reference/_index.md @@ -1,4 +1,4 @@ --- -title: 커맨드 라인 도구 레퍼런스 +title: 컴포넌트 도구 weight: 60 --- diff --git a/content/ko/docs/reference/command-line-tools-reference/feature-gates.md b/content/ko/docs/reference/command-line-tools-reference/feature-gates.md index 93683ae9b1..62fb53396c 100644 --- a/content/ko/docs/reference/command-line-tools-reference/feature-gates.md +++ b/content/ko/docs/reference/command-line-tools-reference/feature-gates.md @@ -242,6 +242,7 @@ kubelet과 같은 컴포넌트의 기능 게이트를 설정하려면, 기능 | `DynamicProvisioningScheduling` | - | 사용중단| 1.12 | - | | `DynamicVolumeProvisioning` | `true` | 알파 | 1.3 | 1.7 | | `DynamicVolumeProvisioning` | `true` | GA | 1.8 | - | +| `EnableAggregatedDiscoveryTimeout` | `true` | 사용중단 | 1.16 | - | | `EnableEquivalenceClassCache` | `false` | 알파 | 1.8 | 1.14 | | `EnableEquivalenceClassCache` | - | 사용중단 | 1.15 | - | | `ExperimentalCriticalPodAnnotation` | `false` | 알파 | 1.5 | 1.12 | diff --git a/content/ko/docs/reference/command-line-tools-reference/kube-proxy.md b/content/ko/docs/reference/command-line-tools-reference/kube-proxy.md index 565c3b4faf..e4c790c491 100644 --- a/content/ko/docs/reference/command-line-tools-reference/kube-proxy.md +++ b/content/ko/docs/reference/command-line-tools-reference/kube-proxy.md @@ -2,8 +2,21 @@ title: kube-proxy content_type: tool-reference weight: 30 +auto_generated: true --- + + + ## {{% heading "synopsis" %}} @@ -32,308 +45,308 @@ kube-proxy [flags] --azure-container-registry-config string -Azure 컨테이너 레지스트리 구성 정보가 들어 있는 파일의 경로. +

    Azure 컨테이너 레지스트리 구성 정보가 들어 있는 파일의 경로.

    ---bind-address ip     기본값: 0.0.0.0 +--bind-address string     기본값: 0.0.0.0 -프록시 서버가 서비스할 IP 주소(모든 IPv4 인터페이스의 경우 '0.0.0.0'으로 설정, 모든 IPv6 인터페이스의 경우 '::'로 설정) +

    프록시 서버가 서비스할 IP 주소(모든 IPv4 인터페이스의 경우 '0.0.0.0'으로 설정, 모든 IPv6 인터페이스의 경우 '::'로 설정)

    --bind-address-hard-fail -true인 경우 kube-proxy는 포트 바인딩 실패를 치명적인 것으로 간주하고 종료한다. +

    true인 경우 kube-proxy는 포트 바인딩 실패를 치명적인 것으로 간주하고 종료한다.

    --cleanup -true인 경우 iptables 및 ipvs 규칙을 제거하고 종료한다. +

    true인 경우 iptables 및 ipvs 규칙을 제거하고 종료한다.

    --cluster-cidr string -클러스터에 있는 파드의 CIDR 범위. 구성 후에는 이 범위 밖에서 서비스 클러스터 IP로 전송되는 트래픽은 마스커레이드되고 파드에서 외부 LoadBalancer IP로 전송된 트래픽은 대신 해당 클러스터 IP로 전송된다 +

    클러스터에 있는 파드의 CIDR 범위. 구성 후에는 이 범위 밖에서 서비스 클러스터 IP로 전송되는 트래픽은 마스커레이드되고 파드에서 외부 LoadBalancer IP로 전송된 트래픽은 대신 해당 클러스터 IP로 전송된다

    --config string -설정 파일의 경로. +

    설정 파일의 경로.

    --config-sync-period duration     기본값: 15m0s -apiserver의 설정이 갱신되는 빈도. 0보다 커야 한다. +

    apiserver의 설정이 갱신되는 빈도. 0보다 커야 한다.

    --conntrack-max-per-core int32     기본값: 32768 -CPU 코어당 추적할 최대 NAT 연결 수(한도(limit)를 그대로 두고 contrack-min을 무시하려면 0으로 설정한다)( +

    CPU 코어당 추적할 최대 NAT 연결 수(한도(limit)를 그대로 두고 contrack-min을 무시하려면 0으로 설정한다)(

    --conntrack-min int32     기본값: 131072 -conntrack-max-per-core와 관계없이 할당할 최소 conntrack 항목 수(한도를 그대로 두려면 conntrack-max-per-core값을 0으로 설정). +

    conntrack-max-per-core와 관계없이 할당할 최소 conntrack 항목 수(한도를 그대로 두려면 conntrack-max-per-core값을 0으로 설정).

    --conntrack-tcp-timeout-close-wait duration     기본값: 1h0m0s -CLOSE_WAIT 상태의 TCP 연결에 대한 NAT 시간 초과 +

    CLOSE_WAIT 상태의 TCP 연결에 대한 NAT 시간 초과

    --conntrack-tcp-timeout-established duration     기본값: 24h0m0s -설정된 TCP 연결에 대한 유휴시간 초과(값이 0이면 그대로 유지) +

    설정된 TCP 연결에 대한 유휴시간 초과(값이 0이면 그대로 유지)

    --detect-local-mode LocalMode -로컬 트래픽을 탐지하는 데 사용할 모드 +

    로컬 트래픽을 탐지하는 데 사용할 모드

    --feature-gates mapStringBool -알파/실험 기능에 대한 기능 게이트를 설명하는 키=값 쌍 집합. 옵션은 다음과 같다.
    APIListChunking=true|false (BETA - 기본값=true)
    APIPriorityAndFairness=true|false (ALPHA - 기본값=false)
    APIResponseCompression=true|false (BETA - 기본값=true)
    AllAlpha=true|false (ALPHA - 기본값=false)
    AllBeta=true|false (BETA - 기본값=false)
    AllowInsecureBackendProxy=true|false (BETA - 기본값=true)
    AnyVolumeDataSource=true|false (ALPHA - 기본값=false)
    AppArmor=true|false (BETA - 기본값=true)
    BalanceAttachedNodeVolumes=true|false (ALPHA - 기본값=false)
    BoundServiceAccountTokenVolume=true|false (ALPHA - 기본값=false)
    CPUManager=true|false (BETA - 기본값=true)
    CRIContainerLogRotation=true|false (BETA - 기본값=true)
    CSIInlineVolume=true|false (BETA - 기본값=true)
    CSIMigration=true|false (BETA - 기본값=true)
    CSIMigrationAWS=true|false (BETA - 기본값=false)
    CSIMigrationAWSComplete=true|false (ALPHA - 기본값=false)
    CSIMigrationAzureDisk=true|false (BETA - 기본값=false)
    CSIMigrationAzureDiskComplete=true|false (ALPHA - 기본값=false)
    CSIMigrationAzureFile=true|false (ALPHA - 기본값=false)
    CSIMigrationAzureFileComplete=true|false (ALPHA - 기본값=false)
    CSIMigrationGCE=true|false (BETA - 기본값=false)
    CSIMigrationGCEComplete=true|false (ALPHA - 기본값=false)
    CSIMigrationOpenStack=true|false (BETA - 기본값=false)
    CSIMigrationOpenStackComplete=true|false (ALPHA - 기본값=false)
    CSIMigrationvSphere=true|false (BETA - 기본값=false)
    CSIMigrationvSphereComplete=true|false (BETA - 기본값=false)
    CSIStorageCapacity=true|false (ALPHA - 기본값=false)
    CSIVolumeFSGroupPolicy=true|false (ALPHA - 기본값=false)
    ConfigurableFSGroupPolicy=true|false (ALPHA - 기본값=false)
    CustomCPUCFSQuotaPeriod=true|false (ALPHA - 기본값=false)
    DefaultPodTopologySpread=true|false (ALPHA - 기본값=false)
    DevicePlugins=true|false (BETA - 기본값=true)
    DisableAcceleratorUsageMetrics=true|false (ALPHA - 기본값=false)
    DynamicKubeletConfig=true|false (BETA - 기본값=true)
    EndpointSlice=true|false (BETA - 기본값=true)
    EndpointSliceProxying=true|false (BETA - 기본값=true)
    EphemeralContainers=true|false (ALPHA - 기본값=false)
    ExpandCSIVolumes=true|false (BETA - 기본값=true)
    ExpandInUsePersistentVolumes=true|false (BETA - 기본값=true)
    ExpandPersistentVolumes=true|false (BETA - 기본값=true)
    ExperimentalHostUserNamespaceDefaulting=true|false (BETA - 기본값=false)
    GenericEphemeralVolume=true|false (ALPHA - 기본값=false)
    HPAScaleToZero=true|false (ALPHA - 기본값=false)
    HugePageStorageMediumSize=true|false (BETA - 기본값=true)
    HyperVContainer=true|false (ALPHA - 기본값=false)
    IPv6DualStack=true|false (ALPHA - 기본값=false)
    ImmutableEphemeralVolumes=true|false (BETA - 기본값=true)
    KubeletPodResources=true|false (BETA - 기본값=true)
    LegacyNodeRoleBehavior=true|false (BETA - 기본값=true)
    LocalStorageCapacityIsolation=true|false (BETA - 기본값=true)
    LocalStorageCapacityIsolationFSQuotaMonitoring=true|false (ALPHA - 기본값=false)
    NodeDisruptionExclusion=true|false (BETA - 기본값=true)
    NonPreemptingPriority=true|false (BETA - 기본값=true)
    PodDisruptionBudget=true|false (BETA - 기본값=true)
    PodOverhead=true|false (BETA - 기본값=true)
    ProcMountType=true|false (ALPHA - 기본값=false)
    QOSReserved=true|false (ALPHA - 기본값=false)
    RemainingItemCount=true|false (BETA - 기본값=true)
    RemoveSelfLink=true|false (ALPHA - 기본값=false)
    RotateKubeletServerCertificate=true|false (BETA - 기본값=true)
    RunAsGroup=true|false (BETA - 기본값=true)
    RuntimeClass=true|false (BETA - 기본값=true)
    SCTPSupport=true|false (BETA - 기본값=true)
    SelectorIndex=true|false (BETA - 기본값=true)
    ServerSideApply=true|false (BETA - 기본값=true)
    ServiceAccountIssuerDiscovery=true|false (ALPHA - 기본값=false)
    ServiceAppProtocol=true|false (BETA - 기본값=true)
    ServiceNodeExclusion=true|false (BETA - 기본값=true)
    ServiceTopology=true|false (ALPHA - 기본값=false)
    SetHostnameAsFQDN=true|false (ALPHA - 기본값=false)
    StartupProbe=true|false (BETA - 기본값=true)
    StorageVersionHash=true|false (BETA - 기본값=true)
    SupportNodePidsLimit=true|false (BETA - 기본값=true)
    SupportPodPidsLimit=true|false (BETA - 기본값=true)
    Sysctls=true|false (BETA - 기본값=true)
    TTLAfterFinished=true|false (ALPHA - 기본값=false)
    TokenRequest=true|false (BETA - 기본값=true)
    TokenRequestProjection=true|false (BETA - 기본값=true)
    TopologyManager=true|false (BETA - 기본값=true)
    ValidateProxyRedirects=true|false (BETA - 기본값=true)
    VolumeSnapshotDataSource=true|false (BETA - 기본값=true)
    WarningHeaders=true|false (BETA - 기본값=true)
    WinDSR=true|false (ALPHA - 기본값=false)
    WinOverlay=true|false (ALPHA - 기본값=false)
    WindowsEndpointSliceProxying=true|false (ALPHA - 기본값=false) +

    알파/실험 기능에 대한 기능 게이트를 설명하는 키=값 쌍 집합. 옵션은 다음과 같다.
    APIListChunking=true|false (BETA - 기본값=true)
    APIPriorityAndFairness=true|false (ALPHA - 기본값=false)
    APIResponseCompression=true|false (BETA - 기본값=true)
    AllAlpha=true|false (ALPHA - 기본값=false)
    AllBeta=true|false (BETA - 기본값=false)
    AllowInsecureBackendProxy=true|false (BETA - 기본값=true)
    AnyVolumeDataSource=true|false (ALPHA - 기본값=false)
    AppArmor=true|false (BETA - 기본값=true)
    BalanceAttachedNodeVolumes=true|false (ALPHA - 기본값=false)
    BoundServiceAccountTokenVolume=true|false (ALPHA - 기본값=false)
    CPUManager=true|false (BETA - 기본값=true)
    CRIContainerLogRotation=true|false (BETA - 기본값=true)
    CSIInlineVolume=true|false (BETA - 기본값=true)
    CSIMigration=true|false (BETA - 기본값=true)
    CSIMigrationAWS=true|false (BETA - 기본값=false)
    CSIMigrationAWSComplete=true|false (ALPHA - 기본값=false)
    CSIMigrationAzureDisk=true|false (BETA - 기본값=false)
    CSIMigrationAzureDiskComplete=true|false (ALPHA - 기본값=false)
    CSIMigrationAzureFile=true|false (ALPHA - 기본값=false)
    CSIMigrationAzureFileComplete=true|false (ALPHA - 기본값=false)
    CSIMigrationGCE=true|false (BETA - 기본값=false)
    CSIMigrationGCEComplete=true|false (ALPHA - 기본값=false)
    CSIMigrationOpenStack=true|false (BETA - 기본값=false)
    CSIMigrationOpenStackComplete=true|false (ALPHA - 기본값=false)
    CSIMigrationvSphere=true|false (BETA - 기본값=false)
    CSIMigrationvSphereComplete=true|false (BETA - 기본값=false)
    CSIStorageCapacity=true|false (ALPHA - 기본값=false)
    CSIVolumeFSGroupPolicy=true|false (ALPHA - 기본값=false)
    ConfigurableFSGroupPolicy=true|false (ALPHA - 기본값=false)
    CustomCPUCFSQuotaPeriod=true|false (ALPHA - 기본값=false)
    DefaultPodTopologySpread=true|false (ALPHA - 기본값=false)
    DevicePlugins=true|false (BETA - 기본값=true)
    DisableAcceleratorUsageMetrics=true|false (ALPHA - 기본값=false)
    DynamicKubeletConfig=true|false (BETA - 기본값=true)
    EndpointSlice=true|false (BETA - 기본값=true)
    EndpointSliceProxying=true|false (BETA - 기본값=true)
    EphemeralContainers=true|false (ALPHA - 기본값=false)
    ExpandCSIVolumes=true|false (BETA - 기본값=true)
    ExpandInUsePersistentVolumes=true|false (BETA - 기본값=true)
    ExpandPersistentVolumes=true|false (BETA - 기본값=true)
    ExperimentalHostUserNamespaceDefaulting=true|false (BETA - 기본값=false)
    GenericEphemeralVolume=true|false (ALPHA - 기본값=false)
    HPAScaleToZero=true|false (ALPHA - 기본값=false)
    HugePageStorageMediumSize=true|false (BETA - 기본값=true)
    HyperVContainer=true|false (ALPHA - 기본값=false)
    IPv6DualStack=true|false (ALPHA - 기본값=false)
    ImmutableEphemeralVolumes=true|false (BETA - 기본값=true)
    KubeletPodResources=true|false (BETA - 기본값=true)
    LegacyNodeRoleBehavior=true|false (BETA - 기본값=true)
    LocalStorageCapacityIsolation=true|false (BETA - 기본값=true)
    LocalStorageCapacityIsolationFSQuotaMonitoring=true|false (ALPHA - 기본값=false)
    NodeDisruptionExclusion=true|false (BETA - 기본값=true)
    NonPreemptingPriority=true|false (BETA - 기본값=true)
    PodDisruptionBudget=true|false (BETA - 기본값=true)
    PodOverhead=true|false (BETA - 기본값=true)
    ProcMountType=true|false (ALPHA - 기본값=false)
    QOSReserved=true|false (ALPHA - 기본값=false)
    RemainingItemCount=true|false (BETA - 기본값=true)
    RemoveSelfLink=true|false (ALPHA - 기본값=false)
    RotateKubeletServerCertificate=true|false (BETA - 기본값=true)
    RunAsGroup=true|false (BETA - 기본값=true)
    RuntimeClass=true|false (BETA - 기본값=true)
    SCTPSupport=true|false (BETA - 기본값=true)
    SelectorIndex=true|false (BETA - 기본값=true)
    ServerSideApply=true|false (BETA - 기본값=true)
    ServiceAccountIssuerDiscovery=true|false (ALPHA - 기본값=false)
    ServiceAppProtocol=true|false (BETA - 기본값=true)
    ServiceNodeExclusion=true|false (BETA - 기본값=true)
    ServiceTopology=true|false (ALPHA - 기본값=false)
    SetHostnameAsFQDN=true|false (ALPHA - 기본값=false)
    StartupProbe=true|false (BETA - 기본값=true)
    StorageVersionHash=true|false (BETA - 기본값=true)
    SupportNodePidsLimit=true|false (BETA - 기본값=true)
    SupportPodPidsLimit=true|false (BETA - 기본값=true)
    Sysctls=true|false (BETA - 기본값=true)
    TTLAfterFinished=true|false (ALPHA - 기본값=false)
    TokenRequest=true|false (BETA - 기본값=true)
    TokenRequestProjection=true|false (BETA - 기본값=true)
    TopologyManager=true|false (BETA - 기본값=true)
    ValidateProxyRedirects=true|false (BETA - 기본값=true)
    VolumeSnapshotDataSource=true|false (BETA - 기본값=true)
    WarningHeaders=true|false (BETA - 기본값=true)
    WinDSR=true|false (ALPHA - 기본값=false)
    WinOverlay=true|false (ALPHA - 기본값=false)
    WindowsEndpointSliceProxying=true|false (ALPHA - 기본값=false)

    --healthz-bind-address ipport     기본값: 0.0.0.0:10256 -헬스 체크 서버가 서비스할 포트가 있는 IP 주소(모든 IPv4의 인터페이스의 경우 '0.0.0.0:10256', 모든 IPv6의 인터페이스인 경우 '[::]:10256'로 설정). 사용 안 할 경우 빈칸으로 둠. +

    헬스 체크 서버가 서비스할 포트가 있는 IP 주소(모든 IPv4의 인터페이스의 경우 '0.0.0.0:10256', 모든 IPv6의 인터페이스인 경우 '[::]:10256'로 설정). 사용 안 할 경우 빈칸으로 둠.

    -h, --help -kube-proxy에 대한 도움말. +

    kube-proxy에 대한 도움말.

    --hostname-override string -문자열 값이 있으면, 이 값을 실제 호스트네임 대신에 ID로 사용한다. +

    문자열 값이 있으면, 이 값을 실제 호스트네임 대신에 ID로 사용한다.

    --iptables-masquerade-bit int32     기본값: 14 -순수 iptable 프록시를 사용하는 경우 SNAT가 필요한 패킷을 표시하는 fwmark 스페이스 비트. [0, 31] 범위 안에 있어야 한다. +

    순수 iptable 프록시를 사용하는 경우 SNAT가 필요한 패킷을 표시하는 fwmark 스페이스 비트. [0, 31] 범위 안에 있어야 한다.

    --iptables-min-sync-period duration     기본값: 1s -엔드포인트 및 서비스가 변경될 때 iptable 규칙을 새로 고칠 수 있는 빈도의 최소 간격(예: '5s', '1m', '2h22m'). +

    엔드포인트 및 서비스가 변경될 때 iptable 규칙을 새로 고칠 수 있는 빈도의 최소 간격(예: '5s', '1m', '2h22m').

    --iptables-sync-period duration     기본값: 30s -iptable 규칙을 새로 고치는 빈도의 최대 간격(예: '5s', '1m', '2h22m'). 0 보다 커야 한다. +

    iptable 규칙을 새로 고치는 빈도의 최대 간격(예: '5s', '1m', '2h22m'). 0 보다 커야 한다.

    --ipvs-exclude-cidrs stringSlice -IPVS 규칙을 정리할 때 ipvs 프록시가 건드리지 않아야 하는 쉼표로 구분된 CIDR 목록. +

    IPVS 규칙을 정리할 때 ipvs 프록시가 건드리지 않아야 하는 쉼표로 구분된 CIDR 목록.

    --ipvs-min-sync-period duration -엔드포인트 및 서비스가 변경될 때 ipvs 규칙을 새로 고칠 수 있는 빈도의 최소 간격(예: '5s', '1m', '2h22m'). +

    엔드포인트 및 서비스가 변경될 때 ipvs 규칙을 새로 고칠 수 있는 빈도의 최소 간격(예: '5s', '1m', '2h22m').

    --ipvs-scheduler string -프록시 모드가 ipvs인 경우 ipvs 스케줄러 유형. +

    프록시 모드가 ipvs인 경우 ipvs 스케줄러 유형.

    --ipvs-strict-arp -arp_ignore를 1로 설정하고 arp_annotes를 2로 설정하여 엄격한 ARP를 사용. +

    arp_ignore를 1로 설정하고 arp_annotes를 2로 설정하여 엄격한 ARP를 사용.

    --ipvs-sync-period duration     기본값: 30s -ipvs 규칙이 새로 갱신되는 빈도의 최대 간격(예: '5s', '1m', '2h22m'). 0 보다 커야 한다. +

    ipvs 규칙이 새로 갱신되는 빈도의 최대 간격(예: '5s', '1m', '2h22m'). 0 보다 커야 한다.

    --ipvs-tcp-timeout duration -유휴 IPVS TCP 연결에 대한 시간 초과. 0이면 그대로 유지(예: '5s', '1m', '2h22m'). +

    유휴 IPVS TCP 연결에 대한 시간 초과. 0이면 그대로 유지(예: '5s', '1m', '2h22m').

    --ipvs-tcpfin-timeout duration -FIN 패킷을 수신한 후 IPVS TCP 연결에 대한 시간 초과. 0이면 그대로 유지(예: '5s', '1m', '2h22m'). +

    FIN 패킷을 수신한 후 IPVS TCP 연결에 대한 시간 초과. 0이면 그대로 유지(예: '5s', '1m', '2h22m').

    --ipvs-udp-timeout duration -IPVS UDP 패킷에 대한 시간 초과. 0이면 그대로 유지(예: '5s', '1m', '2h22m'). +

    IPVS UDP 패킷에 대한 시간 초과. 0이면 그대로 유지(예: '5s', '1m', '2h22m').

    --kube-api-burst int32     기본값: 10 -쿠버네티스 api 서버와 통신하는 동안 사용할 burst. +

    쿠버네티스 api 서버와 통신하는 동안 사용할 burst.

    --kube-api-content-type string     기본값: "application/vnd.kubernetes.protobuf" -api 서버에 보낸 요청의 내용 유형. +

    api 서버에 보낸 요청의 내용 유형.

    --kube-api-qps float32     기본값: 5 -쿠버네티스 api 서버와 통신할 때 사용할 QPS. +

    쿠버네티스 api 서버와 통신할 때 사용할 QPS.

    --kubeconfig string -인증 정보가 있는 kubeconfig 파일의 경로(마스터 위치는 마스터 플래그로 설정됨). +

    인증 정보가 있는 kubeconfig 파일의 경로(마스터 위치는 마스터 플래그로 설정됨).

    --log-flush-frequency duration     기본값: 5s -로그 플러시 사이의 최대 시간 +

    로그 플러시 사이의 최대 시간

    --masquerade-all -순수 iptables 프록시를 사용하는 경우 서비스 클러스터 IP를 통해 전송된 모든 트래픽을 SNAT함(일반적으로 필요하지 않음). +

    순수 iptables 프록시를 사용하는 경우 서비스 클러스터 IP를 통해 전송된 모든 트래픽을 SNAT함(일반적으로 필요하지 않음).

    --master string -쿠버네티스 API 서버의 주소(kubeconfig의 모든 값 덮어쓰기). +

    쿠버네티스 API 서버의 주소(kubeconfig의 모든 값 덮어쓰기).

    --metrics-bind-address ipport     기본값: 127.0.0.1:10249 -메트릭 서버가 서비스할 포트가 있는 IP 주소(모든 IPv4 인터페이스의 경우 '0.0.0.0:10249', 모든 IPv6 인터페이스의 경우 '[::]:10249'로 설정됨). 사용하지 않으려면 비워둘 것. +

    메트릭 서버가 서비스할 포트가 있는 IP 주소(모든 IPv4 인터페이스의 경우 '0.0.0.0:10249', 모든 IPv6 인터페이스의 경우 '[::]:10249'로 설정됨). 사용하지 않으려면 비워둘 것.

    --nodeport-addresses stringSlice -NodePort에 사용할 주소를 지정하는 값의 문자열 조각. 값은 유효한 IP 블록(예: 1.2.3.0/24, 1.2.3.4/32). 기본값인 빈 문자열 조각값은([]) 모든 로컬 주소를 사용하는 것을 의미한다. +

    NodePort에 사용할 주소를 지정하는 값의 문자열 조각. 값은 유효한 IP 블록(예: 1.2.3.0/24, 1.2.3.4/32). 기본값인 빈 문자열 조각값은([]) 모든 로컬 주소를 사용하는 것을 의미한다.

    --oom-score-adj int32     기본값: -999 -kube-proxy 프로세스에 대한 oom-score-adj 값. 값은 [-1000, 1000] 범위 내에 있어야 한다. +

    kube-proxy 프로세스에 대한 oom-score-adj 값. 값은 [-1000, 1000] 범위 내에 있어야 한다.

    --profiling -값이 true이면 /debug/pprof 핸들러에서 웹 인터페이스를 통한 프로파일링을 활성화한다. +

    값이 true이면 /debug/pprof 핸들러에서 웹 인터페이스를 통한 프로파일링을 활성화한다.

    --proxy-mode ProxyMode -사용할 프록시 모드: 'userspace' (이전) or 'iptables' (빠름) or 'ipvs' or 'kernelspace' (윈도우). 공백인 경우 가장 잘 사용할 수 있는 프록시(현재는 iptables)를 사용한다. iptables 프록시를 선택했지만, 시스템의 커널 또는 iptables 버전이 맞지 않으면, 항상 userspace 프록시로 변경된다. +

    사용할 프록시 모드: 'userspace' (이전) or 'iptables' (빠름) or 'ipvs' or 'kernelspace' (윈도우). 공백인 경우 가장 잘 사용할 수 있는 프록시(현재는 iptables)를 사용한다. iptables 프록시를 선택했지만, 시스템의 커널 또는 iptables 버전이 맞지 않으면, 항상 userspace 프록시로 변경된다.

    --proxy-port-range port-range -서비스 트래픽을 프록시하기 위해 사용할 수 있는 호스트 포트 범위(beginPort-endPort, single port 또는 beginPort+offset 포함). 만약 범위가 0, 0-0, 혹은 지정되지 않으면, 포트는 무작위로 선택된다. +

    서비스 트래픽을 프록시하기 위해 사용할 수 있는 호스트 포트 범위(beginPort-endPort, single port 또는 beginPort+offset 포함). 만약 범위가 0, 0-0, 혹은 지정되지 않으면, 포트는 무작위로 선택된다.

    --show-hidden-metrics-for-version string -숨겨진 메트릭을 표시할 이전 버전. +

    숨겨진 메트릭을 표시할 이전 버전.

    --udp-timeout duration     기본값: 250ms -유휴 UDP 연결이 열린 상태로 유지되는 시간(예: '250ms', '2s'). 값은 0보다 커야 한다. 프록시 모드 userspace에만 적용 가능함. +

    유휴 UDP 연결이 열린 상태로 유지되는 시간(예: '250ms', '2s'). 값은 0보다 커야 한다. 프록시 모드 userspace에만 적용 가능함.

    --version version[=true] -버전 정보를 인쇄하고 종료. +

    버전 정보를 인쇄하고 종료.

    --write-config-to string -기본 구성 값을 이 파일에 옮겨쓰고 종료한다. +

    기본 구성 값을 이 파일에 옮겨쓰고 종료한다.

    diff --git a/content/ko/docs/reference/glossary/index.md b/content/ko/docs/reference/glossary/index.md index 9af1b3d078..024d8414ba 100755 --- a/content/ko/docs/reference/glossary/index.md +++ b/content/ko/docs/reference/glossary/index.md @@ -1,5 +1,5 @@ --- -title: 표준 용어집 +title: 용어집 layout: glossary noedit: true default_active_tag: fundamental diff --git a/content/ko/docs/reference/issues-security/_index.md b/content/ko/docs/reference/issues-security/_index.md index 596a6e01a4..12ac2f3759 100644 --- a/content/ko/docs/reference/issues-security/_index.md +++ b/content/ko/docs/reference/issues-security/_index.md @@ -1,4 +1,4 @@ --- title: 쿠버네티스 이슈와 보안 -weight: 10 +weight: 40 --- diff --git a/content/ko/docs/reference/kubectl/_index.md b/content/ko/docs/reference/kubectl/_index.md index 7b6c2d720b..765adb6fe8 100755 --- a/content/ko/docs/reference/kubectl/_index.md +++ b/content/ko/docs/reference/kubectl/_index.md @@ -1,5 +1,5 @@ --- -title: "kubectl CLI" +title: "kubectl" weight: 60 --- diff --git a/content/ko/docs/reference/kubectl/overview.md b/content/ko/docs/reference/kubectl/overview.md index 7ddfe5b095..3d8179a08a 100644 --- a/content/ko/docs/reference/kubectl/overview.md +++ b/content/ko/docs/reference/kubectl/overview.md @@ -17,7 +17,7 @@ KUBECONFIG 환경 변수를 설정하거나 [`--kubeconfig`](/ko/docs/concepts/c 이 개요는 `kubectl` 구문을 다루고, 커맨드 동작을 설명하며, 일반적인 예제를 제공한다. 지원되는 모든 플래그 및 하위 명령을 포함한 각 명령에 대한 자세한 내용은 [kubectl](/docs/reference/generated/kubectl/kubectl-commands/) 참조 문서를 참고한다. -설치 방법에 대해서는 [kubectl 설치](/ko/docs/tasks/tools/install-kubectl/)를 참고한다. +설치 방법에 대해서는 [kubectl 설치](/ko/docs/tasks/tools/)를 참고한다. diff --git a/content/ko/docs/reference/scheduling/config.md b/content/ko/docs/reference/scheduling/config.md index 0f3f120d77..7b6942e119 100644 --- a/content/ko/docs/reference/scheduling/config.md +++ b/content/ko/docs/reference/scheduling/config.md @@ -185,8 +185,6 @@ profiles: - `RequestedToCapacityRatio`: 할당된 리소스의 구성된 기능에 따라 노드를 선호한다. 익스텐션 포인트: `Score`. -- `NodeResourceLimits`: 파드 리소스 제한을 충족하는 노드를 선호한다. - 익스텐션 포인트: `PreScore`, `Score`. - `CinderVolume`: 노드에 대해 OpenStack Cinder 볼륨 제한을 충족할 수 있는지 확인한다. 익스텐션 포인트: `Filter`. diff --git a/content/ko/docs/reference/setup-tools/_index.md b/content/ko/docs/reference/setup-tools/_index.md index 051fba4c5d..717b9cb2ac 100644 --- a/content/ko/docs/reference/setup-tools/_index.md +++ b/content/ko/docs/reference/setup-tools/_index.md @@ -1,4 +1,4 @@ --- -title: 설치 도구 레퍼런스 +title: 설치 도구 weight: 50 --- diff --git a/content/ko/docs/reference/tools.md b/content/ko/docs/reference/tools/_index.md similarity index 100% rename from content/ko/docs/reference/tools.md rename to content/ko/docs/reference/tools/_index.md diff --git a/content/ko/docs/reference/using-api/_index.md b/content/ko/docs/reference/using-api/_index.md index 427cebf529..423d82e0f2 100644 --- a/content/ko/docs/reference/using-api/_index.md +++ b/content/ko/docs/reference/using-api/_index.md @@ -1,7 +1,8 @@ --- -title: 쿠버네티스 API 개요 +title: API 개요 content_type: concept weight: 10 +no_list: true card: name: 레퍼런스 weight: 50 diff --git a/content/ko/docs/setup/best-practices/certificates.md b/content/ko/docs/setup/best-practices/certificates.md index 3ada64a469..77665edbe2 100644 --- a/content/ko/docs/setup/best-practices/certificates.md +++ b/content/ko/docs/setup/best-practices/certificates.md @@ -7,7 +7,7 @@ weight: 40 쿠버네티스는 TLS 위에 인증을 위해 PKI 인증서가 필요하다. -만약 [kubeadm](/docs/reference/setup-tools/kubeadm/kubeadm/)으로 쿠버네티스를 설치했다면, 클러스터에 필요한 인증서는 자동으로 생성된다. +만약 [kubeadm](/ko/docs/reference/setup-tools/kubeadm/)으로 쿠버네티스를 설치했다면, 클러스터에 필요한 인증서는 자동으로 생성된다. 또한 더 안전하게 자신이 소유한 인증서를 생성할 수 있다. 이를 테면, 개인키를 API 서버에 저장하지 않으므로 더 안전하게 보관할 수 있다. 이 페이지는 클러스터에 필요한 인증서를 설명한다. @@ -72,7 +72,7 @@ etcd 역시 클라이언트와 피어 간에 상호 TLS 인증을 구현한다. | kube-apiserver-kubelet-client | kubernetes-ca | system:masters | client | | | front-proxy-client | kubernetes-front-proxy-ca | | client | | -[1]: 클러스터에 접속한 다른 IP 또는 DNS 이름([kubeadm](/docs/reference/setup-tools/kubeadm/kubeadm/) 이 사용하는 로드 밸런서 안정 IP 또는 DNS 이름, `kubernetes`, `kubernetes.default`, `kubernetes.default.svc`, +[1]: 클러스터에 접속한 다른 IP 또는 DNS 이름([kubeadm](/ko/docs/reference/setup-tools/kubeadm/) 이 사용하는 로드 밸런서 안정 IP 또는 DNS 이름, `kubernetes`, `kubernetes.default`, `kubernetes.default.svc`, `kubernetes.default.svc.cluster`, `kubernetes.default.svc.cluster.local`) `kind`는 하나 이상의 [x509 키 사용](https://godoc.org/k8s.io/api/certificates/v1beta1#KeyUsage) 종류를 가진다. @@ -97,7 +97,7 @@ kubeadm 사용자만 해당: ### 인증서 파일 경로 -인증서는 권고하는 파일 경로에 존재해야 한다([kubeadm](/docs/reference/setup-tools/kubeadm/kubeadm/)에서 사용되는 것처럼). 경로는 위치에 관계없이 주어진 파라미터를 사용하여 지정되야 한다. +인증서는 권고하는 파일 경로에 존재해야 한다([kubeadm](/ko/docs/reference/setup-tools/kubeadm/)에서 사용되는 것처럼). 경로는 위치에 관계없이 주어진 파라미터를 사용하여 지정해야 한다. | 기본 CN | 권고되는 키 파일 경로 | 권고하는 인증서 파일 경로 | 명령어 | 키 파라미터 | 인증서 파라미터 | |------------------------------|------------------------------|-----------------------------|----------------|------------------------------|-------------------------------------------| diff --git a/content/ko/docs/setup/best-practices/multiple-zones.md b/content/ko/docs/setup/best-practices/multiple-zones.md index 189dbed654..3d825ebd08 100644 --- a/content/ko/docs/setup/best-practices/multiple-zones.md +++ b/content/ko/docs/setup/best-practices/multiple-zones.md @@ -55,7 +55,7 @@ content_type: concept 특정 kubelet을 나타내는 노드 오브젝트에 {{< glossary_tooltip text="레이블" term_id="label" >}}을 자동으로 추가한다. 이러한 레이블에는 -[영역 정보](/docs/reference/kubernetes-api/labels-annotations-taints/#topologykubernetesiozone)가 포함될 수 있다. +[영역 정보](/docs/reference/labels-annotations-taints/#topologykubernetesiozone)가 포함될 수 있다. 클러스터가 여러 영역 또는 지역에 걸쳐있는 경우, [파드 토폴로지 분배 제약 조건](/ko/docs/concepts/workloads/pods/pod-topology-spread-constraints/)과 diff --git a/content/ko/docs/setup/production-environment/container-runtimes.md b/content/ko/docs/setup/production-environment/container-runtimes.md index ba06b3d023..52ab0fc94b 100644 --- a/content/ko/docs/setup/production-environment/container-runtimes.md +++ b/content/ko/docs/setup/production-environment/container-runtimes.md @@ -63,7 +63,7 @@ kubelet을 재시작하는 것은 에러를 해결할 수 없을 것이다. ### containerd -이 섹션에는 `containerd` 를 CRI 런타임으로 사용하는 데 필요한 단계가 포함되어 있다. +이 섹션에는 containerd 를 CRI 런타임으로 사용하는 데 필요한 단계가 포함되어 있다. 필수 구성 요소를 설치 및 구성한다. @@ -90,170 +90,63 @@ sudo sysctl --system containerd를 설치한다. {{< tabs name="tab-cri-containerd-installation" >}} -{{% tab name="Ubuntu 16.04" %}} +{{% tab name="Linux" %}} -```shell -# 도커의 공식 GPG 키 추가 -curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - -# (containerd 설치) -## 리포지터리 설정 -### HTTPS를 통해 리포지터리를 사용할 수 있도록 패키지 설치 -sudo apt-get update && sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common -``` +1. 공식 도커 리포지터리에서 `containerd.io` 패키지를 설치한다. 각 리눅스 배포한에 대한 도커 리포지터리를 설정하고 `containerd.io` 패키지를 설치하는 방법은 [도커 엔진 설치](https://docs.docker.com/engine/install/#server)에서 찾을 수 있다. -```shell -## 도커의 공식 GPG 키 추가 -curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key --keyring /etc/apt/trusted.gpg.d/docker.gpg add - -``` +2. containerd 설정 -```shell -## 도커 apt 리포지터리 추가 -sudo add-apt-repository \ - "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ - $(lsb_release -cs) \ - stable" -``` + ```shell + sudo mkdir -p /etc/containerd + containerd config default | sudo tee /etc/containerd/config.toml + ``` -```shell -## containerd 설치 -sudo apt-get update && sudo apt-get install -y containerd.io -``` +3. containerd 재시작 -```shell -# containerd 구성 -sudo mkdir -p /etc/containerd -containerd config default | sudo tee /etc/containerd/config.toml -``` + ```shell + sudo systemctl restart containerd + ``` -```shell -# containerd 재시작 -sudo systemctl restart containerd -``` -{{% /tab %}} -{{% tab name="Ubuntu 18.04/20.04" %}} - -```shell -# (containerd 설치) -sudo apt-get update && sudo apt-get install -y containerd -``` - -```shell -# containerd 구성 -sudo mkdir -p /etc/containerd -containerd config default | sudo tee /etc/containerd/config.toml -``` - -```shell -# containerd 재시작 -sudo systemctl restart containerd -``` -{{% /tab %}} -{{% tab name="Debian 9+" %}} - -```shell -# (containerd 설치) -## 리포지터리 설정 -### HTTPS를 통해 리포지터리를 사용할 수 있도록 패키지 설치 -sudo apt-get update && sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common -``` - -```shell -## 도커의 공식 GPG 키 추가 -curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key --keyring /etc/apt/trusted.gpg.d/docker.gpg add - -``` - -```shell -## 도커 apt 리포지터리 추가 -sudo add-apt-repository \ - "deb [arch=amd64] https://download.docker.com/linux/debian \ - $(lsb_release -cs) \ - stable" -``` - -```shell -## containerd 설치 -sudo apt-get update && sudo apt-get install -y containerd.io -``` - -```shell -# 기본 containerd 구성 설정 -sudo mkdir -p /etc/containerd -containerd config default | sudo tee /etc/containerd/config.toml -``` - -```shell -# containerd 재시작 -sudo systemctl restart containerd -``` -{{% /tab %}} -{{% tab name="CentOS/RHEL 7.4+" %}} - -```shell -# (containerd 설치) -## 리포지터리 설정 -### 필요한 패키지 설치 -sudo yum install -y yum-utils device-mapper-persistent-data lvm2 -``` - -```shell -## 도커 리포지터리 추가 -sudo yum-config-manager \ - --add-repo \ - https://download.docker.com/linux/centos/docker-ce.repo -``` - -```shell -# containerd 설치 -sudo yum update -y && sudo yum install -y containerd.io -``` - -```shell -## containerd 구성 -sudo mkdir -p /etc/containerd -containerd config default | sudo tee /etc/containerd/config.toml -``` - -```shell -# containerd 재시작 -sudo systemctl restart containerd -``` {{% /tab %}} {{% tab name="Windows (PowerShell)" %}} -
    -Powershell 세션을 띄우고, `$Version` 환경 변수를 원하는 버전으로 설정(예: `$Version=1.4.3`)한 뒤, 다음 명령어를 실행한다. -
    +PowerShell 세션을 시작하고 `$Version`을 원하는 버전(예: `$Version:1.4.3`)으로 설정한 후 다음 명령을 실행한다. -```powershell -# (containerd 설치) -# containerd 다운로드 -curl.exe -L https://github.com/containerd/containerd/releases/download/v$Version/containerd-$Version-windows-amd64.tar.gz -o containerd-windows-amd64.tar.gz -tar.exe xvf .\containerd-windows-amd64.tar.gz -``` +1. containerd 다운로드 -```powershell -# 추출 및 구성 -Copy-Item -Path ".\bin\" -Destination "$Env:ProgramFiles\containerd" -Recurse -Force -cd $Env:ProgramFiles\containerd\ -.\containerd.exe config default | Out-File config.toml -Encoding ascii + ```powershell + curl.exe -L https://github.com/containerd/containerd/releases/download/v$Version/containerd-$Version-windows-amd64.tar.gz -o containerd-windows-amd64.tar. +gz + tar.exe xvf .\containerd-windows-amd64.tar.gz + ``` -# 구성을 검토한다. 설정에 따라 조정할 수 있다. -# - sandbox_image (쿠버네티스 pause 이미지) -# - cni bin_dir 및 conf_dir locations -Get-Content config.toml +2. 추출과 설정 -# (선택 사항이지만, 강력히 권장됨) containerd를 Windows Defender 검사 예외에 추가 -Add-MpPreference -ExclusionProcess "$Env:ProgramFiles\containerd\containerd.exe" ``` + ```powershell + Copy-Item -Path ".\bin\" -Destination "$Env:ProgramFiles\containerd" -Recurse -Force + cd $Env:ProgramFiles\containerd\ + .\containerd.exe config default | Out-File config.toml -Encoding ascii + + # 설정을 검토한다. 설정에 따라 다음을 조정할 수 있다. + # - sandbox_image (쿠버네티스 일시중지 이미지) + # - cni bin 폴더와 conf 폴더 위치 + Get-Content config.toml + + # (선택사항 - 그러나 적극 권장함) Windows 디펜더 검사에서 containerd 제외 + Add-MpPreference -ExclusionProcess "$Env:ProgramFiles\containerd\containerd.exe" + ``` + +3. containerd 실행 + + ```powershell + .\containerd.exe --register-service + Start-Service containerd + ``` -```powershell -# containerd 시작 -.\containerd.exe --register-service -Start-Service containerd -``` {{% /tab %}} {{< /tabs >}} -#### systemd {#containerd-systemd} +#### `systemd` cgroup 드라이버의 사용 {#containerd-systemd} `/etc/containerd/config.toml` 의 `systemd` cgroup 드라이버를 `runc` 에서 사용하려면, 다음과 같이 설정한다. @@ -264,6 +157,12 @@ Start-Service containerd SystemdCgroup = true ``` +이 변경 사항을 적용하는 경우 containerd를 재시작한다. + +```shell +sudo systemctl restart containerd +``` + kubeadm을 사용하는 경우, [kubelet용 cgroup 드라이버](/ko/docs/setup/production-environment/tools/kubeadm/install-kubeadm/#컨트롤-플레인-노드에서-kubelet이-사용하는-cgroup-드라이버-구성)를 수동으로 구성한다. @@ -453,138 +352,38 @@ CRI-O의 cgroup 드라이버 구성을 동기화 상태로 ### 도커 -각 노드에 도커 CE를 설치한다. +1. 각 노드에서 [도커 엔진 설치](https://docs.docker.com/engine/install/#server)에 따라 리눅스 배포판용 도커를 설치한다. 이 [의존성 파일](https://git.k8s.io/kubernetes/build/dependencies.yaml)에서 검증된 최신 버전의 도커를 찾을 수 있다. -쿠버네티스 릴리스 정보에서 해당 버전의 쿠버네티스와 호환되는 -도커 버전을 찾을 수 있다. +2. 특히 컨테이너의 cgroup 관리에 systemd를 사용하도록 도커 데몬을 구성한다. -사용자의 시스템에서 다음의 명령을 이용해 도커를 설치한다. + ```shell + sudo mkdir /etc/docker + cat <}} -{{% tab name="Ubuntu 16.04+" %}} + {{< note >}} + `overlay2`는 리눅스 커널 4.0 이상 또는 3.10.0-514 버전 이상을 사용하는 RHEL 또는 CentOS를 구동하는 시스템에서 선호하는 스토리지 드라이버이다. + {{< /note >}} -```shell -# (도커 CE 설치) -## 리포지터리 설정 -### apt가 HTTPS로 리포지터리를 사용하는 것을 허용하기 위한 패키지 설치 -sudo apt-get update && sudo apt-get install -y \ - apt-transport-https ca-certificates curl software-properties-common gnupg2 -``` +3. 도커 재시작과 부팅시 실행되게 설정 -```shell -# 도커 공식 GPG 키 추가: -curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key --keyring /etc/apt/trusted.gpg.d/docker.gpg add - -``` + ```shell + sudo systemctl enable docker + sudo systemctl daemon-reload + sudo systemctl restart docker + ``` -```shell -# 도커 apt 리포지터리 추가: -sudo add-apt-repository \ - "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ - $(lsb_release -cs) \ - stable" -``` - -```shell -# 도커 CE 설치 -sudo apt-get update && sudo apt-get install -y \ - containerd.io=1.2.13-2 \ - docker-ce=5:19.03.11~3-0~ubuntu-$(lsb_release -cs) \ - docker-ce-cli=5:19.03.11~3-0~ubuntu-$(lsb_release -cs) -``` - -```shell -## /etc/docker 생성 -sudo mkdir /etc/docker -``` - -```shell -# 도커 데몬 설정 -cat <}} - -부팅 시 `docker` 서비스를 시작하려면, 다음 명령을 실행한다. - -```shell -sudo systemctl enable docker -``` - -자세한 내용은 [공식 도커 설치 가이드](https://docs.docker.com/engine/installation/)를 -참조한다. +{{< note >}} +더 자세한 내용은 + - [도커 데몬 설정](https://docs.docker.com/config/daemon/) + - [systemd로 도커 제어](https://docs.docker.com/config/daemon/systemd/) +{{< /note >}} diff --git a/content/ko/docs/setup/production-environment/tools/kops.md b/content/ko/docs/setup/production-environment/tools/kops.md index dbea03b735..76c4ec7b32 100644 --- a/content/ko/docs/setup/production-environment/tools/kops.md +++ b/content/ko/docs/setup/production-environment/tools/kops.md @@ -23,7 +23,7 @@ kops는 자동화된 프로비저닝 시스템인데, ## {{% heading "prerequisites" %}} -* [kubectl](/ko/docs/tasks/tools/install-kubectl/)을 반드시 설치해야 한다. +* [kubectl](/ko/docs/tasks/tools/)을 반드시 설치해야 한다. * 반드시 64-bit (AMD64 그리고 Intel 64)디바이스 아키텍쳐 위에서 `kops` 를 [설치](https://github.com/kubernetes/kops#installing) 한다. diff --git a/content/ko/docs/setup/production-environment/tools/kubeadm/install-kubeadm.md b/content/ko/docs/setup/production-environment/tools/kubeadm/install-kubeadm.md index 39f31dd8af..12b48ad17e 100644 --- a/content/ko/docs/setup/production-environment/tools/kubeadm/install-kubeadm.md +++ b/content/ko/docs/setup/production-environment/tools/kubeadm/install-kubeadm.md @@ -159,7 +159,7 @@ kubeadm은 `kubelet` 또는 `kubectl` 을 설치하거나 관리하지 **않으 높을 수 없다. 예를 들어, 1.7.0 버전의 kubelet은 1.8.0 API 서버와 완전히 호환되어야 하지만, 그 반대의 경우는 아니다. -`kubectl` 설치에 대한 정보는 [kubectl 설치 및 설정](/ko/docs/tasks/tools/install-kubectl/)을 참고한다. +`kubectl` 설치에 대한 정보는 [kubectl 설치 및 설정](/ko/docs/tasks/tools/)을 참고한다. {{< warning >}} 이 지침은 모든 시스템 업그레이드에서 모든 쿠버네티스 패키지를 제외한다. @@ -174,16 +174,34 @@ kubeadm은 `kubelet` 또는 `kubectl` 을 설치하거나 관리하지 **않으 {{< tabs name="k8s_install" >}} {{% tab name="데비안 기반 배포판" %}} -```bash -sudo apt-get update && sudo apt-get install -y apt-transport-https curl -curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - -cat < diff --git a/content/ko/docs/setup/production-environment/windows/intro-windows-in-kubernetes.md b/content/ko/docs/setup/production-environment/windows/intro-windows-in-kubernetes.md index bd4a3503e8..b488e6c04d 100644 --- a/content/ko/docs/setup/production-environment/windows/intro-windows-in-kubernetes.md +++ b/content/ko/docs/setup/production-environment/windows/intro-windows-in-kubernetes.md @@ -218,7 +218,7 @@ CSI 노드 플러그인(특히 블록 디바이스 또는 공유 파일시스템 #### IPv4/IPv6 이중 스택 -`IPv6DualStack` [기능 게이트](https://kubernetes.io/ko/docs/reference/command-line-tools-reference/feature-gates/)를 사용하여 `l2bridge` 네트워크에 IPv4/IPv6 이중 스택 네트워킹을 활성화할 수 있다. 자세한 내용은 [IPv4/IPv6 이중 스택 활성화](/ko/docs/concepts/services-networking/dual-stack/#ipv4-ipv6-이중-스택-활성화)을 참조한다. +`IPv6DualStack` [기능 게이트](/ko/docs/reference/command-line-tools-reference/feature-gates/)를 사용하여 `l2bridge` 네트워크에 IPv4/IPv6 이중 스택 네트워킹을 활성화할 수 있다. 자세한 내용은 [IPv4/IPv6 이중 스택 활성화](/ko/docs/concepts/services-networking/dual-stack/#ipv4-ipv6-이중-스택-활성화)를 참조한다. {{< note >}} 윈도우에서 쿠버네티스와 함께 IPv6를 사용하려면 윈도우 서버 버전 2004 (커널 버전 10.0.19041.610) 이상이 필요하다. @@ -234,7 +234,7 @@ CSI 노드 플러그인(특히 블록 디바이스 또는 공유 파일시스템 윈도우는 쿠버네티스 아키텍처 및 컴포넌트 매트릭스에서 워커 노드로만 지원된다. 즉, 쿠버네티스 클러스터에는 항상 리눅스 마스터 노드가 반드시 포함되어야 하고, 0개 이상의 리눅스 워커 노드 및 0개 이상의 윈도우 워커 노드가 포함된다. -#### 컴퓨트 +#### 컴퓨트 {#컴퓨트-제한} ##### 리소스 관리 및 프로세스 격리 @@ -294,7 +294,7 @@ CSI 노드 플러그인(특히 블록 디바이스 또는 공유 파일시스템 * NFS 기반 스토리지/볼륨 지원 * 마운트된 볼륨 확장(resizefs) -#### 네트워킹 +#### 네트워킹 {#네트워킹-제한} 윈도우 컨테이너 네트워킹은 리눅스 네트워킹과 몇 가지 중요한 면에서 다르다. [윈도우 컨테이너 네트워킹에 대한 Microsoft 문서](https://docs.microsoft.com/ko-kr/virtualization/windowscontainers/container-networking/architecture)에는 추가 세부 정보와 배경이 포함되어 있다. diff --git a/content/ko/docs/setup/release/notes.md b/content/ko/docs/setup/release/notes.md index 7bcbb39489..8cb17b2ec0 100644 --- a/content/ko/docs/setup/release/notes.md +++ b/content/ko/docs/setup/release/notes.md @@ -1906,7 +1906,7 @@ filename | sha512 hash - Promote SupportNodePidsLimit to GA to provide node to pod pid isolation Promote SupportPodPidsLimit to GA to provide ability to limit pids per pod ([#94140](https://github.com/kubernetes/kubernetes/pull/94140), [@derekwaynecarr](https://github.com/derekwaynecarr)) [SIG Node and Testing] - Rename pod_preemption_metrics to preemption_metrics. ([#93256](https://github.com/kubernetes/kubernetes/pull/93256), [@ahg-g](https://github.com/ahg-g)) [SIG Instrumentation and Scheduling] -- Server-side apply behavior has been regularized in the case where a field is removed from the applied configuration. Removed fields which have no other owners are deleted from the live object, or reset to their default value if they have one. Safe ownership transfers, such as the transfer of a `replicas` field from a user to an HPA without resetting to the default value are documented in [Transferring Ownership](https://kubernetes.io/docs/reference/using-api/api-concepts/#transferring-ownership) ([#92661](https://github.com/kubernetes/kubernetes/pull/92661), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation and Testing] +- Server-side apply behavior has been regularized in the case where a field is removed from the applied configuration. Removed fields which have no other owners are deleted from the live object, or reset to their default value if they have one. Safe ownership transfers, such as the transfer of a `replicas` field from a user to an HPA without resetting to the default value are documented in [Transferring Ownership](/docs/reference/using-api/server-side-apply/#transferring-ownership) ([#92661](https://github.com/kubernetes/kubernetes/pull/92661), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation and Testing] - Set CSIMigrationvSphere feature gates to beta. Users should enable CSIMigration + CSIMigrationvSphere features and install the vSphere CSI Driver (https://github.com/kubernetes-sigs/vsphere-csi-driver) to move workload from the in-tree vSphere plugin "kubernetes.io/vsphere-volume" to vSphere CSI Driver. diff --git a/content/ko/docs/tasks/administer-cluster/access-cluster-api.md b/content/ko/docs/tasks/administer-cluster/access-cluster-api.md index b2ea227718..2d44a51b0e 100644 --- a/content/ko/docs/tasks/administer-cluster/access-cluster-api.md +++ b/content/ko/docs/tasks/administer-cluster/access-cluster-api.md @@ -193,7 +193,7 @@ func main() { } ``` -애플리케이션이 클러스터에서 파드로 배치된 경우, [파드 내에서 API 접근](#accessing-the-api-from-within-a-pod)을 참고한다. +애플리케이션이 클러스터 내의 파드로 배치된 경우, [파드 내에서 API 접근](/ko/docs/tasks/access-application-cluster/access-cluster/#파드에서-api-접근)을 참고한다. #### Python 클라이언트 {#python-client} diff --git a/content/ko/docs/tasks/administer-cluster/kubeadm/kubeadm-certs.md b/content/ko/docs/tasks/administer-cluster/kubeadm/kubeadm-certs.md index 272da1e329..487d89379e 100644 --- a/content/ko/docs/tasks/administer-cluster/kubeadm/kubeadm-certs.md +++ b/content/ko/docs/tasks/administer-cluster/kubeadm/kubeadm-certs.md @@ -168,36 +168,7 @@ controllerManager: ### 인증서 서명 요청(CSR) 생성 -`kubeadm certs renew --use-api` 로 쿠버네티스 인증서 API에 대한 인증서 서명 요청을 만들 수 있다. - -[cert-manager](https://github.com/jetstack/cert-manager)와 같은 외부 서명자를 설정하면, 인증서 서명 요청(CSR)이 자동으로 승인된다. -그렇지 않으면, [`kubectl certificate`](/ko/docs/setup/best-practices/certificates/) 명령을 사용하여 인증서를 수동으로 승인해야 한다. -다음의 kubeadm 명령은 승인할 인증서 이름을 출력한 다음, 승인이 발생하기를 차단하고 기다린다. - -```shell -sudo kubeadm certs renew apiserver --use-api & -``` -출력 결과는 다음과 비슷하다. -``` -[1] 2890 -[certs] certificate request "kubeadm-cert-kube-apiserver-ld526" created -``` - -### 인증서 서명 요청(CSR) 승인 - -외부 서명자를 설정하면, 인증서 서명 요청(CSR)이 자동으로 승인된다. - -그렇지 않으면, [`kubectl certificate`](/ko/docs/setup/best-practices/certificates/) 명령을 사용하여 인증서를 수동으로 승인해야 한다. 예를 들어 다음과 같다. - -```shell -kubectl certificate approve kubeadm-cert-kube-apiserver-ld526 -``` -출력 결과는 다음과 비슷하다. -```shell -certificatesigningrequest.certificates.k8s.io/kubeadm-cert-kube-apiserver-ld526 approved -``` - -`kubectl get csr` 명령으로 보류 중인 인증서 목록을 볼 수 있다. +쿠버네티스 API로 CSR을 작성하려면 [CertificateSigningRequest 생성](https://kubernetes.io/docs/reference/access-authn-authz/certificate-signing-requests/#create-certificatesigningrequest)을 본다. ## 외부 CA로 인증서 갱신 diff --git a/content/ko/docs/tasks/manage-kubernetes-objects/declarative-config.md b/content/ko/docs/tasks/manage-kubernetes-objects/declarative-config.md index 26fa2830ff..f7dcbab677 100644 --- a/content/ko/docs/tasks/manage-kubernetes-objects/declarative-config.md +++ b/content/ko/docs/tasks/manage-kubernetes-objects/declarative-config.md @@ -16,7 +16,7 @@ weight: 10 ## {{% heading "prerequisites" %}} -[`kubectl`](/ko/docs/tasks/tools/install-kubectl/)를 설치한다. +[`kubectl`](/ko/docs/tasks/tools/)를 설치한다. {{< include "task-tutorial-prereqs.md" >}} {{< version-check >}} diff --git a/content/ko/docs/tasks/manage-kubernetes-objects/imperative-command.md b/content/ko/docs/tasks/manage-kubernetes-objects/imperative-command.md index 28655ed57b..8b4d5afe36 100644 --- a/content/ko/docs/tasks/manage-kubernetes-objects/imperative-command.md +++ b/content/ko/docs/tasks/manage-kubernetes-objects/imperative-command.md @@ -12,7 +12,7 @@ weight: 30 ## {{% heading "prerequisites" %}} -[`kubectl`](/ko/docs/tasks/tools/install-kubectl/)을 설치한다. +[`kubectl`](/ko/docs/tasks/tools/)을 설치한다. {{< include "task-tutorial-prereqs.md" >}} {{< version-check >}} diff --git a/content/ko/docs/tasks/manage-kubernetes-objects/imperative-config.md b/content/ko/docs/tasks/manage-kubernetes-objects/imperative-config.md index 9e4f8de774..678814de3d 100644 --- a/content/ko/docs/tasks/manage-kubernetes-objects/imperative-config.md +++ b/content/ko/docs/tasks/manage-kubernetes-objects/imperative-config.md @@ -13,7 +13,7 @@ weight: 40 ## {{% heading "prerequisites" %}} -[`kubectl`](/ko/docs/tasks/tools/install-kubectl/)을 설치한다. +[`kubectl`](/ko/docs/tasks/tools/)을 설치한다. {{< include "task-tutorial-prereqs.md" >}} {{< version-check >}} diff --git a/content/ko/docs/tasks/manage-kubernetes-objects/kustomization.md b/content/ko/docs/tasks/manage-kubernetes-objects/kustomization.md index 16b2cd05f0..e420acbed9 100644 --- a/content/ko/docs/tasks/manage-kubernetes-objects/kustomization.md +++ b/content/ko/docs/tasks/manage-kubernetes-objects/kustomization.md @@ -29,7 +29,7 @@ kubectl apply -k ## {{% heading "prerequisites" %}} -[`kubectl`](/ko/docs/tasks/tools/install-kubectl/)을 설치한다. +[`kubectl`](/ko/docs/tasks/tools/)을 설치한다. {{< include "task-tutorial-prereqs.md" >}} {{< version-check >}} diff --git a/content/ko/docs/tasks/tools/install-kubectl-linux.md b/content/ko/docs/tasks/tools/install-kubectl-linux.md index 0e8a6ac6ee..96ab0a4024 100644 --- a/content/ko/docs/tasks/tools/install-kubectl-linux.md +++ b/content/ko/docs/tasks/tools/install-kubectl-linux.md @@ -20,10 +20,16 @@ card: 다음과 같은 방법으로 리눅스에 kubectl을 설치할 수 있다. -- [리눅스에서 curl을 사용하여 kubectl 바이너리 설치](#install-kubectl-binary-with-curl-on-linux) -- [기본 패키지 관리 도구를 사용하여 설치](#install-using-native-package-management) -- [다른 패키지 관리 도구를 사용하여 설치](#install-using-other-package-management) -- [Google Cloud SDK를 사용하여 설치](#install-on-linux-as-part-of-the-google-cloud-sdk) +- [{{% heading "prerequisites" %}}](#시작하기-전에) +- [리눅스에 kubectl 설치](#리눅스에-kubectl-설치) + - [리눅스에서 curl을 사용하여 kubectl 바이너리 설치]{#install-kubectl-binary-with-curl-on-linux} + - [기본 패키지 관리 도구를 사용하여 설치]{#install-using-native-package-management} + - [다른 패키지 관리 도구를 사용하여 설치]{#install-using-other-package-management} + - [Google Cloud SDK를 사용하여 설치]{#install-on-linux-as-part-of-the-google-cloud-sdk} +- [kubectl 구성 확인](#kubectl-구성-확인) +- [선택적 kubectl 구성](#선택적-kubectl-구성) + - [셸 자동 완성 활성화](#셸-자동-완성-활성화) +- [{{% heading "whatsnext" %}}](#다음-내용) ### 리눅스에서 curl을 사용하여 kubectl 바이너리 설치 {#install-kubectl-binary-with-curl-on-linux} @@ -100,15 +106,38 @@ card: ### 기본 패키지 관리 도구를 사용하여 설치 {#install-using-native-package-management} {{< tabs name="kubectl_install" >}} -{{< tab name="Ubuntu, Debian 또는 HypriotOS" codelang="bash" >}} -sudo apt-get update && sudo apt-get install -y apt-transport-https gnupg2 curl -curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - -echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee -a /etc/apt/sources.list.d/kubernetes.list -sudo apt-get update -sudo apt-get install -y kubectl -{{< /tab >}} +{{% tab name="데비안 기반의 배포판" %}} -{{< tab name="CentOS, RHEL 또는 Fedora" codelang="bash" >}}cat < /etc/yum.repos.d/kubernetes.repo +1. `apt` 패키지 색인을 업데이트하고 쿠버네티스 `apt` 리포지터리를 사용하는 데 필요한 패키지들을 설치한다. + + ```shell + sudo apt-get update + sudo apt-get install -y apt-transport-https ca-certificates curl + ``` + +2. 구글 클라우드 공개 사이닝 키를 다운로드한다. + + ```shell + sudo curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg + ``` + +3. 쿠버네티스 `apt` 리포지터리를 추가한다. + + ```shell + echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list + ``` + +4. 새 리포지터리의 `apt` 패키지 색인을 업데이트하고 kubectl을 설치한다. + + ```shell + sudo apt-get update + sudo apt-get install -y kubectl + ``` + +{{% /tab %}} + +{{< tab name="레드햇 기반의 배포판" codelang="bash" >}} +cat < /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64 diff --git a/content/ko/docs/tasks/tools/install-kubectl-macos.md b/content/ko/docs/tasks/tools/install-kubectl-macos.md index b0747f8a1c..1fd37151a6 100644 --- a/content/ko/docs/tasks/tools/install-kubectl-macos.md +++ b/content/ko/docs/tasks/tools/install-kubectl-macos.md @@ -23,7 +23,7 @@ card: - [macOS에서 curl을 사용하여 kubectl 바이너리 설치](#install-kubectl-binary-with-curl-on-macos) - [macOS에서 Homebrew를 사용하여 설치](#install-with-homebrew-on-macos) - [macOS에서 Macports를 사용하여 설치](#install-with-macports-on-macos) -- [Google Cloud SDK를 사용하여 설치](#install-on-macos-as-part-of-the-google-cloud-sdk) +- [macOS에서 Google Cloud SDK를 사용하여 설치](#install-on-macos-as-part-of-the-google-cloud-sdk) ### macOS에서 curl을 사용하여 kubectl 바이너리 설치 {#install-kubectl-binary-with-curl-on-macos} @@ -157,4 +157,4 @@ kubectl은 Bash 및 Zsh에 대한 자동 완성 지원을 제공하므로 입력 ## {{% heading "whatsnext" %}} -{{< include "included/kubectl-whats-next.md" >}} \ No newline at end of file +{{< include "included/kubectl-whats-next.md" >}} From e172a7e26405058fa1e5ac01645e6cf41c809020 Mon Sep 17 00:00:00 2001 From: jmyung Date: Fri, 26 Mar 2021 00:41:53 +0900 Subject: [PATCH 6/6] translate Manage TLS Certificates in a Cluster in Korean --- .../tasks/tls/managing-tls-in-a-cluster.md | 226 ++++++++++++++++++ 1 file changed, 226 insertions(+) create mode 100644 content/ko/docs/tasks/tls/managing-tls-in-a-cluster.md diff --git a/content/ko/docs/tasks/tls/managing-tls-in-a-cluster.md b/content/ko/docs/tasks/tls/managing-tls-in-a-cluster.md new file mode 100644 index 0000000000..f814db9919 --- /dev/null +++ b/content/ko/docs/tasks/tls/managing-tls-in-a-cluster.md @@ -0,0 +1,226 @@ +--- +title: 클러스터에서 TLS 인증서 관리 +content_type: task +--- + + + +쿠버네티스는 사용자가 제어하는 ​​인증 기관 (CA)에서 서명한 TLS 인증서를 +프로비저닝 할 수 있는 `certificates.k8s.io` API를 제공한다. +이러한 CA 및 인증서는 워크로드 간의 신뢰 관계를 구성하는 용도로 사용할 수 있다. + +`certificates.k8s.io` API는 [ACME 초안](https://github.com/ietf-wg-acme/acme/)과 +유사한 프로토콜을 사용한다. + +{{< note >}} +`certificates.k8s.io` API를 사용하여 생성된 인증서는 전용 CA로 서명된다. +이러한 목적을 위해 클러스터 루트 CA를 사용하도록 클러스터를 +구성할 수 있지만, 절대 이에 의존해서는 안된다. +해당 인증서가 클러스터 루트 CA에 대해 유효성을 검사한다고 가정하면 안된다. +{{< /note >}} + + + + +## {{% heading "prerequisites" %}} + + +{{< include "task-tutorial-prereqs.md" >}} {{< version-check >}} + + + + + +## 클러스터에서 TLS 신뢰 + +파드로 실행되는 애플리케이션에서 사용자 정의 CA를 신뢰하려면 +일반적으로 몇 가지 추가 애플리케이션 구성이 필요하다. +TLS 클라이언트 또는 서버가 신뢰하는 CA 인증서 목록에 +CA 인증서 번들을 추가해야 한다. +예를 들어 인증서 체인을 파싱하고, 파싱된 인증서를 [`tls.Config`](https://godoc.org/crypto/tls#Config) 구조체의 +`RootCAs` 필드에 추가하여, golang TLS 구성으로 이를 수행할 수 있다. + +CA 인증서를 파드에서 사용할 수 있는 +[ConfigMap](/docs/tasks/configure-pod-container/configure-pod-configmap)으로 +배포할 수 있다. + +## 인증서 요청 + +다음 섹션에서는 DNS를 통해 액세스되는 쿠버네티스 서비스의 +TLS 인증서를 생성하는 방법을 보여준다. + +{{< note >}} +이 튜토리얼에서는 CFSSL을 사용한다. [여기를 클릭](https://blog.cloudflare.com/introducing-cfssl/)하여 Cloudflare의 PKI 및 TLS 툴킷을 자세히 알아본다. +{{< /note >}} + +## CFSSL 다운로드 및 설치 + +이 예제에 사용된 cfssl 도구는 +[https://github.com/cloudflare/cfssl/releases](https://github.com/cloudflare/cfssl/releases)에서 다운로드 할 수 있다. + +## 인증서 서명 요청 (CSR) 생성 + +다음 명령을 실행하여 개인 키 및 인증서 서명 요청(또는 CSR)을 +생성한다. + +```shell +cat < +Annotations: +CreationTimestamp: Tue, 21 Mar 2017 07:03:51 -0700 +Requesting User: yourname@example.com +Status: Pending +Subject: + Common Name: my-svc.my-namespace.svc.cluster.local + Serial Number: +Subject Alternative Names: + DNS Names: my-svc.my-namespace.svc.cluster.local + IP Addresses: 192.0.2.24 + 10.0.34.2 +Events: +``` + +## 인증서 서명 요청 승인 받기 + +인증서 서명 요청을 승인하는 것은 자동화된 승인 프로세스나 +클러스터 관리자에 의해 일회성으로 수행한다. 여기에 +관련된 내용에 대한 자세한 내용은 아래에서 설명한다. + +## 인증서 다운로드 및 사용 + +CSR이 서명되고 승인되면 다음이 표시된다. + +```shell +kubectl get csr +``` + +```none +NAME AGE REQUESTOR CONDITION +my-svc.my-namespace 10m yourname@example.com Approved,Issued +``` + +다음을 실행하여 발급된 인증서를 다운로드하고 `server.crt` 파일에 +저장할 수 있다. + +```shell +kubectl get csr my-svc.my-namespace -o jsonpath='{.status.certificate}' \ + | base64 --decode > server.crt +``` + +이제 `server.crt` 및 `server-key.pem`을 키페어(keypair)로 사용하여 +HTTPS 서버를 시작할 수 있다. + +## 인증서 서명 요청 승인 + +(적절한 권한이 있는) 쿠버네티스 관리자는 +`kubectl certificate approve` 과 `kubectl certificate deny` +명령을 사용하여 인증서 서명 요청을 수동으로 승인 (또는 거부) 할 수 있다. +그러나 이 API를 많이 사용한다면, +자동화된 인증서 컨트롤러 작성을 고려할 수 있다. + +위와 같이 kubectl을 사용하는 시스템이든 사람이든, 승인자의 역할은 +CSR이 다음 두 가지 요구 사항을 충족하는지 확인하는 것이다. + +1. CSR은 CSR에 서명하는 데 사용되는 개인 키를 제어하는 것이다. 이는 + 승인된 대상으로 가장하는 제 3자의 위협을 해결한다. 위의 예에서 + 이 단계는 파드(pod)가 CSR을 생성하는 데 + 사용되는 개인 키를 제어하는지 확인하는 것이다. +2. CSR은 요청된 상황에서 작동할 권한이 있다. 이것은 + 원하지 않는 대상이 클러스터에 합류(join)하는 위협을 + 해결한다. 위의 예에서, 이 단계는 + 파드가 요청된 서비스에 참여할 수 있는지 확인하는 것이다. + +이 두 가지 요구 사항이 충족되는 경우에만, 승인자가 CSR을 승인하고 +그렇지 않으면 CSR을 거부해야 한다. + +## 승인 허가에 대한 경고문 + +CSR을 승인하는 능력은 환경 내에서 누구를 신뢰하는지 결정한다. CSR 승인 +능력은 광범위하거나 가볍게 부여해서는 안된다. 이 권한을 +부여하기 전에 이전 섹션에서 언급한 +요청의 요구 사항과 특정 인증서 발급의 영향을 +완전히 이해해야 한다. + +## 클러스터 관리자를 위한 참고 사항 + +이 가이드에서는 서명자가 인증서 API를 제공하도록 설정되었다고 가정한다. 쿠버네티스 +컨트롤러 관리자는 서명자의 기본 구현을 제공한다. 이를 +활성화하려면 인증 기관(CA)의 키 쌍에 대한 경로와 함께 `--cluster-signing-cert-file` 와 +`--cluster-signing-key-file` 매개 변수를 +컨트롤러 관리자에 전달한다.