First Korean l10n work for release-1.19
- Translate tasks/job/parallel-processing-expansion.md into Korean (#23544) - Fix issue with ko/docs/concepts/workloads/controllers/job.md (#23720) - Translate reference/scheduling/policies.md in Korean (#23690) - Update outdated files in the dev-1.19-ko.1 branch (#23702) - Modify translation access by Korean glossary (#23627) Co-authored-by: Jerry Park <jaehwa@gmail.com> Co-authored-by: junghyeonsu <54893898+junghyeonsu@users.noreply.github.com> Co-authored-by: coolguyhong <podolsmith@naver.com>
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
---
|
||||
title: 클러스터 액세스
|
||||
title: 클러스터 접근
|
||||
weight: 20
|
||||
content_type: concept
|
||||
---
|
||||
@@ -8,17 +8,14 @@ content_type: concept
|
||||
|
||||
여기에서는 클러스터와 통신을 하는 다양한 방식에 대해서 다룰 것이다.
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- body -->
|
||||
|
||||
## 처음이라면 kubectl을 사용하여 액세스
|
||||
## 처음이라면 kubectl을 사용하여 접근
|
||||
|
||||
최초로 쿠버네티스 API에 액세스할 때 우리는
|
||||
최초로 쿠버네티스 API에 접근할 때 우리는
|
||||
쿠버네티스 CLI인 `kubectl`을 사용하는 것을 추천한다.
|
||||
|
||||
클러스터에 액세스하려면 클러스터의 위치정보를 알아야 하고 클러스터에 접속하기 위한
|
||||
클러스터에 접근하려면 클러스터의 위치정보를 알아야 하고 클러스터에 접속하기 위한
|
||||
인증정보를 가져야 한다. 일반적으로 이는 당신이
|
||||
[Getting started guide](/ko/docs/setup/)를 다 진행했을 때 자동으로 구성되거나,
|
||||
다른 사람이 클러스터를 구성하고 당신에게 인증정보와 위치정보를 제공할 수도 있다.
|
||||
@@ -29,14 +26,15 @@ kubectl이 인지하는 위치정보와 인증정보는 다음 커맨드로 확
|
||||
kubectl config view
|
||||
```
|
||||
|
||||
많은 [예제들](/ko/docs/reference/kubectl/cheatsheet/)에서 kubectl을 사용하는 것을 소개하고 있으며
|
||||
완전한 문서는 [kubectl manual](/docs/user-guide/kubectl-overview)에서 찾아볼 수 있다.
|
||||
많은 [예제들](/ko/docs/reference/kubectl/cheatsheet/)에서
|
||||
kubectl을 사용하는 것을 소개하고 있으며 완전한 문서는
|
||||
[kubectl 매뉴얼](/ko/docs/reference/kubectl/overview/)에서 찾아볼 수 있다.
|
||||
|
||||
## REST API에 직접 액세스
|
||||
## REST API에 직접 접근
|
||||
|
||||
kubectl은 apiserver의 위치 파악과 인증을 처리한다.
|
||||
만약 당신이 curl, wget 또는 웹브라우저와 같은 http 클라이언트로
|
||||
REST API에 직접 액세스하려고 한다면 위치 파악과 인증을 하는 몇 가지 방법이 존재한다.
|
||||
REST API에 직접 접근하려고 한다면 위치 파악과 인증을 하는 몇 가지 방법이 존재한다.
|
||||
|
||||
- kubectl을 proxy 모드로 실행.
|
||||
- 권장하는 접근 방식.
|
||||
@@ -155,7 +153,7 @@ localhost에서 제공되거나 방화벽으로 보호되는 몇몇 클러스터
|
||||
는 클러스터 관리자가 이를 어떻게 구성할 수 있는지를 설명한다.
|
||||
이 방식들은 미래의 고가용성 지원과 충돌될 수 있다.
|
||||
|
||||
## API에 프로그래밍 방식으로 액세스
|
||||
## API에 프로그래밍 방식으로 접근
|
||||
|
||||
쿠버네티스는 공식적으로 [Go](#go-클라이언트)와 [Python](#python-클라이언트)
|
||||
클라이언트 라이브러리를 지원한다.
|
||||
@@ -165,16 +163,16 @@ localhost에서 제공되거나 방화벽으로 보호되는 몇몇 클러스터
|
||||
* 라이브러리를 취득하려면 `go get k8s.io/client-go@kubernetes-<kubernetes-version-number>` 커맨드를 실행한다. [INSTALL.md](https://github.com/kubernetes/client-go/blob/master/INSTALL.md#for-the-casual-user)에서 상세한 설치 방법을 알 수 있다. [https://github.com/kubernetes/client-go](https://github.com/kubernetes/client-go#compatibility-matrix)에서 어떤 버젼이 지원되는지 확인할 수 있다.
|
||||
* client-go 클라이언트 위에 애플리케이션을 작성하자. client-go는 자체적으로 API 오브젝트를 정의하므로 필요하다면 main 레포지터리보다는 client-go에서 API 정의들을 import하기를 바란다. 정확하게 `import "k8s.io/client-go/kubernetes"`로 import하는 것을 예로 들 수 있다.
|
||||
|
||||
Go 클라이언트는 apiserver의 위치지정과 인증에 kubectl CLI와 동일하게 [kubeconfig file](/docs/concepts/cluster-administration/authenticate-across-clusters-kubeconfig/)을 사용할 수 있다.
|
||||
Go 클라이언트는 apiserver의 위치지정과 인증에 kubectl CLI와 동일하게 [kubeconfig file](/ko/docs/concepts/configuration/organize-cluster-access-kubeconfig/)을 사용할 수 있다.
|
||||
[예제](https://git.k8s.io/client-go/examples/out-of-cluster-client-configuration/main.go)를 참고한다.
|
||||
|
||||
만약 애플리케이션이 클러스터 내에 파드로 배포되었다면 [다음 장](#파드에서-api-액세스)을 참조하기를 바란다.
|
||||
만약 애플리케이션이 클러스터 내에 파드로 배포되었다면 [다음 장](#파드에서-api-접근)을 참조하기를 바란다.
|
||||
|
||||
### Python 클라이언트
|
||||
|
||||
Python 클라이언트를 사용하려면 `pip install kubernetes` 커맨드를 실행한다. 설치 옵션에 대한 상세 사항은 [Python Client Library page](https://github.com/kubernetes-client/python)를 참조한다.
|
||||
|
||||
Python 클라이언트는 apiserver의 위치지정과 인증에 kubectl CLI와 동일하게 [kubeconfig file](/docs/concepts/cluster-administration/authenticate-across-clusters-kubeconfig/)을 사용할 수 있다.
|
||||
Python 클라이언트는 apiserver의 위치지정과 인증에 kubectl CLI와 동일하게 [kubeconfig file](/ko/docs/concepts/configuration/organize-cluster-access-kubeconfig/)을 사용할 수 있다.
|
||||
[예제](https://github.com/kubernetes-client/python/tree/master/examples)를 참조한다.
|
||||
|
||||
### 다른 언어
|
||||
@@ -182,7 +180,7 @@ Python 클라이언트는 apiserver의 위치지정과 인증에 kubectl CLI와
|
||||
다른 언어에서 API를 접속하기 위한 [클라이언트 라이브러리들](/ko/docs/reference/using-api/client-libraries/)도 존재한다.
|
||||
이들이 어떻게 인증하는지는 다른 라이브러리들의 문서를 참조한다.
|
||||
|
||||
## 파드에서 API 액세스
|
||||
## 파드에서 API 접근
|
||||
|
||||
파드에서 API를 접속한다면 apiserver의
|
||||
위치지정과 인증은 다소 다르다.
|
||||
@@ -215,11 +213,13 @@ apiserver의 인증서 제공을 검증하는데 사용되어야 한다.
|
||||
|
||||
각각의 사례에서 apiserver와의 보안 통신에 파드의 인증정보가 사용된다.
|
||||
|
||||
## 클러스터에서 실행되는 서비스로 액세스
|
||||
## 클러스터에서 실행되는 서비스로 접근
|
||||
|
||||
이전 장은 쿠버네티스 API server 접속에 대한 내용을 다루었다. 이번 장은
|
||||
쿠버네티스 클러스터 상에서 실행되는 다른 서비스로의 연결을 다룰 것이다. 쿠버네티스에서
|
||||
[노드들](/ko/docs/concepts/architecture/nodes/), [파드들](/ko/docs/concepts/workloads/pods/pod/), [서비스들](/docs/user-guide/services)은
|
||||
[노드들](/ko/docs/concepts/architecture/nodes/),
|
||||
[파드들](/ko/docs/concepts/workloads/pods/pod/),
|
||||
[서비스들](/ko/docs/concepts/services-networking/service/)은
|
||||
모두 자신의 IP들을 가진다. 당신의 데스크탑 PC와 같은 클러스터 외부 장비에서는
|
||||
클러스터 상의 노드 IP들, 파드 IP들, 서비스 IP들로 라우팅되지 않아서 접근을
|
||||
할 수 없을 것이다.
|
||||
@@ -228,9 +228,9 @@ apiserver의 인증서 제공을 검증하는데 사용되어야 한다.
|
||||
|
||||
클러스터 외부에서 노드들, 파드들, 서비스들에 접속하는 데는 몇 가지 선택지들이 있다.
|
||||
|
||||
- 공인 IP를 통해 서비스에 액세스.
|
||||
- 공인 IP를 통해 서비스에 접근.
|
||||
- 클러스터 외부에서 접근할 수 있도록 `NodePort` 또는 `LoadBalancer` 타입의
|
||||
서비스를 사용한다. [서비스](/docs/user-guide/services)와
|
||||
서비스를 사용한다. [서비스](/ko/docs/concepts/services-networking/service/)와
|
||||
[kubectl expose](/docs/reference/generated/kubectl/kubectl-commands/#expose) 문서를 참조한다.
|
||||
- 당신의 클러스터 환경에 따라 회사 네트워크에만 서비스를 노출하거나
|
||||
인터넷으로 노출할 수 있다. 이 경우 노출되는 서비스의 보안 여부를 고려해야 한다.
|
||||
@@ -238,19 +238,19 @@ apiserver의 인증서 제공을 검증하는데 사용되어야 한다.
|
||||
- 파드들은 서비스 뒤에 위치시킨다. 레플리카들의 집합에서 특정 파드 하나에 debugging 같은 목적으로 접근하려면
|
||||
해당 파드에 고유의 레이블을 붙이고 셀렉터에 해당 레이블을 선택한 신규 서비스를 생성한다.
|
||||
- 대부분의 경우에는 애플리케이션 개발자가 노드 IP를 통해 직접 노드에
|
||||
액세스할 필요는 없다.
|
||||
- Proxy Verb를 사용하여 서비스, 노드, 파드에 액세스.
|
||||
- 원격 서비스에 액세스하기에 앞서 apiserver의 인증과 인가를 받아야 한다.
|
||||
접근할 필요는 없다.
|
||||
- Proxy Verb를 사용하여 서비스, 노드, 파드에 접근.
|
||||
- 원격 서비스에 접근하기에 앞서 apiserver의 인증과 인가를 받아야 한다.
|
||||
서비스가 인터넷에 노출하기에 보안이 충분하지 않거나 노드 IP 상의 port에
|
||||
액세스를 취득하려고 하거나 debugging을 하려면 이를 사용한다.
|
||||
접근을 하려고 하거나 debugging을 하려면 이를 사용한다.
|
||||
- 어떤 web 애플리케이션에서는 proxy가 문제를 일으킬 수 있다.
|
||||
- HTTP/HTTPS에서만 동작한다.
|
||||
- [여기](#수작업으로-apiserver-proxy-url들을-구축)에서 설명하고 있다.
|
||||
- 클러스터 내 노드 또는 파드에서 액세스.
|
||||
- 클러스터 내 노드 또는 파드에서 접근.
|
||||
- 파드를 Running시킨 다음 [kubectl exec](/docs/reference/generated/kubectl/kubectl-commands/#exec)를 사용하여 해당 파드의 셸로 접속한다.
|
||||
해당 셸에서 다른 노드들, 파드들, 서비스들에 연결한다.
|
||||
- 어떤 클러스터는 클러스터 내의 노드에 ssh 접속을 허용하기도 한다. 이런 클러스터에서는
|
||||
클러스터 서비스에 액세스도 가능하다. 이는 비표준 방식으로 특정 클러스터에서는 동작하지만
|
||||
클러스터 서비스에 접근도 가능하다. 이는 비표준 방식으로 특정 클러스터에서는 동작하지만
|
||||
다른 클러스터에서는 동작하지 않을 수 있다. 브라우저와 다른 도구들이 설치되지 않았거나 설치되었을 수 있다. 클러스터 DNS가 동작하지 않을 수도 있다.
|
||||
|
||||
### 빌트인 서비스들의 발견
|
||||
@@ -273,10 +273,10 @@ grafana is running at https://104.197.5.247/api/v1/namespaces/kube-system/servic
|
||||
heapster is running at https://104.197.5.247/api/v1/namespaces/kube-system/services/monitoring-heapster/proxy
|
||||
```
|
||||
|
||||
이는 각 서비스에 액세스하기 위한 proxy-verb URL을 보여준다.
|
||||
이는 각 서비스에 접근하기 위한 proxy-verb URL을 보여준다.
|
||||
예를 들어 위 클러스터는 클러스터 수준의 logging(Elasticsearch 사용)이 활성화되었으므로 적절한 인증을 통과하여
|
||||
`https://104.197.5.247/api/v1/namespaces/kube-system/services/elasticsearch-logging/proxy/`로 액세스할 수 있다. 예를 들어 kubectl proxy로
|
||||
`http://localhost:8080/api/v1/namespaces/kube-system/services/elasticsearch-logging/proxy/`를 통해 logging에 액세스할 수도 있다.
|
||||
`https://104.197.5.247/api/v1/namespaces/kube-system/services/elasticsearch-logging/proxy/`로 접근할 수 있다. 예를 들어 kubectl proxy로
|
||||
`http://localhost:8080/api/v1/namespaces/kube-system/services/elasticsearch-logging/proxy/`를 통해 logging에 접근할 수도 있다.
|
||||
(인증을 통과하는 방법이나 kubectl proxy를 사용하는 것은 [쿠버네티스 API를 사용해서 클러스터에 접근하기](/ko/docs/tasks/administer-cluster/access-cluster-api/)을 참조한다.)
|
||||
|
||||
#### 수작업으로 apiserver proxy URL을 구축
|
||||
@@ -298,8 +298,8 @@ URL의 네임 부분에 지원되는 양식은 다음과 같다.
|
||||
|
||||
##### 예제들
|
||||
|
||||
* Elasticsearch 서비스 endpoint `_search?q=user:kimchy`에 액세스하려면 `http://104.197.5.247/api/v1/namespaces/kube-system/services/elasticsearch-logging/proxy/_search?q=user:kimchy`를 사용할 수 있다.
|
||||
* Elasticsearch 클러스터 상태 정보 `_cluster/health?pretty=true`에 액세스하려면 `https://104.197.5.247/api/v1/namespaces/kube-system/services/elasticsearch-logging/proxy/_cluster/health?pretty=true`를 사용할 수 있다.
|
||||
* Elasticsearch 서비스 endpoint `_search?q=user:kimchy`에 접근하려면 `http://104.197.5.247/api/v1/namespaces/kube-system/services/elasticsearch-logging/proxy/_search?q=user:kimchy`를 사용할 수 있다.
|
||||
* Elasticsearch 클러스터 상태 정보 `_cluster/health?pretty=true`에 접근하려면 `https://104.197.5.247/api/v1/namespaces/kube-system/services/elasticsearch-logging/proxy/_cluster/health?pretty=true`를 사용할 수 있다.
|
||||
|
||||
```json
|
||||
{
|
||||
@@ -316,7 +316,7 @@ URL의 네임 부분에 지원되는 양식은 다음과 같다.
|
||||
}
|
||||
```
|
||||
|
||||
### 클러스터 상에서 실행되는 서비스에 웹브라우저를 사용하여 액세스
|
||||
### 클러스터 상에서 실행되는 서비스에 웹브라우저를 사용하여 접근
|
||||
|
||||
브라우저의 주소창에 apiserver proxy url을 넣을 수도 있다. 하지만
|
||||
|
||||
@@ -333,7 +333,7 @@ redirect 기능은 deprecated되고 제거 되었다. 대신 (아래의) proxy
|
||||
|
||||
쿠버네티스를 사용하면서 당신이 접할 수 있는 몇 가지 다른 proxy들이 존재한다.
|
||||
|
||||
1. [kubectl proxy](#rest-api에-직접-액세스):
|
||||
1. [kubectl proxy](#rest-api에-직접-접근):
|
||||
|
||||
- 사용자의 데스크탑이나 파드 내에서 실행한다
|
||||
- localhost 주소에서 쿠버네티스 apiserver로 proxy한다
|
||||
@@ -375,3 +375,4 @@ redirect 기능은 deprecated되고 제거 되었다. 대신 (아래의) proxy
|
||||
|
||||
일반적으로 쿠버네티스 사용자들은 처음 두 타입이 아닌 다른 방식은 고려할 필요가 없지만 클러스터 관리자는
|
||||
나머지 타입을 적절하게 구성해줘야 한다.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user