You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* 타겟 서버들은 docker 이미지를 풀(pull) 하기 위해 반드시 인터넷에 접속할 수 있어야 한다. 아니라면, 추가적인 설정을 해야 한다 ([오프라인 환경 확인하기](https://github.com/kubernetes-sigs/kubespray/blob/master/docs/offline-environment.md))
39
39
* 타겟 서버들의 **IPv4 포워딩**이 활성화되어야 한다
40
40
***SSH 키**가 인벤토리의 모든 서버들에 복사되어야 한다
41
-
***방화벽은 관리되지 않는다**. 사용자가 예전 방식대로 고유한 규칙을 구현해야 한다. 디플로이먼트 과정에서의 문제를 방지하려면 방화벽을 비활성화해야 한다
42
-
* 만약 kubespray가 루트가 아닌 사용자 계정에서 실행되었다면, 타겟 서버에서 알맞은 권한 확대 방법이 설정되어야 한다. 그 뒤`ansible_become` 플래그나 커맨드 파라미터들, `--become` 또는 `-b` 가 명시되어야 한다
41
+
***방화벽은 kubespray에 의해 관리되지 않는다**. 사용자는 필요에 따라 적절한 규칙을 구현해야 한다. 디플로이먼트 과정에서의 문제를 방지하려면 방화벽을 비활성화해야 한다
42
+
* 만약 kubespray가 루트가 아닌 사용자 계정에서 실행되었다면, 타겟 서버에서 알맞은 권한 확대 방법이 설정되어야 하며,`ansible_become` 플래그나 커맨드 파라미터들, `--become` 또는 `-b` 가 명시되어야 한다
[파드](/ko/docs/concepts/workloads/pods/) 및 [서비스](/ko/docs/concepts/services-networking/service/)는 모두
222
-
고유한 IP를 가진다. 당신의 데스크탑 PC와 같은 클러스터 외부 장비에서는
223
-
클러스터 상의 노드 IP, 파드 IP, 서비스 IP로 라우팅되지 않아서 접근을
224
-
할 수 없을 것이다.
225
-
226
-
### 통신을 위한 방식들
227
-
228
-
클러스터 외부에서 노드, 파드 및 서비스에 접속하기 위한 몇 가지 옵션이 있다.
229
-
230
-
- 공인 IP를 통해 서비스에 접근.
231
-
- 클러스터 외부에서 접근할 수 있도록 `NodePort` 또는 `LoadBalancer` 타입의
232
-
서비스를 사용한다. [서비스](/ko/docs/concepts/services-networking/service/)와
233
-
[kubectl expose](/docs/reference/generated/kubectl/kubectl-commands/#expose) 문서를 참조한다.
234
-
- 클러스터 환경에 따라, 서비스는 회사 네트워크에만 노출되기도 하며,
235
-
인터넷에 노출되는 경우도 있다. 이 경우 노출되는 서비스의 보안 여부를 고려해야 한다.
236
-
해당 서비스는 자체적으로 인증을 수행하는가?
237
-
- 파드는 서비스 뒤에 위치시킨다. 레플리카들의 집합에서 특정 파드 하나에 debugging 같은 목적으로 접근하려면
238
-
해당 파드에 고유의 레이블을 붙이고 셀렉터에 해당 레이블을 선택하는 신규 서비스를 생성한다.
239
-
- 대부분의 경우에는 애플리케이션 개발자가 노드 IP를 통해 직접 노드에
240
-
접근할 필요는 없다.
241
-
- Proxy Verb를 사용하여 서비스, 노드, 파드에 접근.
242
-
- 원격 서비스에 접근하기에 앞서 apiserver의 인증과 인가를 받아야 한다.
243
-
서비스가 인터넷에 노출하기에 보안이 충분하지 않거나 노드 IP 상의 포트에
244
-
접근을 하려고 하거나 debugging을 하려면 이를 사용한다.
245
-
- 어떤 web 애플리케이션에서는 프록시가 문제를 일으킬 수 있다.
246
-
- HTTP/HTTPS에서만 동작한다.
247
-
-[여기](#수작업으로-apiserver-proxy-url들을-구축)에서 설명하고 있다.
248
-
- 클러스터 내 노드 또는 파드에서 접근.
249
-
- 파드를 실행한 다음, [kubectl exec](/docs/reference/generated/kubectl/kubectl-commands/#exec)를 사용하여 해당 파드의 셸로 접속한다.
250
-
해당 셸에서 다른 노드, 파드, 서비스에 연결한다.
251
-
- 어떤 클러스터는 클러스터 내의 노드에 ssh 접속을 허용하기도 한다. 이런 클러스터에서는
252
-
클러스터 서비스에 접근도 가능하다. 이는 비표준 방식으로 특정 클러스터에서는 동작하지만
253
-
다른 클러스터에서는 동작하지 않을 수 있다. 브라우저와 다른 도구들이 설치되지 않았거나 설치되었을 수 있다. 클러스터 DNS가 동작하지 않을 수도 있다.
254
-
255
-
### 빌트인 서비스 검색
256
-
257
-
일반적으로 kube-system에 의해 클러스터에 실행되는 몇 가지 서비스가 있다.
258
-
`kubectl cluster-info` 커맨드로 이 서비스의 리스트를 볼 수 있다.
217
+
이전 섹션에서는 쿠버네티스 API 서버에 연결하는 방법을 소개하였다. 쿠버네티스 클러스터에서 실행되는 다른 서비스에 연결하는 방법은 [클러스터 접근](/ko/docs/tasks/access-application-cluster/access-cluster/) 페이지를 참조한다.
259
218
260
-
```shell
261
-
kubectl cluster-info
262
-
```
263
-
264
-
결괏값은 다음과 같을 것이다.
265
-
266
-
```
267
-
Kubernetes master is running at https://104.197.5.247
268
-
elasticsearch-logging is running at https://104.197.5.247/api/v1/namespaces/kube-system/services/elasticsearch-logging/proxy
269
-
kibana-logging is running at https://104.197.5.247/api/v1/namespaces/kube-system/services/kibana-logging/proxy
270
-
kube-dns is running at https://104.197.5.247/api/v1/namespaces/kube-system/services/kube-dns/proxy
271
-
grafana is running at https://104.197.5.247/api/v1/namespaces/kube-system/services/monitoring-grafana/proxy
272
-
heapster is running at https://104.197.5.247/api/v1/namespaces/kube-system/services/monitoring-heapster/proxy
273
-
```
274
-
275
-
이는 각 서비스에 접근하기 위한 proxy-verb URL을 보여준다.
276
-
예를 들어 위 클러스터는 클러스터 수준의 logging(Elasticsearch 사용)이 활성화되었으므로 적절한 인증을 통과하여
277
-
`https://104.197.5.247/api/v1/namespaces/kube-system/services/elasticsearch-logging/proxy/`로 접근할 수 있다. 예를 들어 kubectl proxy로
278
-
`http://localhost:8080/api/v1/namespaces/kube-system/services/elasticsearch-logging/proxy/`를 통해 logging에 접근할 수도 있다.
279
-
(인증을 통과하는 방법이나 kubectl proxy를 사용하는 것은 [쿠버네티스 API를 사용해서 클러스터에 접근하기](/ko/docs/tasks/administer-cluster/access-cluster-api/)을 참조한다.)
280
-
281
-
#### 수작업으로 apiserver proxy URL을 구축
282
-
283
-
위에서 언급한 것처럼 서비스의 proxy URL을 검색하는 데 `kubectl cluster-info` 커맨드를 사용할 수 있다. 서비스 endpoint, 접미사, 매개변수를 포함하는 proxy URL을 생성하려면 해당 서비스에
284
-
`http://`*`kubernetes_master_address`*`/api/v1/namespaces/`*`namespace_name`*`/services/`*`service_name[:port_name]`*`/proxy` 형식의 proxy URL을 덧붙인다.
285
-
286
-
당신이 포트에 이름을 지정하지 않았다면 URL에 *port_name* 을 지정할 필요는 없다. 이름이 있는 포트와 이름이 없는 포트 모두에 대하여, *port_name* 이 들어갈 자리에 포트 번호를 기재할 수도 있다.
287
-
288
-
기본적으로 API server는 http를 사용하여 서비스를 프록시한다. https를 사용하려면 다음과 같이 서비스 네임의 접두사에 `https:`를 붙인다.
*`<service_name>` - http를 사용하여 기본값 또는 이름이 없는 포트로 프록시한다.
294
-
*`<service_name>:<port_name>` - http를 사용하여 지정된 포트 이름 또는 포트 번호로 프록시한다.
295
-
*`https:<service_name>:` - https를 사용하여 기본값 또는 이름이 없는 포트로 프록시한다. (마지막 콜론:에 주의)
296
-
*`https:<service_name>:<port_name>` - https를 사용하여 지정된 포트 이름 또는 포트 번호로 프록시한다.
297
-
298
-
##### 예제들
299
-
300
-
* Elasticsearch 서비스 endpoint `_search?q=user:kimchy`에 접근하려면 `http://104.197.5.247/api/v1/namespaces/kube-system/services/elasticsearch-logging/proxy/_search?q=user:kimchy`를 사용할 수 있다.
301
-
* Elasticsearch 클러스터 상태 정보 `_cluster/health?pretty=true`에 접근하려면 `https://104.197.5.247/api/v1/namespaces/kube-system/services/elasticsearch-logging/proxy/_cluster/health?pretty=true`를 사용할 수 있다.
302
-
303
-
```json
304
-
{
305
-
"cluster_name" : "kubernetes_logging",
306
-
"status" : "yellow",
307
-
"timed_out" : false,
308
-
"number_of_nodes" : 1,
309
-
"number_of_data_nodes" : 1,
310
-
"active_primary_shards" : 5,
311
-
"active_shards" : 5,
312
-
"relocating_shards" : 0,
313
-
"initializing_shards" : 0,
314
-
"unassigned_shards" : 5
315
-
}
316
-
```
317
-
318
-
### 클러스터 상에서 실행되는 서비스에 웹브라우저를 사용하여 접근
319
-
320
-
브라우저의 주소창에 apiserver proxy url을 넣을 수도 있다. 하지만
321
-
322
-
- 웹브라우저는 일반적으로 토큰을 전달할 수 없으므로 basic (password) auth를 사용해야 할 것이다. basic auth를 수용할 수 있도록 apiserver를 구성할 수 있지만,
323
-
당신의 클러스터가 basic auth를 수용할 수 있도록 구성되어 있지 않을 수도 있다.
324
-
- 몇몇 web app은 동작하지 않을 수도 있다. 특히 proxy path prefix를 인식하지 않는 방식으로 url을
325
-
구성하는 client side javascript를 가진 web app은 동작하지 않을 수 있다.
326
-
327
-
## 요청 redirect
219
+
## redirect 요청하기
328
220
329
221
redirect 기능은 deprecated되고 제거 되었다. 대신 (아래의) 프록시를 사용하기를 바란다.
0 commit comments