แกแแแแแ! แแก แแ แแก แแแแแ แกแขแแขแแ, แ แแแแแแช แแแกแฃแฎแแแก แแแแฎแแแแก: "แ แ แแ แแก แแแกแแแแ?", "แ แแขแแ แแ แแก แกแแญแแ แ?" แแ "แกแแ แแแแแฌแงแแ?".
แ แ แแ แแก แแก?
Envoy แแ แแก L4-L7 แแแแแแกแแ แ แแแฌแแ แแแ C++-แจแ, แ แแแแแแช แแ แแแแขแแ แแแฃแแแ แแแฆแแ แจแแกแ แฃแแแแแแ แแ แฎแแแแแกแแฌแแแแแแแแแ. แแ แแแก แแฎแ แแ, แแก แแแ แแแแฃแแฌแแแแ แแ แแก nginx-แแกแ แแ แฐแแแ แแฅแกแแแก แแแแแแแ, แ แแแแแแช แจแแแแ แแแฃแแแ แแแแแแ แจแแกแ แฃแแแแแ. แแแแ แแก แแฎแ แแ, แแก แฃแคแ แ แแแขแแ แแ แแก แแ แแแแขแแ แแแฃแแ แแแแ แแกแแ แแแกแแก แแ แฅแแขแแฅแขแฃแ แแแ แแ แแฅแแก แคแฃแแฅแชแแแแแ แแแ แแ แ แฃแแ แแกแ แแแแ แ java and go แแแแแแกแแ แแแ, แ แแแแ แแชแแ zuul แแ traefik.
แฐแแแ แแฅแกแแก/แแแแแฅแกแแก/แแแกแแแแแก แจแแแแ แแแแก แชแฎแ แแแ, แแก แแ แแชแฎแแแแแก แแแกแแแฃแขแฃแ แกแแแแ แแแแก, แแแแ แแ แแซแแแแ แแแแแ แกแฃแ แแแก.
nginx
แฐแแแ แแฅแกแแ
แแแแแแแแแแ
แขแ แแคแแแ
แแแ แกแแแแแแแแ github-แแ
11.2k/แกแแ แแ
1.1k/แกแแ แแ
12.4k
27.6k
แฉแแฌแแ แแแ
C
C
C + +
go
API
แแ แแ แแก
แแฎแแแแ แกแแแแขแ/แแแซแแ
แแแแแชแแแแ แแแแแแคแ แแแแแ/แแแงแแแแแแแแ
แแแแงแแแแแก
แแฅแขแแฃแ แ แฏแแแแ แแแแแแแก แจแแแแฌแแแแ
แแ แแ แแก
แแแแฎ
แแแแฎ
แแแแฎ
แฆแแ แแแแแแแแ
แแแ แ แแแแฃแแ
แแ แแ แแก
แแแแฎ
แแแแฎ
J.W.T.
แแแ แ แแแแฃแแ
แแ แแ แแก
แแแแฎ
แแ แแ แแก
แแแคแแ แแแแแ
แแฃแ/แ
แแฃแ/แ
แแฃแ/C++
แแ แแ แแก
แ แ แแ แแก
แแก แแฎแแแแแแ แแ แแ แแแฅแขแแ, แแแแ แ แ แแ แแแแแ, แแแแ แแแ แแฃแ แแแคแแจแ. แแแแ แแ แแแแแแแแแแ, แแกแแแ แแฎแแแแแแ แแแแแแแ แแแแแแแแแแ แ, แกแฌแ แแคแแ แแแแแ แแแแ แแ แฃแแแ แแฅแแก แแแแ แ แกแแแแขแแ แแกแ แคแฃแแฅแชแแ: แแแแแแแฃแ แ แแแแคแแแฃแ แแชแแ, แแแแ แ แแแ แคแแแขแ แ, แแแ แขแแแ แแแขแแ แคแแแกแ แกแแแฃแแแ แ แคแแแขแ แแแแก แแแกแแฌแแ แแ.
แแแแแงแแแแแแก แกแคแแ แแแแ แแฅแแแแ แแแแแแแแแแ แแแแก, แแแแ แแ แแแ แแแ แ แแแจแ แแ แแก 2 แแแขแแแแขแแ แแ:
- แกแขแแขแแแฃแ แ แฃแแฃแชแแแ.
แคแแฅแขแแ, แ แแ แแ แแแแแแขแจแ แฅ แแแแแแแแแแ แแ แแ แแก แฅแแจแแ แแแแก แแฎแแ แแแญแแ แ. Google-แแก แแแญแแแ แแแแก แชแแแแแแแ
แแ แแ แแแกแแแแก แแแแแแงแแแแ nginx แกแขแแขแแแแกแแแแก.
- แกแขแแขแแแฃแ แ แแแแคแแแฃแ แแชแแ.
แจแแแแซแแแแ แแแแแแงแแแแ, แแแแ แแ แแแแแแแแแแ แแแแกแแแแก แแ แจแแแฅแแแ. แกแขแแขแแแฃแ แ แแแแคแแแฃแ แแชแแแก แคแฃแแฅแชแแแแ แแ แแฅแแแแ แแแแแแแแแแแ. แแแแ แ แแแแแแขแแ:
Yaml-แจแ แแแแคแแแฃแ แแชแแแก แ แแแแฅแขแแ แแแแกแแก แจแแชแแแแแ, แแแแแชแฎแแแ แแแแแแแแแ แแแก แกแแขแงแแแแ แแแแก แแแแ แแ แคแแฅแ แแแ, แ แแ nginx/haproxy แแแแคแแแฃแ แแชแแแแ, แแฃแแชแ แแแแแแแแ แกแขแ แฃแฅแขแฃแ แแ แแแฃแแ, แแแแ แแ แฃแคแ แ แแแแแแฃแ แแ. แฒแแแจแแ แแฃแกแขแแ แแแแก แแแ แ. Nginx-แแกแ แแ Haproxy-แแก แแแแคแแแฃแ แแชแแ แจแแแฅแแแ แฎแแแแ แ แแแแฅแขแแ แแแแกแแแแก แแ แแแแแแแแแแ แแแแแแแ แแแแแ แแ แแแแกแแแแก. แแแแแ แแแแคแแแฃแ แแชแแ แแฆแฌแแ แแแแ
Canary, b/g แแแแแแแแแแก แกแชแแแแ แแแ แแ แแ แแแแแ แกแฎแแ แฉแแแฃแแแแ แแ แฎแแ แชแแแแแแแ แแฎแแแแ แแแแแแแฃแ แแแแคแแแฃแ แแชแแแจแ. แแ แแ แแแแแแ, แ แแ แแก แแ แจแแแซแแแแ แแแแแแแแก แกแขแแขแแแฃแ แแ, แฉแแแ แแแแก แงแแแแ แแแแแแแแ. แแแแ แแ แแแแกแแแแแก แแฅแแแ แฃแแแ แฉแแแชแแแ แฎแแแฏแแฎแแแ, แแแแแกแแแแ แแแแแแกแแ แจแ, แจแแแแแ แแแแแแแแแแ แแแ แจแแ แแก
แแแแชแแแแแ, แ แแแแแแแแแแกแแช แแแฉแ แจแแฃแชแแแแแแ:
- แแแซแ แแแแแก แแแแแแแแกแแแ แ แแฃแ แแ แแแแแแแฃแ แกแแกแขแแแแแจแ. แแก แแแแชแแแก แกแแ แแแกแแก แฅแกแแแก, แแแแ แแ แแก แกแฃแแแช แแ แแ แแก แแ แแแแแ แแ.
- แแแแแฌแแแแแฃแแ แแแแแแแแแก แคแฃแแฅแชแแแแแ แแแแก, แ แแฃแแ แแแขแแ แแแแชแแแก แแ แกแฎแแ แคแฃแแฅแชแแแแแ แแแแก แกแแญแแ แแแแ, แ แแแแแแช แฎแแแแแกแแฌแแแแแแ แแแแแแแแแแ out of box แแ แแแฎแแ แฎแแแฃแแแ แแแแแ แแแแ, แแแแ แแ nginx/haproxy-แจแ แแฅแแแ แฃแแแ แแงแแ แแแ แจแแแแ แขแงแแฃแแ lua แแ แกแแแญแแ แแแแแแแขแแแแ.
แแ แแแ, แกแแญแแ แแแแแก แจแแแแฎแแแแแจแ, แฃแแ แฃแแแแแงแแคแก แแแฆแแ แจแแกแ แฃแแแแแก.
แ แแแแ แแแแแแแก แแแแก แแฃแจแแแแ
Envoy แแแฌแแแแแแ แแแแแ แแแจแ แแฎแแแแ แแแแแ แแก แแแแแกแแฎแฃแแแแแก แกแแฎแแ. แกแฃแ แแแ แฃแแแ แจแแแชแแแก แกแขแแขแแแฃแ แ แแแแคแแแฃแ แแชแแแก แแแแแแแแก. แแแแ แแ แฉแแแ แแก แแแแแแขแแ แแกแแแก แแฎแแแแ แกแขแ แฃแฅแขแฃแ แแก แแแกแแแแแแ.
envoy.yaml แกแขแแขแแแฃแ แ แแแแคแแแฃแ แแชแแ
static_resources:
listeners:
- name: listener_0
address:
socket_address:
protocol: TCP
address: 0.0.0.0
port_value: 10000
filter_chains:
- filters:
- name: envoy.http_connection_manager
typed_config:
"@type": type.googleapis.com/envoy.config.filter.network.http_connection_manager.v2.HttpConnectionManager
stat_prefix: ingress_http
route_config:
name: local_route
virtual_hosts:
- name: local_service
domains: ["*"]
routes:
- match:
prefix: "/"
route:
host_rewrite: www.google.com
cluster: service_google
http_filters:
- name: envoy.router
clusters:
- name: service_google
connect_timeout: 0.25s
type: LOGICAL_DNS
# Comment out the following line to test on v6 networks
dns_lookup_family: V4_ONLY
lb_policy: ROUND_ROBIN
load_assignment:
cluster_name: service_google
endpoints:
- lb_endpoints:
- endpoint:
address:
socket_address:
address: www.google.com
port_value: 443
transport_socket:
name: envoy.transport_sockets.tls
typed_config:
"@type": type.googleapis.com/envoy.api.v2.auth.UpstreamTlsContext
sni: www.google.com
แแแแแแแฃแ แ แแแแคแแแฃแ แแชแแ
แ แ แแ แแแแแแแก แแแซแแแ แแแแแกแแแแแก? แแฅแแแ แแ แจแแแแซแแแแ แฃแแ แแแแ แแแแแขแแแ แแแ แแแขแแแ แแแแก แแแแแแกแแ แแก แแแแคแแแฃแ แแชแแ แแแขแแแ แแแแก แฅแแแจ; แฌแแ แแแแฅแแแแแ "แแแขแแ แ" แแ แแแแแแแแ:
- แแแแคแแแฃแ แแชแแแก แแแแแแแชแแ.
แแแแคแแแฃแ แแชแแ แจแแแซแแแแ แแงแแก แแแแ, แจแแแซแแแแ แแงแแก แซแแแแแ แแแแ, แแฃ แแแแก แแ แแแ แแฃแแแ แแแแแแขแแแ แแแแ, แกแแแฆแแช แจแแชแแแแแก แจแแแกแ แแแ แแแแ.
- แฎแแแแ แซแแแแ แแแแจแแ แแแ.
แแฎแแแ แแกแแแแแแแก แแแแชแแแแแแแชแแแกแแก, แแฅแแแ แฃแแแ แแแ แฃแแแ แซแแแแแ แแแจแแแแฃแ แแแแจแแ แแแแ; แแฃ แชแแแแแแแแแ แฎแแแแ แฎแจแแ แแ แแ แแ แแก แฎแแแแ แซแแแแ แแแแจแแ แแแ, แแฅแแแ แแแแแฌแแแ แแแแแ แแแแกแแก แซแแแแ. แแแแแ แฏแแแ, kubernetes แจแแแแแแก nginx-แแ.
- แแฅแขแแฃแ แ แฏแแแแ แแแแแแแก แจแแแแฌแแแแ.
แแฃ แฉแแแ แแแแฅแแก แแฅแขแแฃแ แ แฏแแแแ แแแแแแแก แจแแแแฌแแแแแแ, แฉแแแ แฃแแแ แแแแแแแแแฌแแแ แแกแแแ แงแแแแ แแฎแแ แแแแคแแแฃแ แแชแแแจแ แขแ แแคแแแแก แแแแแแแแแแแ. แแฃ แแแแ แแแแแแแจแ แแแแ แแ, แแแแก แแ แ แกแญแแ แแแแ. แแแแแ แฏแแแ แฐแแแ แแฅแกแ.
แ แแแแ แฌแงแแแแ แแก แแแแแแแแแแแแแแคแแแฃแ แแชแแแก แแแแแแแฃแ แแ แฉแแขแแแ แแแแ, แแฃแแแก แแแแแแแก แแแฎแแแแแ, แจแแแแซแแแแ แแแงแแ แแแ แชแแแแแฃแ แแแฌแแแแแแ แแ แแ แแแแแแฎแแแ แแก แแแฌแแแ, แ แแแแแแช แแ แจแแชแแแแแ. แแแแแแแแแ, แแกแแแแแแ, แ แแแแแก แฎแแแแฎแแแ แแแฌแงแแแ แซแแแ แแ แแ แแจแแแแแแ แแชแแแแแ.
แแแแคแแแฃแ แแชแแ แแแแแแแแแแ (แแแแแฎแกแแแแแฃแแ แคแแแแแแแ) แแฅแแก แจแแแแแแ แแ แแแฃแแแแ:
- แแกแแแแแแ โ แแแแแ แแขแฃแ IP/แแแ แขแแ แแแแแแแแฃแแ แแกแแแแแแ
- แแแ แขแฃแแแฃแ แ แแแกแแแแซแแแ - แแแ แขแฃแแแฃแ แ แฐแแกแขแ แแแแแแแก แกแแฎแแแแ
- แแแ แจแ แฃแขแ - แแแแแแแแกแแแแก แฌแแกแ
- แแแกแแขแฃแ แ โ แแแแ แแแแแแแก แฏแแฃแคแ แแแแแแกแแ แแแแก แแแ แแแแขแ แแแแ
- แกแแแแแแ - แแแแแ แแแกแขแแแชแแแก แแแกแแแแ แแ
แแแแแแฃแแ แแก แแ แแแฃแแ แแแฃแก แแแแแแ แแ แกแฎแแ แจแแแซแแแแ แจแแแแกแแก แแแแแแแฃแ แแ; แแแแกแแแแแก แแแแคแแแฃแ แแชแแ แแแแกแแแฆแแ แแแก แกแแ แแแกแแก แแแกแแแแ แแก, แกแแแแแแแช แแแแฆแแแ แแแแคแแแฃแ แแชแแ. แกแแ แแแกแ แจแแแซแแแแ แแงแแก REST แแ gRPC, แกแแกแฃแ แแแแแ gRPC.
แกแแ แแแกแแแ แแแกแแฎแแแแแฃแแแ แจแแกแแแแแแกแแ: LDS, VHDS, RDS, CDS แแ EDS. แแฅแแแ แจแแแแซแแแแ แแแแแแแจแแ แแ แกแขแแขแแแฃแ แ แแ แแแแแแแฃแ แ แแแแคแแแฃแ แแชแแ, แแ แจแแแฆแฃแแแแ, แ แแ แแแแแแแฃแ แ แ แแกแฃแ แกแ แแ แจแแแซแแแแ แแงแแก แแแแแแแแฃแแ แกแขแแขแแแฃแ แจแ.
แแแแชแแแแแแก แฃแแแขแแกแแแแกแแแแก แกแแแแแ แแกแแ แแแแ แกแแแ แกแแ แแแกแแก แแแแฎแแ แชแแแแแแ, แแแ แฃแฌแแแแแแ ADS (Aggregated Discovery Service).
แแแแคแแแฃแ แแชแแ แแฆแแแก แจแแแแแ แคแแ แแแก:
envoy.yaml แแแแแแแฃแ แ แแแแคแแแฃแ แแชแแ
dynamic_resources:
ads_config:
api_type: GRPC
grpc_services:
envoy_grpc:
cluster_name: xds_clr
cds_config:
ads: {}
static_resources:
listeners:
- name: listener_0
address:
socket_address:
protocol: TCP
address: 0.0.0.0
port_value: 10000
filter_chains:
- filters:
- name: envoy.http_connection_manager
typed_config:
"@type": type.googleapis.com/envoy.config.filter.network.http_connection_manager.v2.HttpConnectionManager
stat_prefix: ingress_http
rds:
route_config_name: local_route
config_source:
ads: {}
http_filters:
- name: envoy.router
clusters:
- name: xds_clr
connect_timeout: 0.25s
type: LOGICAL_DNS
dns_lookup_family: V4_ONLY
lb_policy: ROUND_ROBIN
load_assignment:
cluster_name: xds_clr
endpoints:
- lb_endpoints:
- endpoint:
address:
socket_address:
address: xds
port_value: 6565
แแแจแแแแแก แแ แแก แแแแแแแแแแ แแ แแแแคแแแฃแ แแชแแแ แแก แแแฃแแแแจแแ แแแแ แกแแแแแขแ แแแ แกแแแ แขแงแแก แแ แจแแแชแแแแ แแแแแฎแแแแก RDS, CDS แแ EDS แแแแคแแแฃแ แแชแแ. แ แแแแ แฎแแแแ แฃแ แแแแ แแฅแแแแแแแก แแ แแชแแกแ แแฆแฌแแ แแแแ
แฒแแแแแ, แแแแแแแแแแ แแแแแแแแก แแแแฎแแแแแก, แ แแแแแจแแช แแแแแแแแฃแแแ แแแแฎแแแแแแ แ แแกแฃแ แกแแก แขแแแ, แแแแแซแแก แแแ แกแแ แแ แแแ แแแแขแ แแแ. แกแแแแกแฃแฎแแ แแก แแฆแแแก แ แแกแฃแ แกแก แแ แแแ แกแแแก, แแฃ แกแแแแแขแ แแแ แแแแแแคแ แแแแแแ แแแ แกแแ แแ แจแแชแแแแแ, แแก แแ แแแกแฃแฎแแแก.
แแ แกแแแแแก 4 แฃแ แแแแ แแฅแแแแแแแก แแแ แแแแขแ:
- แแ แแ gRPC แแแแแแ แงแแแแ แขแแแแก แ แแกแฃแ แกแแกแแแแก, แแแแแแแแแ แ แแกแฃแ แกแแก แกแ แฃแแ แกแขแแขแฃแกแ.
- แชแแแแ แแแแแแแแ, แกแ แฃแแ แแแแแแแ แแแแ.
- แแ แแ แแแแแแ, แแแแแขแแแแแ แแแแแแแ แแแแ.
- แชแแแแแฃแแ แแแแแแแแ, แแแแ แแแแแขแฃแแ แแแแแแแ แแแแ.
แแแแแขแแแแแ xDS แกแแจแฃแแแแแแก แแแซแแแแ แจแแแแชแแ แแ แแแซแ แแแแ แกแแแแแขแ แแแ แกแแแ แขแงแแก แจแแ แแก แแ แแแแแแแแแแ, แแก แแฅแขแฃแแแฃแ แแ แแแแ แแแแคแแแฃแ แแชแแแกแแแแก. แแแแ แแ แแก แแ แแฃแแแแก แฃแ แแแแ แแฅแแแแแแแก; แแแแฎแแแแ แจแแแชแแแก แ แแกแฃแ แกแแแแก แฉแแแแแแแแแแก แแแแแฌแแ แแกแ แแ แแแแแฌแแ แแกแแแแก.
แฉแแแแก แแแแแแแแจแ แแแแแแงแแแแแ ADS - แแ แแ แแแแแแ RDS, CDS, EDS แแ แแ แแแแแ แแแแแขแฃแแ แ แแแแแแกแแแแก. แแแแแขแแแแแ แ แแแแแแก แแแกแแแฅแขแแฃแ แแแแแ, แแฅแแแ แฃแแแ แแแฃแแแแแ api_type: DELTA_GRPC
แแแแแแแแ แแแแฎแแแแ แจแแแชแแแก แแแแแซแแก แแแ แแแแขแ แแแก, แฉแแแ แจแแแแแซแแแ แแแแแแแแแแแ แกแฎแแแแแกแฎแแ แ แแกแฃแ แกแ แกแแแแแขแ แแแ แกแแแ แขแงแแจแ แกแฎแแแแแกแฎแแ แแแกแขแแแชแแแกแแแแก แแแแแแแแแแ, แแก แแแกแแฎแแ แฎแแแแแแ แกแแ แแแกแแก แแแแแก แแกแแแแแแ.
แฒแแฎแฃแ แแแ
แฌแแแก แแแแแแแแแแ แแแจแแแแแกแแก แแ แกแแแแแขแ แแแ แกแแแ แขแงแแแแ แแฎแแแ แแแแคแแแฃแ แแชแแแก แแแฆแแแแกแแก, แแฌแงแแแ แ แแกแฃแ แกแแก แแแฎแฃแ แแแแก แแ แแชแแกแ. แแก แแงแแคแ แแกแแแแแแแ แแ แแแแกแขแแ แฃแ แแแแแแแแ. แแแ แแแแ แแฎแกแแแแ, แ แแแแกแแช แฎแแแแ แชแแแแแแแแแ RDS/LDS-แจแ, แแแแ แ แ แแชแ CDS/EDS. แแก แแแจแแแแก, แ แแ แแฃ แแฎแแแแ แแแแ แแแแแแแก แชแแแแแแแ แฎแแแแ, แแกแแแแแแ แฎแแแแฎแแ แแ แแฅแแแแแ.
แแแฎแฃแ แแแแก แแ แแชแแกแแก แแ แแก, แกแแแแแขแ แแแ แกแแแ แขแงแแแแ แแแแแแแแแแฃแแ แ แแกแฃแ แกแแแแ แแแกแแแแแแแแ แขแแแแแฃแขแแก แแ แแก. แแฃ แแแแแ, แแแแชแแแแแแแชแแ แฌแแ แแแขแแแฃแแ แแ แแฅแแแแ แแ แแฎแแแ แแกแแแแแแ แแ แแแแฌแงแแแก แแแกแแแแแก แแแ แขแแ.
แแแแชแแแแแแแชแแแก แแ แซแแแแแ: EDS, CDS, แแฅแขแแฃแ แ แฏแแแแ แแแแแแแก แจแแแแฌแแแแ, RDS, LDS. แแฅแขแแฃแ แ แฏแแแแ แแแแแแแก แจแแแแฌแแแแแก แฉแแ แแแแก แจแแแแฎแแแแแจแ, แขแ แแคแแแ แแแแแแ แแฎแแแแ แแ แแ แฌแแ แแแขแแแฃแแ แฏแแแแ แแแแแแแก แจแแแแฌแแแแแก แจแแแแแ.
แแฃ แแกแแแแแแ แฎแแแแฎแแ แจแแแฅแแแ, แซแแแแ แแแแแแแก DRAIN แแแแแแแ แแแแแจแ แแ แฌแแแจแแแแ แงแแแแ แแแแจแแ แแก แแแฎแฃแ แแแก แแ แแแแแก แแแแฌแฃแ แแแก แจแแแแแ --drain-time-s
แแแแฃแแแกแฎแแแแ 10 แฌแฃแแ.
แแแแ แซแแแแแแ.
แฌแงแแ แ: www.habr.com