First Korean I10n work for release-1.14 (#13730)
* First Korean I10n work for release-1.14 - ko: Fix nav-menu sync in tutorials/statefulset #13374 (#13474) - ko: add outdated files in dev-1.14-ko.1 branch (#13473) - Translate title of concepts/../image.md Ko (#13507) - ko: add translation tutorial/stateful-application/cassandra #12450 (#13515) - Translate reference/kubectl/cheatsheet in Korean (#13549) - Translate tasks/access-application-cluster/access-cluster in Korean (#13565) - ko: add tutorials/stateful-application/mysql-wordpress-persistent-vol… (#13516) - Issue 12838 object management kubectl imperative config (#13657) - Translate standardized glossary Tag Fandamental in Korean (#13552) Co-authored-by: Kim Young Dae <38598117+zer0big@users.noreply.github.com> Co-authored-by: Yoon <learder@gmail.com> Co-authored-by: lapee79 <lapee79@gmail.com> Co-authored-by: Jesang Myung <jesang.myung@gmail.com> Co-authored-by: Seokho <shsongist@gmail.com> Co-authored-by: Claudia J.Kang <claudiajkang@gmail.com> Co-authored-by: June Yi <june.yi@samsung.com> * Fix conflict : pick-right-solution
This commit is contained in:
committed by
Kubernetes Prow Robot
parent
866fc48195
commit
34074d33ff
@@ -77,7 +77,7 @@ cloud-controller-manager는 클라우드 밴더 코드와 쿠버네티스 코드
|
||||
### 컨테이너 런타임
|
||||
|
||||
컨테이너 런타임은 컨테이너의 동작을 책임지는 소프트웨어다.
|
||||
쿠버네티스는 몇몇의 런타임을 지원하는데 [Docker](http://www.docker.com), [containerd](https://containerd.io), [cri-o](https://cri-o.io/), [rktlet](https://github.com/kubernetes-incubator/rktlet) 그리고 [Kubernetes CRI (Container Runtime Interface)](https://github.com/kubernetes/community/blob/master/contributors/devel/container-runtime-interface.md)를 구현한 모든 런타임이다.
|
||||
쿠버네티스는 몇몇의 런타임을 지원하는데 [Docker](http://www.docker.com), [containerd](https://containerd.io), [cri-o](https://cri-o.io/), [rktlet](https://github.com/kubernetes-incubator/rktlet) 그리고 [Kubernetes CRI (Container Runtime Interface)](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-node/container-runtime-interface.md)를 구현한 모든 런타임이다.
|
||||
|
||||
## 애드온
|
||||
|
||||
|
||||
@@ -0,0 +1,143 @@
|
||||
---
|
||||
title: 구성파일을 이용한 명령형 쿠버네티스 오브젝트 관리
|
||||
content_template: templates/concept
|
||||
weight: 30
|
||||
---
|
||||
|
||||
{{% capture overview %}}
|
||||
쿠버네티스 오브젝트는 YAML 또는 JSON으로 작성된 오프젝트 구성파일과 함께 `kubectl`
|
||||
커맨드 라인 툴을 이용하여 생성, 업데이트 및 삭제할 수 있다.
|
||||
이 문서는 구성파일을 이용하여 어떻게 오브젝트를 정의하고 관리할 수 있는지에 대해 설명한다.
|
||||
{{% /capture %}}
|
||||
|
||||
{{% capture body %}}
|
||||
|
||||
## 트레이드 오프
|
||||
|
||||
`kubectl` 툴은 3가지 종류의 오브젝트 관리를 지원한다.
|
||||
|
||||
* 명령형 커맨드
|
||||
* 명령형 오브젝트 구성
|
||||
* 선언형 오브젝트 구성
|
||||
|
||||
각 종류별 오브젝트 관리의 장점과 단점에 대한 논의는
|
||||
[쿠버네티스 오브젝트 관리](/ko/docs/concepts/overview/object-management-kubectl/overview/)를 참고한다.
|
||||
|
||||
## 오브젝트 생성 방법
|
||||
|
||||
구성파일로부터 오브젝트를 생성하기 위해 `kubectl create -f`를 사용할 수 있다.
|
||||
보다 상세한 정보는 [쿠버네티스 API 참조](/docs/reference/generated/kubernetes-api/{{< param "version" >}}/)를
|
||||
참조한다.
|
||||
|
||||
- `kubectl create -f <파일명|url>`
|
||||
|
||||
## 오브젝트 업데이트 방법
|
||||
|
||||
{{< warning >}}
|
||||
`replace` 커맨드로 오브젝트를 업데이트 하게되면,
|
||||
구성파일에 정의되지 않은 스펙의 모든 부분이 삭제된다. 이는
|
||||
`externalIPs`필드가 구성파일로부터 독립적으로 관리되는
|
||||
`LoadBalancer`타입의 서비스와 같이, 클러스터 의해 부분적으로
|
||||
관리되는 스펙의 오브젝트와 함께 사용되어서는 안된다.
|
||||
독립적으로 관리되는 필드는 `replace`로 삭제되는 것을 방지하기 위해
|
||||
구성파일에 복사되어져야만 한다.
|
||||
{{< /warning >}}
|
||||
|
||||
구성파일에 따라 활성 오브젝트를 업데이트하기 위해 `kubectl replace -f`
|
||||
를 사용할 수 있다.
|
||||
|
||||
- `kubectl replace -f <파일명|url>`
|
||||
|
||||
## 오브젝트 삭제 방법
|
||||
|
||||
구성파일에 정의한 오브젝트를 삭제하기 위해 `kubectl delete -f`를
|
||||
사용할 수 있다.
|
||||
|
||||
- `kubectl delete -f <파일명|url>`
|
||||
|
||||
## 오브젝트 삭제 방법
|
||||
|
||||
구성파일에 정의한 오브젝트에 관한 정보 확인을 위해 `kubectl get -f`
|
||||
명령을 사용할 수 있다.
|
||||
|
||||
- `kubectl get -f <파일명|url> -o yaml`
|
||||
|
||||
`-o yaml` 플래그는 전체 오브젝트 구성이 출력되도록 정의한다. 옵션의 리스트를 확인하기
|
||||
위해서는 `kubectl get -h`를 사용한다.
|
||||
|
||||
## 제약사항
|
||||
|
||||
`create`, `replace`, 그리고 `delete` 명령은 각 오브젝트의 구성이
|
||||
그 구성파일 내에 완전하게 정의되고 기록되어질 경우 잘 동작한다.
|
||||
그러나 활성 오브젝트가 업데이트 되고, 구성파일 안에 병합되지 않으면,
|
||||
업데이트 내용은 다음번 `replace`가 실행될 때 삭제될 것이다.
|
||||
이는 HorizontalPodAutoscaler와 같은 컨트롤러가
|
||||
활성 오브젝트를 직접적으로 업데이트하도록 할 경우 발생한다.
|
||||
여기 예시가 있다.
|
||||
|
||||
1. 구성파일로부터 오브젝트를 생성할 경우
|
||||
1. 또 다른 소스가 일부 필드를 변경함으로써 오브젝트가 업데이트 되는 경우
|
||||
1. 구성파일로부터 오브젝트를 대체할 경우. 스텝 2에서의
|
||||
다른 소스에 의해 이루어진 변경은 유실된다.
|
||||
|
||||
동일 오브젝트에 대해 여러 명의 작성자들로부터의 지원이 필요한 경우, 오브젝트를 관리하기 위해
|
||||
`kubectl apply`를 사용할 수 있다.
|
||||
|
||||
## 구성 저장 없이 URL로부터 오브젝트 생성과 편집하기
|
||||
|
||||
구성파일에 대한 URL을 가진다고 가정해보자.
|
||||
`kubectl create --edit`을 사용하여 오브젝트가 생성되기 전에
|
||||
구성을 변경할 수 있다. 이는 독자가 수정할 수 있는 구성파일을
|
||||
가르키는 튜토리얼과 작업에 특히 유용하다.
|
||||
|
||||
```sh
|
||||
kubectl create -f <url> --edit
|
||||
```
|
||||
|
||||
## 명령형 커맨드에서 명령형 오브젝트 구성으로 전환하기
|
||||
|
||||
령형 커맨드에서 명령형 오브젝트 구성으로 전환하기 위해
|
||||
몇 가지 수동 단계를 포함한다.
|
||||
|
||||
1. 다음과 같이 활성 오브젝트를 로컬 오브젝트 구성파일로 내보낸다.
|
||||
```sh
|
||||
kubectl get <종류>/<이름> -o yaml --export > <종류>_<이름>.yaml
|
||||
```
|
||||
|
||||
1. 수동으로 오브젝트 구성파일에서 상태 필드를 제거한다.
|
||||
|
||||
1. 이후 오브젝트 관리를 위해, `replace`만 사용한다.
|
||||
```sh
|
||||
kubectl replace -f <종류>_<이름>.yaml
|
||||
```
|
||||
|
||||
|
||||
## 컨트롤러 셀렉터와 PodTemplate 레이블 삭제하기
|
||||
|
||||
{{< warning >}}
|
||||
컨트롤러에서 셀렉터를 업데이트하지 않도록 강력하게 권고한다.
|
||||
{{< /warning >}}
|
||||
|
||||
권고되는 접근방법은 다른 의미론적 의미가 없는 컨트롤러 셀렉터의 의해서만
|
||||
사용되는 단일, 불변의 PodTemplate 레이블로 정의하는 것이다.
|
||||
|
||||
레이블 예시:
|
||||
|
||||
```yaml
|
||||
selector:
|
||||
matchLabels:
|
||||
controller-selector: "extensions/v1beta1/deployment/nginx"
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
controller-selector: "extensions/v1beta1/deployment/nginx"
|
||||
```
|
||||
|
||||
{{% /capture %}}
|
||||
|
||||
{{% capture whatsnext %}}
|
||||
- [명령형 커맨드를 이용한 쿠버네티스 오브젝트 관리하기](/ko/docs/concepts/overview/object-management-kubectl/imperative-command/)
|
||||
- [오브젝트 구성을 이용하여 쿠버네티스 오브젝트 관리하기 (선언형)](/docs/concepts/overview/object-management-kubectl/declarative-config/)
|
||||
- [Kubectl 커멘드 참조](/docs/reference/generated/kubectl/kubectl/)
|
||||
- [쿠버네티스 API 참조](/docs/reference/generated/kubernetes-api/{{< param "version" >}}/)
|
||||
{{% /capture %}}
|
||||
@@ -41,11 +41,11 @@ card:
|
||||
|
||||
{{< codenew file="application/deployment.yaml" >}}
|
||||
|
||||
위 예시와 같이 .yaml 파일을 이용하여 디플로이먼트를 생성하기 위한 하나의 방식으로는 `kubectl` 커맨드-라인 인터페이스에 인자값으로 `.yaml` 파일를 건네 [`kubectl create`](/docs/reference/generated/kubectl/kubectl-commands#create) 명령을 이용하는 것이다. 다음 예시와 같다.
|
||||
위 예시와 같이 .yaml 파일을 이용하여 디플로이먼트를 생성하기 위한 하나의 방식으로는 `kubectl` 커맨드-라인 인터페이스에 인자값으로 `.yaml` 파일를 건네 [`kubectl apply`](/docs/reference/generated/kubectl/kubectl-commands#apply) 명령을 이용하는 것이다. 다음 예시와 같다.
|
||||
|
||||
|
||||
```shell
|
||||
$ kubectl create -f https://k8s.io/examples/application/deployment.yaml --record
|
||||
kubectl apply -f https://k8s.io/examples/application/deployment.yaml --record
|
||||
```
|
||||
|
||||
그 출력 내용은 다음과 유사하다.
|
||||
|
||||
@@ -41,7 +41,9 @@ weight: 30
|
||||
사용중인 클러스터의 현재 네임스페이스를 나열할 수 있다.
|
||||
|
||||
```shell
|
||||
$ kubectl get namespaces
|
||||
kubectl get namespaces
|
||||
```
|
||||
```
|
||||
NAME STATUS AGE
|
||||
default Active 1d
|
||||
kube-system Active 1d
|
||||
|
||||
Reference in New Issue
Block a user