Skip to content

Commit 06e7708

Browse files
committed
docs: fix typos and add reference links in quick start guide
1 parent c5d5d29 commit 06e7708

File tree

1 file changed

+43
-3
lines changed

1 file changed

+43
-3
lines changed

contents/posts/envoy/quick-start-envoy.mdx

Lines changed: 43 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ envoy 의 주요 컴포넌트 구조와 트래픽 처리 흐름(Listener -> filt
1616

1717
### Envoy 컴포넌트 구조
1818

19+
---
20+
1921
<Tabs>
2022
<Tab label="Basic">
2123
<div style={{ textAlign: 'center' }}>
@@ -52,6 +54,11 @@ envoy 의 주요 컴포넌트 구조와 트래픽 처리 흐름(Listener -> filt
5254
* 주요 기능은 raw byte 를 HTTP 메시지로 Convert 를 담당하고,
5355
* HTTP Header 조작, Retry 설정, Redirect, Timeout
5456
* 내부적으로 HTTP L7 Filter 들이 존재하여 부가적인 작업을 수행한다.
57+
58+
:::quote
59+
<b>Reference</b>
60+
https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/http_filters
61+
:::
5562
</Tab>
5663
<Tab label="Cluster">
5764
:::success
@@ -96,6 +103,12 @@ envoy 의 주요 컴포넌트 구조와 트래픽 처리 흐름(Listener -> filt
96103
- 원래 목적지
97104
:::
98105
106+
:::quote
107+
<b>Reference</b>
108+
https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/cluster/v3/cluster.proto
109+
https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/upstream/service_discovery
110+
:::
111+
99112
<BlueText>Cluster - Connection Pool</BlueText> <br/>
100113
* Cluster 는 Connection Pool 관리 기능도 수행한다.
101114
@@ -108,8 +121,8 @@ envoy 의 주요 컴포넌트 구조와 트래픽 처리 흐름(Listener -> filt
108121
```yaml
109122
"connect_timeout": "5s", ### Tomcat / Netty connection timeout 보다 작게 설정한다. (기본 값 5초)
110123
"typed_extension_protocol_options": {
111-
"envoy.extension_protocol_options": {
112-
"@type":"type.googleapis.com/envoy.extensions.upostreams.http.v3.HttpProtocolOptions",
124+
"envoy.extensions.upstreams.http.v3.HttpProtocolOptions": {
125+
"@type":"type.googleapis.com/envoy.extensions.upstreams.http.v3.HttpProtocolOptions",,
113126
"common_http_protocol_options": {
114127
"idle_timeout":"60s"
115128
### Tomcat / Netty idle timeout 설정보다 작게 설정한다.
@@ -122,6 +135,13 @@ envoy 의 주요 컴포넌트 구조와 트래픽 처리 흐름(Listener -> filt
122135
}
123136
}
124137
```
138+
139+
:::quote
140+
<b>Reference</b>
141+
https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/core/v3/protocol.proto#config-core-v3-httpprotocoloptions
142+
https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/core/v3/protocol.proto#config-core-v3-http2protocoloptions
143+
:::
144+
125145
</Tab>
126146
<Tab label="Flow">
127147
:::success
@@ -143,6 +163,14 @@ envoy 의 주요 컴포넌트 구조와 트래픽 처리 흐름(Listener -> filt
143163
* Listener 내부적으로 Listener Filters로 전달하고, Filter Chains를 순회하면서 요청을 처리하는데 적합한 Filter를 찾고 해당 Filter 가 요청을 처리한다.
144164
* Router Filter 는 요청에 적합한 Cluster 를 찾아서 해당 Cluster <BlueText>(Upstream 호스트 집단)</BlueText> 에게 트래픽을 Forwarding 한다.
145165
* Cluster 는 내부에 설정된 로드밸린싱 정책을 고려해서 적합한 Endpoint 를 선정하고, 매칭된 곳으로 트래픽을 전달한다. <BlueText>(To Upstream)</BlueText>
166+
167+
다시 정리하면, 아래의 과정이다.
168+
1. **요청 수신**: Downstream → Envoy Listener (예: 0.0.0.0:8080)
169+
2. **필터 체인 실행**: Listener Filters → Network Filters → HTTP Filters
170+
3. **라우팅 결정**: Router Filter가 Route 규칙에 따라 Cluster 선택
171+
4. **로드밸런싱**: Cluster가 LB 정책으로 Endpoint 선택
172+
5. **요청 전달**: 선택된 Upstream Endpoint로 프록시
173+
6. **응답 반환**: Upstream → Envoy → Downstream
146174
</Tab>
147175
<Tab label="xDS">
148176
* Envoy 컴포넌트(Listener, Cluster, Filter...) 들을 등록하는 방식에는 Static, Dynamic 이 있다.
@@ -152,13 +180,25 @@ envoy 의 주요 컴포넌트 구조와 트래픽 처리 흐름(Listener -> filt
152180
<div style={{ textAlign: 'center' }}>
153181
<img src="/img/post/envoy/xds.png" alt="xds" style={{ display: 'inline-block' }} />
154182
</div>
183+
184+
**주요 xDS API 종류**
185+
- LDS (Listener Discovery Service): Listener 설정
186+
- RDS (Route Discovery Service): Route 설정
187+
- CDS (Cluster Discovery Service): Cluster 설정
188+
- EDS (Endpoint Discovery Service): Endpoint 설정
189+
- SDS (Secret Discovery Service): TLS 인증서 관리
155190
</Tab>
156191
</Tabs>
157192

158193
---
159194

160195
### 📚 Reference
161196

162-
- [Envoy-internals 아키텍쳐 Overview by 북극 펭귄](https://cla9.tistory.com/191)
197+
- [Envoy 공식 문서](https://www.envoyproxy.io/docs/envoy/latest/)
198+
- [Listener](https://www.envoyproxy.io/docs/envoy/latest/configuration/listeners/listeners)
199+
- [Cluster](https://www.envoyproxy.io/docs/envoy/latest/configuration/upstream/cluster_manager/cluster_manager)
200+
- [Routing](https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/http/http_routing)
201+
- [xDS API](https://www.envoyproxy.io/docs/envoy/latest/api-docs/xds_protocol)
202+
- [아키텍처 설명 by 북극 펭귄](https://cla9.tistory.com/191)
163203

164204
<br/><br/>

0 commit comments

Comments
 (0)