Skip to content

Commit 39c8293

Browse files
committed
Update outdated files in dev-1.20-ko.7 (p2)
1 parent ca2219f commit 39c8293

File tree

5 files changed

+196
-51
lines changed

5 files changed

+196
-51
lines changed
Lines changed: 182 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,23 @@
11
---
2-
title: 컨피그 맵을 사용해서 Redis 설정하기
2+
3+
4+
5+
title: 컨피그맵을 사용해서 Redis 설정하기
36
content_type: tutorial
47
---
58

69
<!-- overview -->
710

8-
이 페이지에서는 컨피그 맵을 사용해서 Redis를 설정하는 방법에 대한 실세계 예제를 제공하고, [컨피그 맵을 사용해서 컨테이너 설정하기](/docs/tasks/configure-pod-container/configure-pod-configmap/) 태스크로 빌드를 한다.
11+
이 페이지에서는 컨피그맵(ConfigMap)을 사용해서 Redis를 설정하는 방법에 대한 실세계 예제를 제공하고, [컨피그맵을 사용해서 컨테이너 설정하기](/docs/tasks/configure-pod-container/configure-pod-configmap/) 태스크로 빌드를 한다.
912

1013

1114

1215
## {{% heading "objectives" %}}
1316

1417

15-
* 다음을 포함하는 `kustomization.yaml` 파일을 생성한다.
16-
* 컨피그 맵 생성자
17-
* 컨피그 맵을 사용하는 파드 리소스
18-
* `kubectl apply -k ./`를 실행하여 작업한 디렉터리를 적용한다.
19-
* 구성이 잘 적용되었는지 확인한다.
18+
* Redis 설정값으로 컨피그맵을 생성한다.
19+
* 생성된 컨피그맵을 마운트하고 사용하는 Redis 파드를 생성한다.
20+
* 설정이 잘 적용되었는지 확인한다.
2021

2122

2223

@@ -26,91 +27,227 @@ content_type: tutorial
2627
{{< include "task-tutorial-prereqs.md" >}} {{< version-check >}}
2728

2829
* 예시는 `kubectl` 1.14 이상 버전에서 동작한다.
29-
* [컨피그 맵을 사용해서 컨테이너 설정하기](/docs/tasks/configure-pod-container/configure-pod-configmap/)를 이해한다.
30+
* [컨피그맵을 사용해서 컨테이너 설정하기](/docs/tasks/configure-pod-container/configure-pod-configmap/)를 이해한다.
3031

3132

3233

3334
<!-- lessoncontent -->
3435

3536

36-
## 실세상 예제: 컨피그 맵을 사용해서 Redis 설정하기
37-
38-
아래의 단계를 통해서 컨피그 맵에 저장된 데이터를 사용해서 Redis 캐시를 설정할 수 있다.
37+
## 실세상 예제: 컨피그맵을 사용해서 Redis 설정하기
3938

40-
첫째, `redis-config` 파일에서 컨피그 맵을 포함한 `kustomization.yaml`를 생성한다.
39+
아래 단계를 통해서, 컨피그맵에 저장된 데이터를 사용하는 Redis 캐시를 설정한다.
4140

42-
{{< codenew file="pods/config/redis-config" >}}
41+
우선, 비어 있는 설정으로 컨피그맵을 생성한다.
4342

4443
```shell
45-
curl -OL https://k8s.io/examples/pods/config/redis-config
46-
47-
cat <<EOF >./kustomization.yaml
48-
configMapGenerator:
49-
- name: example-redis-config
50-
files:
51-
- redis-config
44+
cat <<EOF >./example-redis-config.yaml
45+
apiVersion: v1
46+
kind: ConfigMap
47+
metadata:
48+
name: example-redis-config
49+
data:
50+
redis-config: ""
5251
EOF
5352
```
5453

55-
`kustomization.yaml`에 파드 리소스 구성을 추가한다.
54+
위에서 생성한 컨피그맵을 Redis 파드 매니페스트와 함께 적용한다.
55+
56+
```shell
57+
kubectl apply -f example-redis-config.yaml
58+
kubectl apply -f https://raw.githubusercontent.com/kubernetes/website/master/content/en/examples/pods/config/redis-pod.yaml
59+
```
60+
61+
Redis 파드 매니페스트의 내용을 검토하고 다음의 사항을 염두에 둔다.
62+
63+
* `config` 라는 이름의 볼륨은 `spec.volumes[1]` 에 의해서 생성된다.
64+
* `spec.volumes[1].items[0]` 내부의 `key``path``config` 볼륨에 `redis.conf` 라는 파일명으로 지정된
65+
`example-redis-config` 컨피그맵의 `redis-config` 키를 노출시킨다.
66+
* 그리고 `config` 볼륨은 `spec.containers[0].volumeMounts[1]` 에 의해서 `/redis-master` 에 마운트된다.
67+
68+
이 내용은 위의 `example-redis-config` 컨피그맵의 `data.redis-config` 내부 데이터를 파드 안에 있는
69+
`/redis-master/redis.conf` 파일의 내용으로 노출시키는 순효과(net effect)를 낸다.
5670

