์ด ๋ฌธ์์์๋ Gateway API + Istio์ ๊ธฐ๋ณธ ๊ฐ๋ ๊ณผ ์ค์ ์ ์ฉ์ ํ์ํ ๊ตฌ์ฑ ์์๋ค์ ์ค๋ช ํฉ๋๋ค.
Gateway API
Kubernetes SIG Network์์ ๊ฐ๋ฐํ L4/L7 ๋ผ์ฐํ ์ ์ํ ๊ณต์ Kubernetes ํ๋ก์ ํธ์ ๋๋ค.
ํต์ฌ ์ค๊ณ ์์น
- ์ญํ ๊ธฐ๋ฐ (Role-oriented): GatewayClass/Gateway/Route๋ก ๋ฆฌ์์ค๋ฅผ ๋ถ๋ฆฌํ์ฌ ์ญํ ๋ณ ์ฑ ์์ ๋ช ํํ ๊ตฌ๋ถํฉ๋๋ค.
- ์ด์์ฑ (Portable): Istio, Cilium ๋ฑ ๋ค์ํ ๊ตฌํ์ฒด์์ ๋์ผํ CRD๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
- ํํ๋ ฅ (Expressive): ํค๋ ๋งค์นญ, ํธ๋ํฝ ๊ฐ์ค์น ๋ฑ ๊ณ ๊ธ ๊ธฐ๋ฅ์ ๊ธฐ๋ณธ์ผ๋ก ์ง์ํฉ๋๋ค.
- ํ์ฅ์ฑ (Extensible): ๊ตฌํ์ฒด๋ณ๋ก ๋ณ๋ CRD๋ฅผ ์ ์ํ์ฌ ํ์ฅ ๊ฐ๋ฅํฉ๋๋ค. (์: Istio์ VirtualService)
์ฃผ์ ๊ตฌ์ฑ ์์
| ๋ฆฌ์์ค | ๊ด๋ฆฌ ์ฃผ์ฒด | ์ค๋ช |
|---|---|---|
| GatewayClass | Infrastructure Provider | ์ด๋ค Gateway ๊ตฌํ์ฒด(Istio, Cilium ๋ฑ)๋ฅผ ์ฌ์ฉํ ์ง ์ ์ |
| Gateway | DevOps Engineer | ํฌํธ, ๋๋ฉ์ธ, TLS ๋ฑ ์ธํ๋ผ ์์ค ์ค์ |
| HTTPRoute | Software Engineer | ์์ ์ ์ฑ์ผ๋ก ํธ๋ํฝ์ ๋ผ์ฐํ ํ๋ ๊ท์น ์ ์ |
| GRPCRoute | Software Engineer | gRPC ํธ๋ํฝ์ด ํ์ํ ๊ฒฝ์ฐ |
| TCPRoute/UDPRoute | Software Engineer | L4 ํธ๋ํฝ ์ฒ๋ฆฌ๊ฐ ํ์ํ ๊ฒฝ์ฐ (Alpha) |
Ingress์์ ๋น๊ต
| ํญ๋ชฉ | Ingress | Gateway API |
|---|---|---|
| ์ญํ ๋ถ๋ฆฌ | ๋จ์ผ ๋ฆฌ์์ค์ ๋ชจ๋ ์ค์ ํผ์ฌ | GatewayClass/Gateway/Route๋ก ์ฑ ์ ๋ถ๋ฆฌ |
| ํ๋กํ ์ฝ | HTTP, HTTPS | HTTP, HTTPS, gRPC, TCP, UDP |
| ๋ผ์ฐํ | ๊ธฐ๋ณธ ๊ฒฝ๋ก ๊ธฐ๋ฐ | ํค๋, ๊ฐ์ค์น, ๋ฉ์๋ ๋ฑ ๊ณ ๊ธ ๋ผ์ฐํ |
| Canary ๋ฐฐํฌ | Annotation ํ์ | weight ํ๋๊ฐ ํ์ค ์คํ์ด๋ฏ๋ก ๋ฐ๋ก ํธ๋ํฝ ๋ถ๋ฐฐ ๊ฐ๋ฅ |
| ์ด์์ฑ | Annotation์ด ๊ตฌํ์ฒด๋ง๋ค ๋ค๋ฆ | ํต์ฌ ๊ธฐ๋ฅ์ ํ์ค CRD, ๊ณ ๊ธ ๊ธฐ๋ฅ๋ง ์ถ๊ฐ CRD ์ ์๋ก ํ์ฅ |
| Cross-NS Route Attachment | ๋ฏธ์ง์ | ๋ค๋ฅธ NS์ Gateway์ Route ์ฐ๊ฒฐ ๊ฐ๋ฅ1 |
| Cross-NS Backend Reference | ๋ฏธ์ง์ | ๋ค๋ฅธ NS์ Service๋ฅผ backendRef๋ก ์ฐธ์กฐ ๊ฐ๋ฅ2 |
Ingress API ์์ฒด๋ feature-frozen ์ํ์ด๋ฉฐ, Ingress NGINX๋ 2026๋ 3์ EOL ์์ ์ ๋๋ค.3 ์ ๊ท ํ๋ก์ ํธ๋ Gateway API๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ๊ถ์ฅ๋ฉ๋๋ค.
Istio
Service Mesh์ ๋ํ์ ์ธ ๊ตฌํ์ฒด๋ก, CNCF Graduated ํ๋ก์ ํธ์ ๋๋ค.
ํต์ฌ ๊ธฐ๋ฅ:
- ํธ๋ํฝ ๊ด๋ฆฌ: ์ฌ์๋, ํ์์์, ์ํท๋ธ๋ ์ด์ปค, ํธ๋ํฝ ๋ถํ ๋ฑ
- ๋ณด์: mTLS ์ํธํ, ์ธ์ฆ/์ธ๊ฐ, ์ ์ฑ ์ผ๊ด์ฑ ์๋ ์ ์ฉ
- ๊ด์ธก์ฑ: ๋ฉํธ๋ฆญ/ํธ๋ ์ด์ฑ/๋ก๊น
๋ค๋ฅธ ๊ตฌํ์ฒด์์ ๋น๊ต
| ํญ๋ชฉ | Istio | Linkerd | Cilium Service Mesh |
|---|---|---|---|
| ํ๋ก์ | Envoy (L7 ํ์คํ) | linkerd2-proxy (๊ฒฝ๋) | eBPF (์ปค๋ ๋ ๋ฒจ) |
| ๊ธฐ๋ฅ ๋ฒ์ | ๊ฐ์ฅ ํ๋ถ | ์ฌํํจ ์ฐ์ | ๋คํธ์ํฌ ์ฑ๋ฅ ์ฐ์ |
| ๋ณต์ก๋ | ๋์ | ๋ฎ์ | ์ค๊ฐ |
| Ambient Mode | ์ง์ | ๋ฏธ์ง์ | ๊ธฐ๋ณธ์ด Sidecarless |
Istio๋ฅผ ์ ํํ๋ ์ด์ :
- ๊ฐ์ฅ ์ฑ์ํ๊ณ ๊ธฐ๋ฅ์ด ํ๋ถํจ (CNCF Graduated)
- ๋ฉํฐํด๋ฌ์คํฐ, VM ์ํฌ๋ก๋ ๋ฑ ๋ค์ํ ํ๊ฒฝ ์ง์
- Ambient Mode๋ก Sidecar ๋ฐฉ์์ ๋จ์ ํด๊ฒฐ
Ambient Mode
๊ธฐ์กด Sidecar ๋ฐฉ์์ ๋จ์ ์ ํด๊ฒฐํ ๋ฐ์ดํฐ ํ๋ ์ธ ์ํคํ ์ฒ์ ๋๋ค. Pod๋ง๋ค Envoy sidecar๋ฅผ ์ฃผ์ ํ๋ ๋์ , ๋ ธ๋ ๋ ๋ฒจ L4 ํ๋ก์(ztunnel)์ ์ ํ์ L7 ํ๋ก์(Waypoint)๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์ฅ์ :
- ๋ฎ์ ๋ฆฌ์์ค ์๋น: ๋ ธ๋๋น ํ๋์ ztunnel๋ก CPU/๋ฉ๋ชจ๋ฆฌ ์ ๊ฐ
- ๊ฐ์ํ๋ ์ด์: Pod์ ๋ ๋ฆฝ๋ ํ๋ก์๋ก ์ด์๋๋ฉฐ, ์ญํ ๊ณผ ์๋ช ์ฃผ๊ธฐ๋ฅผ ์์ ํ ๋ถ๋ฆฌ
- ์ ์ง์ ๋์ ๊ฐ๋ฅ: L4, L7 ํ๋ก์๋ฅผ ์ ํ์ ์ผ๋ก ์ถ๊ฐํ์ฌ ์ ์ง์ ์ผ๋ก ๋์ ๊ฐ๋ฅ
์ํคํ ์ฒ
Istio๋ ์ปจํธ๋กค ํ๋ ์ธ๊ณผ ๋ฐ์ดํฐ ํ๋ ์ธ์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. ์ปจํธ๋กค ํ๋ ์ธ์ ์ ์ฑ ๊ณผ ์ค์ ์ ๊ด๋ฆฌํ๊ณ ๋ฐ์ดํฐ ํ๋ ์ธ์ผ๋ก ์ ๋ฌํ๋ฉฐ, istiod๊ฐ ๊ทธ ์ญํ ์ ์ํํฉ๋๋ค. ๋ฐ์ดํฐ ํ๋ ์ธ์ ztunnel(L4)๊ณผ waypoint(L7)๋ก ๊ตฌ์ฑ๋๋ฉฐ, ์ค์ ๋ก ํธ๋ํฝ์ ์ฒ๋ฆฌํ๊ฒ ๋ฉ๋๋ค.
flowchart TB subgraph ControlPlane["์ปจํธ๋กค ํ๋ ์ธ"] istiod["istiod<br/>(์ค์ ๋ฐฐํฌ, ์ธ์ฆ์ ๊ด๋ฆฌ, ์๋น์ค ๋์ค์ปค๋ฒ๋ฆฌ)"] end subgraph DataPlane["๋ฐ์ดํฐ ํ๋ ์ธ (Ambient Mode)"] ztunnel["ztunnel<br/>(L4: mTLS, ์ธ์ฆ/์ธ๊ฐ)"] waypoint["Waypoint Proxy<br/>(L7: HTTP ์ ์ฑ , ํ ๋ ๋ฉํธ๋ฆฌ)"] end subgraph App["์ ํ๋ฆฌ์ผ์ด์ "] pod1["Pod A"] pod2["Pod B"] end istiod -->|์ค์ /์ธ์ฆ์ ์ ๋ฌ| ztunnel istiod -->|์ค์ /์ธ์ฆ์ ์ ๋ฌ| waypoint pod1 <-->|ํธ๋ํฝ| ztunnel pod2 <-->|ํธ๋ํฝ| ztunnel ztunnel <-->|L7 ํ์์| waypoint
์ฃผ์ CRD
| CRD | ์ฉ๋ |
|---|---|
| VirtualService | ํธ๋ํฝ ๋ผ์ฐํ ๊ท์น (์ฌ์๋, ํ์์์, ํธ๋ํฝ ๋ถํ ๋ฑ) |
| DestinationRule | ๋ฐฑ์๋ ์ ์ฑ (๋ก๋๋ฐธ๋ฐ์ฑ, ์ํท๋ธ๋ ์ด์ปค, ์ฐ๊ฒฐ ํ ์ค์ ๋ฑ) |
| AuthorizationPolicy | ์ ๊ทผ ์ ์ด (์ด๋ค ์๋น์ค๊ฐ ์ด๋ค ์๋น์ค๋ฅผ ํธ์ถํ ์ ์๋์ง) |
| PeerAuthentication | mTLS ๋ชจ๋ ์ค์ (STRICT, PERMISSIVE ๋ฑ) |
| RequestAuthentication | JWT ๊ฒ์ฆ ๋ฑ ์์ฒญ ์์ค ์ธ์ฆ |
| EnvoyFilter | Envoy ์ ์์ค ์ค์ (์ตํ์ ์๋จ, ์๋ ์ฐธ๊ณ ) |
EnvoyFilter ์ฌ์ฉ ์ ์ฃผ์์ฌํญ
EnvoyFilter๋ ํ์ค CRD๋ก ํํํ ์ ์๋ Envoy ์ ์์ค ์ค์ ์ด ํ์ํ ๋ ์ ํ์ ์ผ๋ก ์ฌ์ฉํฉ๋๋ค.
๋ถ๊ฐํผํ๊ฒ ์ฌ์ฉํด์ผ ํ๋ ๊ฒฝ์ฐ:
| ์ํฉ | ์์ |
|---|---|
| ์์ฒญ ๋ณธ๋ฌธ ํฌ๊ธฐ ์ ํ | max_request_bytes ์ค์ |
| ์ปค์คํ ํค๋ ์กฐ์ | ํน์ ์กฐ๊ฑด์์๋ง ํค๋ ์ถ๊ฐ/์ญ์ |
| Rate Limiting | Envoy์ local/global rate limit ํํฐ |
| Lua/WASM ํ๋ฌ๊ทธ์ธ | ๋ณต์กํ ์์ฒญ/์๋ต ๋ณํ ๋ก์ง |
์ฃผ์์ฌํญ:
- ๋ฒ์ ํธํ์ฑ: Istio/Envoy ์ ๊ทธ๋ ์ด๋ ์ EnvoyFilter๊ฐ ๊นจ์ง ์ ์์. ์ ๊ทธ๋ ์ด๋ ํ ๋ฐ๋์ ํ ์คํธ ํ์
- Ambient Mode ์ ์ฝ: ztunnel์ Envoy๊ฐ ์๋๋ฏ๋ก EnvoyFilter ์ ์ฉ ๋ถ๊ฐ. Waypoint Proxy์๋ง ์ ์ฉ ๊ฐ๋ฅ
- ๋๋ฒ๊น ์ด๋ ค์: ํ์ค CRD์ EnvoyFilter๊ฐ ์์ด๋ฉด ๋ฌธ์ ์ถ์ ์ด ๋ณต์กํด์ง
Helm Charts
| Chart | ์ค๋ช |
|---|---|
istio-base | Istio CRD ๋ฐ ํด๋ฌ์คํฐ ๋ ๋ฒจ ๋ฆฌ์์ค ์ค์น |
istiod | ์ปจํธ๋กค ํ๋ ์ธ (istiod) ์ค์น |
istio-cni | CNI ํ๋ฌ๊ทธ์ธ - Pod ๋คํธ์ํฌ ์ค์ ๋ด๋น |
ztunnel | Ambient Mode L4 ํ๋ก์ DaemonSet |
istio-gateway | Gateway ๊ตฌํ์ฒด (์ธ๋ถ ํธ๋ํฝ ์ฒ๋ฆฌ ์ ํ์) |
Gateway API + Istio ํจ๊ป ์ฌ์ฉํ๊ธฐ
VirtualService vs HTTPRoute
| ํญ๋ชฉ | HTTPRoute (Gateway API) | VirtualService (Istio) |
|---|---|---|
| ํ์คํ | Kubernetes ํ์ค | Istio ์ ์ฉ |
| ์ ์ฉ ๋ฒ์ | North-South (์ธ๋ถโ๋ด๋ถ) | North-South + East-West (๋ด๋ถโ๋ด๋ถ) |
| ์ด์์ฑ | ๋ค๋ฅธ ๊ตฌํ์ฒด๋ก ์ด๋ ๊ฐ๋ฅ | Istio์ ์ข ์ |
| ๊ธฐ๋ฅ | ๋ผ์ฐํ , ํธ๋ํฝ ๋ถํ , ํค๋ ๋งค์นญ | HTTPRoute์ ๊ธฐ๋ฅ + ์ฌ์๋, ํ์์์, fault injection ๋ฑ |
์์ฝํ๋ฉด ๊ธฐ๋ฅ์ ์ผ๋ก๋ VirtualService๊ฐ ๋ ํ๋ถํ์ง๋ง, ํ์คํ๋ ๋ค๋ฅธ Gateway API ๊ตฌํ์ฒด๋ก ์ด์ ๊ณํ์ด ์๋ค๋ฉด HTTPRoute๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ๋์ ์ ์์ต๋๋ค.
CORS ์ค์
Istio + Gateway API ํ๊ฒฝ์์ CORS๋ฅผ ์ค์ ํ๋ ๋ฐฉ๋ฒ์ ์ฌ๋ฌ ๊ฐ์ง๊ฐ ์์ต๋๋ค.
Istio VirtualService (๊ถ์ฅ)
Istio ํ๊ฒฝ์์ ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ๋ฐฉ๋ฒ์
๋๋ค. VirtualService์ corsPolicy ํ๋๋ฅผ ์ฌ์ฉํฉ๋๋ค.
apiVersion: networking.istio.io/v1
kind: VirtualService
metadata:
name: my-service
spec:
hosts:
- my-service.example.com
http:
- corsPolicy:
allowOrigins:
- exact: https://app.example.com
- regex: "https://.*\\.example\\.com"
allowMethods:
- GET
- POST
- PUT
- DELETE
- OPTIONS
allowHeaders:
- Authorization
- Content-Type
- X-Custom-Header
exposeHeaders:
- X-Response-Header
maxAge: "24h"
allowCredentials: true
route:
- destination:
host: my-service.default.svc.cluster.local์ฃผ์ ํ๋:
| ํ๋ | ์ค๋ช |
|---|---|
allowOrigins | ํ์ฉํ Origin ๋ชฉ๋ก (exact, prefix, regex ๋งค์นญ ์ง์) |
allowMethods | ํ์ฉํ HTTP ๋ฉ์๋ |
allowHeaders | ์์ฒญ์์ ํ์ฉํ ํค๋ |
exposeHeaders | ํด๋ผ์ด์ธํธ์ ๋ ธ์ถํ ์๋ต ํค๋ |
maxAge | Preflight ์๋ต ์บ์ ์๊ฐ |
allowCredentials | ์ฟ ํค/์ธ์ฆ ์ ๋ณด ํฌํจ ์ฌ๋ถ (true์ผ ๊ฒฝ์ฐ ์์ผ๋์นด๋ ์ฌ์ฉ ๋ถ๊ฐ) |
Gateway API CORS Filter (Experimental)
Gateway API v1.3.0๋ถํฐ CORS ํํฐ๊ฐ ์คํ์ ๊ธฐ๋ฅ์ผ๋ก ์ถ๊ฐ๋์์ต๋๋ค.4
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
name: my-route
spec:
parentRefs:
- name: my-gateway
rules:
- matches:
- path:
type: PathPrefix
value: /api
filters:
- type: CORS
cors:
allowOrigins:
- type: Exact
value: https://app.example.com
allowMethods:
- GET
- POST
- OPTIONS
allowHeaders:
- Authorization
- Content-Type
allowCredentials: false
maxAge: 86400
backendRefs:
- name: my-service
port: 8080์ฃผ์์ฌํญ:
- Experimental ์ฑ๋ ์ค์น ํ์ (
gateway.networking.k8s.io/v1with experimental CRDs) - HTTPRoute์์ OPTIONS ๋ฉ์๋๋ฅผ ํ์ฉํด์ผ Preflight ์์ฒญ์ด ์ฒ๋ฆฌ๋จ
allowCredentials: true์ผ ๊ฒฝ์ฐ ์์ผ๋์นด๋(*) ์ฌ์ฉ ๋ถ๊ฐ, ๋ช ์์ Origin ์ง์ ํ์
HTTPRoute ResponseHeaderModifier๋?
ResponseHeaderModifier๋ก CORS ํค๋๋ฅผ ์ง์ ์ถ๊ฐํ๋ ๋ฐฉ๋ฒ5๋ ์์ง๋ง, Preflight ์๋ ์ฒ๋ฆฌ๊ฐ ์ ๋๊ณ CORS ๊ท์น์ ์๋ ๊ด๋ฆฌํด์ผ ํ๋ฏ๋ก ๊ถ์ฅํ์ง ์์ต๋๋ค.
๋ถ๋ก: ๋ก๋๋ฐธ๋ฐ์ฑ ์ค๋ฒํค๋ ์คํํธ๋ผ
Service Mesh๋ โLB/๋คํธ์ํน ์ ์ฑ ์ ์ด๋์ ์ฒ๋ฆฌํ๋๋โ์ ํ ์ง์ ์ผ ๋ฟ์ ๋๋ค. ๊ท๋ชจ๊ฐ ์ปค์ง์๋ก ํธ์๋ฅผ ํฌ๊ธฐํ๊ณ ์ค๋ฒํค๋๋ฅผ ๋ฎ์ถ๋ ์ชฝ์ผ๋ก ๋ด๋ ค๊ฐ๋ฉฐ, ๋ฐฉํฅ์ ๊ฒฐ์ ํ๋ ๊ฑด ๊ธฐ์ ์ด ์๋๋ผ ๊ท๋ชจ์ ์ ๋ด ์กฐ์ง์ ์ ๋ฌด์ ๋๋ค.
| ๋จ๊ณ | ์ฒ๋ฆฌ ์์น | ์ธ์ | ์ฑ๊ฒฉ | ๋ํ |
|---|---|---|---|---|
| 1. server-side LB | ์ค์ LB 1ํ | ์๊ท๋ชจ, north-south, ์ธ์คํด์ค ์์ | ๋ฉ์ ๋ถํ์, ์ค์ | K8s Service, nginx, ALB |
| 2. sidecar mesh | Pod๋ง๋ค ํ๋ก์ | mTLSยท์ฌ์๋ยท์ ์ฑ ์ ์ฑ ์ฝ๋ ์ ๊ฑด๋๋ฆฌ๊ณ ํธํ๊ฒ | ํธ์ ์ต๊ณ / ์ค๋ฒํค๋ ์ต๊ณ | Istio(sidecar), Linkerd |
| 3. ambient mesh | ๋ ธ๋๋น ํ๋ก์(ztunnel) | Pod๊ฐ ๋ง์ sidecar ๋ฆฌ์์ค ๋ฑ์ด ๋ถ๋ด๋ ๋ | ํธ์ ์ ์ง + ์ค๋ฒํค๋โ | Istio Ambient, Cilium |
| 4. ์ธํ๋ก์ธ์ค client-side LB | ์ฑ ๋ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ(ํ 0) | ๋ด๋ถ gRPC ์ด๊ณ ๋น๋, ์๋ฐฑ~์์ฒ ์๋น์ค | ์์ฒด SDK๋ฅผ ์ธ์ด๋ง๋ค ๊ฐ๋ฐยท์ ์ง | Finagle, gRPC ๋ด์ฅ LB |
| 5. ์์ฒด eBPF/์ปค๋ LB | ์ปค๋(XDP), ์ ์ ์คํ์ด์ค ์ฐํ | ์ ์ง๊ตฌ ๊ท๋ชจ, ์ด๋น ์์ต ํจํท | ๋ฒ์ฉ ์ ํ์ ๋ฒ๋ฆฌ๊ณ ์ปค๋ ๋ ๋ฒจ๋ก ์์ฒด ์ ์กฐ | Meta Katran, Google Maglev, Cloudflare Unimog |
- 1-3๋จ๊ณ๋ โ์ ํ์ ๊ณ ๋ฅด๊ณ ์ค์ (YAML)โํ๋ ์ผ๋ก, ์๋ก~์ค๊ฒฌ์ด ์ค์ ๋ก ๋ค๋ฃจ๋ ๋ฒ์์ ๋๋ค. eBPF๋ 3๋จ๊ณ๋ฅผ ๊ตฌํํ๋ ์ฌ๋ฃ(Cilium/ztunnel ๋ด๋ถ)์ด์ง, ๋ณ๋ ์์ ๋ฑ๊ธ์ด ์๋๋๋ค.
- 4-5๋จ๊ณ๋ ๋ฌธ์ ๊ฐ โ์ค์ โ์ด ์๋๋ผ โR&Dโ๋ก ๋ฐ๋๋๋ค. ์ง์ ์กฐ๊ฑด์ด ๊ธฐ์ ์ด ์๋๋ผ ์ ๋ด ํ๋ซํผํยท์ปค๋ ์์ง๋์ด๋ผ, ๊ฐ์ธ/์ด๊ธฐ ์คํํธ์ ์ ๊ฒฝํํ ํต๋ก ์์ฒด๊ฐ ์์ต๋๋ค.
- ์ญ์ ์ฉ ๊ธ์ง: Meta๊ฐ client-side LB๋ ์์ฒด eBPF LB๋ฅผ ์ฐ๋ ๊ฑด โambient๋ฅผ ๋ชฐ๋ผ์โ๊ฐ ์๋๋ผ, ๊ทธ ๊ท๋ชจ์์ (a) ํ๋ก์ ํยทCPU ์ดํฉ์ด ๋ฐ์ดํฐ์ผํฐ ๋จ์ ๋น์ฉ์ด๊ณ (b) ์ด๋ฏธ ์์ฒด ์ธํ๋ผ๊ฐ ambient๋ณด๋ค ์ต์ ํ๋ผ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ฐ๋ฆฌ ๊ท๋ชจ์์ ํธ์์ธ๋ฅผ ๋ด๋ ๊ฒ ์ด๋์ธ ๊ตฌ๊ฐ์ด๋ผ 2-3๋จ๊ณ๊ฐ ์ ๋ต์ ๋๋ค.
Reference
- Gateway API
- Gateway API vs Ingress: The Future of Kubernetes Networking
- Istio official website
- Istio Ambient Mode