Envoy

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

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λŠ” μ“°μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.

kkumtree

Source code on GitHub

Β© 2025 kkumtree and contributors All rights reserved.
Licensed under
CC BY-NC-ND 4.0