5771
{{< codenew file="pods/config/redis-pod.yaml" >}}
5872

73+
생성된 오브젝트를 확인한다.
74+
5975
```shell
60-
curl -OL https://raw.githubusercontent.com/kubernetes/website/master/content/en/examples/pods/config/redis-pod.yaml
76+
kubectl get pod/redis configmap/example-redis-config
77+
```
6178

62-
cat <<EOF >>./kustomization.yaml
63-
resources:
64-
- redis-pod.yaml
65-
EOF
79+
다음의 결과를 볼 수 있다.
80+
81+
```shell
82+
NAME READY STATUS RESTARTS AGE
83+
pod/redis 1/1 Running 0 8s
84+
85+
NAME DATA AGE
86+
configmap/example-redis-config 1 14s
6687
```
6788

68-
컨피그 맵과 파드 오브젝트를 생성하도록 kustomization 디렉터리를 적용한다.
89+
`example-redis-config` 컨피그맵의 `redis-config` 키를 공란으로 둔 것을 기억하자.
6990

7091
```shell
71-
kubectl apply -k .
92+
kubectl describe configmap/example-redis-config
7293
```
7394

74-
생성된 오브젝트를 확인한다.
95+
`redis-config` 키가 비어 있는 것을 확인할 수 있다.
96+
7597
```shell
76-
> kubectl get -k .
77-
NAME DATA AGE
78-
configmap/example-redis-config-dgh9dg555m 1 52s
98+
Name: example-redis-config
99+
Namespace: default
100+
Labels: <none>
101+
Annotations: <none>
102+
103+
Data
104+
====
105+
redis-config:
106+
```
79107

80-
NAME READY STATUS RESTARTS AGE
81-
pod/redis 1/1 Running 0 52s
108+
`kubectl exec` 를 사용하여 파드에 접속하고, 현재 설정 확인을 위해서 `redis-cli` 도구를 실행한다.
109+
110+
```shell
111+
kubectl exec -it redis -- redis-cli
82112
```
83113

84-
이 예제에서는 설정 볼륨이 `/redis-master`에 마운트되어 있다.
85-
`redis-config` 키를 `redis.conf`라는 이름의 파일에 추가하기 위해 `path`를 사용한다.
86-
따라서, Redis 설정을 위한 파일 경로는 `/redis-master/redis.conf`이다.
87-
이곳이 이미지가 Redis 마스터를 위한 설정 파일을 찾는 곳이다.
114+
`maxmemory` 를 확인한다.
88115

89-
설정이 올바르게 적용되었는지 확인하기 위해서,
90-
`kubectl exec`를 사용해 파드 속에서 `redis-cli` 툴을 실행해 본다.
116+
```shell
117+
127.0.0.1:6379> CONFIG GET maxmemory
118+
```
119+
120+
기본값인 0을 볼 수 있을 것이다.
121+
122+
```shell
123+
1) "maxmemory"
124+
2) "0"
125+
```
126+
127+
유사하게, `maxmemory-policy` 를 확인한다.
128+
129+
```shell
130+
127.0.0.1:6379> CONFIG GET maxmemory-policy
131+
```
132+
133+
이것도 기본값인 `noeviction` 을 보여줄 것이다.
134+
135+
```shell
136+
1) "maxmemory-policy"
137+
2) "noeviction"
138+
```
139+
140+
이제 `example-redis-config` 컨피그맵에 몇 가지 설정값을 추가해 본다.
141+
142+
{{< codenew file="pods/config/example-redis-config.yaml" >}}
143+
144+
갱신된 컨피그맵을 적용한다.
145+
146+
```shell
147+
kubectl apply -f example-redis-config.yaml
148+
```
149+
150+
컨피그맵이 갱신된 것을 확인한다.
151+
152+
```shell
153+
kubectl describe configmap/example-redis-config
154+
```
155+
156+
방금 추가한 설정값을 확인할 수 있을 것이다.
157+
158+
```shell
159+
Name: example-redis-config
160+
Namespace: default
161+
Labels: <none>
162+
Annotations: <none>
163+
164+
Data
165+
====
166+
redis-config:
167+
----
168+
maxmemory 2mb
169+
maxmemory-policy allkeys-lru
170+
```
171+
172+
설정이 적용되었는지 확인하려면, `kubectl exec` 를 통한 `redis-cli` 로 Redis 파드를 다시 확인한다.
91173

