Kubernetes Service(4): envoy config
- kkumtree
2024-10-19T16:59:16+09:00
μ μ /λμ μ€μ μ μμλ΄
λλ€.
traefikμ λ§λ³Όλλ, νΈλκ² λ°μΈ λΆλΆμΈλ° envoyλ μλμ μΌλ‘ λͺ
λ£νμ΅λλ€.
CloudNet@μμ μ§ννκ³ μλ K8s Advanced Network Study(μ΄ν, KANS)λ₯Ό ν΅ν΄ νμ΅ν λ΄μ©μ μ 리ν©λλ€.
1. Static Configuration
μλμ κ°μ΄ ꡬμ±λ©λλ€.
- static_resources
- listeners
- clusters
(a) static_resources
envoyμ μμκ³Ό ν¨κ», μ μ μΌλ‘ μ€μ λλ λͺ¨λ 리μμ€λ₯Ό ν¬ν¨νλ€κ³ ν©λλ€.
μ€μ λ‘ envoy-demo.yaml νμΌμ μ΄μ΄λ³΄λ©΄ μ΅μλ¨μ static_resourcesμ΄ μ μΈλμ΄ μμ΅λλ€.
static_resources:
listeners:
(b) listeners
envoy-demo.yaml νμΌ κΈ°μ€,
socket_address: 리μ€λλ ν¬νΈ 10000μμ μμ νλλ‘ μ€μ λμ΄ μμ΅λλ€.route_config: λͺ¨λ κ²½λ‘μ λν΄service_envoyproxy_ioν΄λ¬μ€ν°λ‘ λΌμ°ν ν©λλ€.
# cat envoy-demo.yaml | grep -A 30 -B 2 listeners
static_resources:
listeners:
- name: listener_0
address:
socket_address:
address: 0.0.0.0
port_value: 10000
filter_chains:
- filters:
- name: envoy.filters.network.http_connection_manager
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
stat_prefix: ingress_http
access_log:
- name: envoy.access_loggers.stdout
typed_config:
"@type": type.googleapis.com/envoy.extensions.access_loggers.stream.v3.StdoutAccessLog
http_filters:
- name: envoy.filters.http.router
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.Router
route_config:
name: local_route
virtual_hosts:
- name: local_service
domains: ["*"]
routes:
- match:
prefix: "/"
route:
host_rewrite_literal: www.envoyproxy.io
cluster: service_envoyproxy_io
(c) clusters
envoy-demo.yaml νμΌ κΈ°μ€,
Kubernetes Service(4): envoy overview
- kkumtree
2024-10-15T10:16:38+09:00
λ°λ‘ μ₯ μ°Ύμ보λ, envoyλ Micro Service Architecture λ± κ΅¬νλ λ¨μ κΈ°λ₯κ°μ ν΅μ μ μν L7 Proxy λΌκ³ ν©λλ€.
Docker Compose μ λλ μΌλ° μλΉμ€μμλ κ΅³μ΄ νμνμ§λ μμ κ² κ°μ§λ§, Service Mesh νκ²½μμλ μμλλ©΄ μ’μ κ² κ°μ νμ΄λ΄ λλ€.
CloudNet@μμ μ§ννκ³ μλ K8s Advanced Network Study(μ΄ν, KANS)λ₯Ό ν΅ν΄ νμ΅ν λ΄μ©μ μ 리ν©λλ€.
1. Envoy Installation
- Docs: Installing Envoy
wget -O- https://apt.envoyproxy.io/signing.key | sudo gpg --dearmor -o /etc/apt/keyrings/envoy-keyring.gpg
echo "deb [signed-by=/etc/apt/keyrings/envoy-keyring.gpg] https://apt.envoyproxy.io jammy main" | sudo tee /etc/apt/sources.list.d/envoy.list
sudo apt-get update
sudo apt-get install envoy
envoy --version
νμ΅νκ²½μ rootλ‘ μ μλμ΄ μκΈ°μ sudoλ μ°μ§ μμμ΅λλ€.