92174
```shell
93175
kubectl exec -it redis -- redis-cli
176+
```
177+
178+
`maxmemory` 를 확인한다.
179+
180+
```shell
94181
127.0.0.1:6379> CONFIG GET maxmemory
182+
```
183+
184+
기본값인 0을 볼 수 있을 것이다.
185+
186+
```shell
95187
1) "maxmemory"
96-
2) "2097152"
188+
2) "0"
189+
```
190+
191+
유사하게, `maxmemory-policy` 도 기본 설정인 `noeviction` 을 보여줄 것이다.
192+
193+
```shell
97194
127.0.0.1:6379> CONFIG GET maxmemory-policy
195+
```
196+
197+
위의 명령은 다음을 반환한다.
198+
199+
```shell
98200
1) "maxmemory-policy"
99-
2) "allkeys-lru"
201+
2) "noeviction"
100202
```
101203

102-
생성된 파드를 삭제한다.
204+
파드는 연관된 컨피그맵에서 갱신된 값을 인지하기 위해서 재시작이 필요하므로
205+
해당 설정값이 변경되지 않은 상태이다. 파드를 삭제하고 다시 생성한다.
206+
103207
```shell
104208
kubectl delete pod redis
209+
kubectl apply -f https://raw.githubusercontent.com/kubernetes/website/master/content/en/examples/pods/config/redis-pod.yaml
210+
```
211+
212+
이제 마지막으로 설정값을 다시 확인해 본다.
213+
214+
```shell
215+
kubectl exec -it redis -- redis-cli
105216
```
106217

218+
`maxmemory` 를 확인한다.
107219

220+
```shell
221+
127.0.0.1:6379> CONFIG GET maxmemory
222+
```
108223

109-
## {{% heading "whatsnext" %}}
224+
이것은 이제 갱신된 값인 2097152를 반환한다.
225+
226+
```shell
227+
1) "maxmemory"
228+
2) "2097152"
229+
```
110230

231+
유사하게, `maxmemory-policy` 도 갱신되어 있다.
111232

112-
* [컨피그 맵](/docs/tasks/configure-pod-container/configure-pod-configmap/) 배우기.
233+
```shell
234+
127.0.0.1:6379> CONFIG GET maxmemory-policy
235+
```
113236

237+
이것은 원하는 값인 `allkeys-lru` 를 반환한다.
114238

239+
```shell
240+
1) "maxmemory-policy"
241+
2) "allkeys-lru"
242+
```
243+
244+
생성된 자원을 삭제하여 작업을 정리한다.
245+
246+
```shell
247+
kubectl delete pod/redis configmap/example-redis-config
248+
```
249+
250+
## {{% heading "whatsnext" %}}
115251

116252

253+
* [컨피그맵](/docs/tasks/configure-pod-container/configure-pod-configmap/) 배우기.

content/ko/docs/tutorials/kubernetes-basics/expose/expose-intro.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ <h3>쿠버네티스 서비스들에 대한 개요</h3>
3737
<li><i>ClusterIP</i> (기본값) - 클러스터 내에서 내부 IP 에 대해 서비스를 노출해준다. 이 방식은 오직 클러스터 내에서만 서비스가 접근될 수 있도록 해준다.</li>
3838
<li><i>NodePort</i> - NAT가 이용되는 클러스터 내에서 각각 선택된 노드들의 동일한 포트에 서비스를 노출시켜준다. <code>&lt;NodeIP&gt;:&lt;NodePort&gt;</code>를 이용하여 클러스터 외부로부터 서비스가 접근할 수 있도록 해준다. ClusterIP의 상위 집합이다.</li>
3939
<li><i>LoadBalancer</i> - (지원 가능한 경우) 기존 클라우드에서 외부용 로드밸런서를 생성하고 서비스에 고정된 공인 IP를 할당해준다. NodePort의 상위 집합이다. </li>
40-
<li><i>ExternalName</i> - 이름으로 CNAME 레코드를 반환함으로써 임의의 이름(스펙에서 <code>externalName</code>으로 명시)을 이용하여 서비스를 노출시켜준다. 프록시는 사용되지 않는다. 이 방식은 <code>kube-dns</code> 버전 1.7 이상에서 지원 가능하다.</li>
40+
<li><i>ExternalName</i> - <code>CNAME</code> 레코드 및 값을 반환함으로써 서비스를 <code>externalName</code> 필드의 내용(예를 들면, `foo.bar.example.com`)에 매핑한다. 어떠한 종류의 프록시도 설정되지 않는다. 이 방식은 <code>kube-dns</code> v1.7 이상 또는 CoreDNS 버전 0.0.8 이상을 필요로 한다.</li>
4141
</ul>
4242
<p>다른 서비스 타입들에 대한 추가 정보는 <a href="/ko/docs/tutorials/services/source-ip/">소스 IP 이용하기</a> 튜토리얼에서 확인 가능하다. 또한 <a href="/docs/concepts/services-networking/connect-applications-service">서비스들로 애플리케이션에 접속하기</a>도 참고해 보자.</p>
4343
<p>부가적으로, spec에 <code>selector</code>를 정의하지 않고 말아넣은 서비스들의 몇 가지 유즈케이스들이 있음을 주의하자. <code>selector</code> 없이 생성된 서비스는 상응하는 엔드포인트 오브젝트들 또한 생성하지 않는다. 이로써 사용자들로 하여금 하나의 서비스를 특정한 엔드포인트에 매핑 시킬수 있도록 해준다. selector를 생략하게 되는 또 다른 가능성은 여러분이 <code>type: ExternalName</code>을 이용하겠다고 확고하게 의도하는 경우이다.</p>

content/ko/docs/tutorials/stateless-application/expose-external-ip-address.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ weight: 10
1111

1212
## {{% heading "prerequisites" %}}
1313

14-
* [kubectl](/ko/docs/tasks/tools/install-kubectl/)을 설치한다.
14+
* [kubectl](/ko/docs/tasks/tools/)을 설치한다.
1515
* Google Kubernetes Engine 또는 Amazon Web Services와 같은 클라우드 공급자를 사용하여
1616
쿠버네티스 클러스터를 생성한다. 이 튜토리얼은
1717
[외부 로드 밸런서](/docs/tasks/access-application-cluster/create-external-load-balancer/)를 생성하는데,

content/ko/docs/tutorials/stateless-application/guestbook.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
---
22
title: "예시: MongoDB를 사용한 PHP 방명록 애플리케이션 배포하기"
3+
4+
35
content_type: tutorial
46
weight: 20
57
card:
@@ -15,8 +17,6 @@ min-kubernetes-server-version: v1.14
1517
* 방명록을 저장하는 단일 인스턴스 [MongoDB](https://www.mongodb.com/)
1618
* 여러 개의 웹 프론트엔드 인스턴스
1719

18-
19-
2020
## {{% heading "objectives" %}}
2121

2222
* Mongo 데이터베이스를 시작
@@ -87,6 +87,7 @@ kubectl apply -f ./content/en/examples/application/guestbook/mongo-deployment.ya
8787
```shell
8888
kubectl apply -f https://k8s.io/examples/application/guestbook/mongo-service.yaml
8989
```
90+
9091
<!--
9192
컨텐츠에 대한 로컬 테스트는 파일의 상대경로로 한다.
9293
kubectl apply -f ./content/en/examples/application/guestbook/mongo-service.yaml
@@ -103,7 +104,7 @@ kubectl apply -f ./content/en/examples/application/guestbook/mongo-service.yaml
103104
```shell
104105
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
105106
kubernetes ClusterIP 10.0.0.1 <none> 443/TCP 1m
106-
mongo ClusterIP 10.0.0.151 <none> 6379/TCP 8s
107+
mongo ClusterIP 10.0.0.151 <none> 27017/TCP 8s
107108
```
108109

109110
{{< note >}}
@@ -289,7 +290,6 @@ kubectl apply -f ./content/en/examples/application/guestbook/frontend-service.ya
289290
deployment.apps "mongo" deleted
290291
service "mongo" deleted
291292
deployment.apps "frontend" deleted
292-
deployment.apps "frontend" deleted
293293
service "frontend" deleted
294294
```
295295

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
apiVersion: v1
2+
kind: ConfigMap
3+
metadata:
4+
name: example-redis-config
5+
data:
6+
redis-config: |
7+
maxmemory 2mb
8+
maxmemory-policy allkeys-lru

0 commit comments

Comments
 (0)