Tena koe! He tuhinga poto tenei e whakautu ana i nga patai: "he aha te karere?", "he aha i hiahiatia ai?" me "kei hea ka tiimata?".
He aha tenei
Ko te Envoy he taurite L4-L7 kua tuhia ki te C++, e arotahi ana ki te mahi nui me te waatea. I tetahi taha, he rite tenei ki te nginx me te haproxy, he rite ki te mahi ki a raatau. I tetahi atu taha, he nui ake te aro ki te hoahoanga microservice me te mahi kaore he kino atu i te java me te haere toenga, penei i te zuul, traefik ranei.
Te ripanga whakataurite o te haproxy/nginx/envoy, e kore e kii ko ia te tino pono, engari he whakaahua whanui.
nginx
haproxy
tonoa
traefik
whetu i runga i te github
11.2k/whakaata
1.1k/whakaata
12.4k
27.6k
tuhia ki roto
C
C
C ++
go
API
kahore
turanga / pana anake
rererangi raraunga/toia
tohi
arowhai hauora kaha
kahore
ae
ae
ae
Tuwhera te rapu
mono waho
kahore
ae
ae
J.W.T.
mono waho
kahore
ae
kahore
toronga
Lua/C
Lua/C
Lua/C++
kahore
He aha mo
He kaupapa rangatahi tenei, he maha nga mea e ngaro ana, ko etahi kei te alpha tuatahi. Engari tonoa, na tona taitamarikitanga hoki, kei te whanake tere me te maha o nga ahuatanga whakamere: whirihoranga hihiri, he maha nga whiriwhiringa kua rite, he atanga ngawari mo te tuhi i a koe ake whiriwhiringa.
Ko nga waahanga tono ka whai mai i tenei, engari ko te tuatahi e rua nga tauira anti:
- Te whakaheke pateko.
Ko te meka ko e i tenei wa i roto i tonoa kore tautoko keteroki. Kei te ngana nga taangata Google i tenei
Mo tenei wa, whakamahia te nginx mo nga taatai.
- whirihoranga pateko.
Ka taea e koe te whakamahi, engari tonoa Ehara i te mea i hangaia ai. Ko nga ahuatanga kei roto i te whirihoranga pateko e kore e kitea. He maha nga wa:
A, no te whakatika i te whirihoranga i roto i te yaml, ka pohehe koe, ka riria nga kaiwhakawhanake mo te korero korero me te whakaaro ko nga whirihoranga nginx/haproxy, ahakoa he iti te hanganga, he poto ake. Koira te take. Ko te whirihoranga o Nginx me Haproxy i hangaia hei whakatika ma te ringaringa, a tonoa mo te whakatipuranga mai i te waehere. Ko te whirihoranga katoa e whakaahuatia ana i roto
Ko te Canary, b/g te whakatakotoranga ahuatanga me te maha atu ka mahia i roto i te whirihoranga hihiri anake. Kare au e kii ana kare e taea te mahi i runga i te paheketanga, ka mahia e tatou katoa. Engari mo tenei me mau koe ki runga tootoo, i roto i tetahi o nga pauna, i roto i tonoa tae atu ki.
Ko nga mahi e hiahiatia ana e te Kaihoko:
- Te whakataurite waka i roto i nga punaha uaua me te hihiri. Kei roto i tenei ko te mata ratonga, engari ehara i te mea ko te mea anake.
- Ko te hiahia mo te mahi tirotiro tohatoha, whakamanatanga matatini, etahi atu mahi ranei kei roto tonoa i waho o te pouaka, he pai ranei te whakatinana, engari i roto i te nginx/haproxy me karapotia koe e te lua me nga taputapu whakapae.
Ko nga mea e rua, mehemea e tika ana, whakarato i nga mahi teitei.
Nahea teie ohipa
Ka tohatohahia te karere ki roto i nga rua anake hei ahua docker. Kei te atahanga he tauira o te whirihoranga pateko. Engari kei te pirangi matou mo te maarama ki te hanganga.
whirihoranga pateko 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
whirihoranga hihiko
He aha te raruraru e rapu ana tatou i te otinga? Kaore e taea e koe te uta noa i te whirihoranga taurite kawenga i raro i te utaina; ka ara ake nga raru "iti":
- Te whakamanatanga whirihoranga.
Ka nui te whirihora, ka nui rawa atu, mena ka utaina katoatia i te wa kotahi, ka piki ake te tupono ki tetahi waahi.
- Nga hononga roa.
I te wa e timata ana koe i tetahi kaiwhakarongo hou, me tiaki e koe nga hononga e rere ana i runga i te mea tawhito; mena ka puta nga huringa i nga wa katoa, ka roa nga hononga, me rapu koe mo te taupatupatu. Kia ora, kubernetes ingress on nginx.
- Nga arowhai hauora kaha.
Mēnā he mātātoa te arowhai hauora, me taki rua i te katoa ki te whirihora hou i mua i te tuku waka. Mena he maha nga awaawa, ka roa te waa. Kia ora haproxy.
Me pehea te whakatau i tenei tonoaMa te utaina o te whirihora, kia rite ki te tauira poka wai, ka taea e koe te wehewehe ki nga waahanga motuhake, kaua e timata ano i te waahanga kaore i rereke. Hei tauira, he kaiwhakarongo, he utu nui ki te whakaara ano me te uaua ka huri.
Hōutuutu tonoa (mai i te kōnae i runga ake nei) e whai ake nei nga hinonga:
- kaiwhakarongo — kaiwhakarongo e iri ana i runga i te ip/tauranga motuhake
- kaihautu mariko - kaihautu mariko ma te ingoa rohe
- ara - ture taurite
- tautau — he roopu whakarunga me nga tawhā taurite
- Tuhinga — wāhitau tauira whakarunga
Ko enei hinonga me etahi atu ka taea te whakakii i roto i te hihiri; mo tenei, ka tohua e te whirihoranga te wahitau o te ratonga mai i te waahi ka whakawhiwhia te whirihora. Ko te ratonga he REST, he gRPC ranei, he pai ake te gRPC.
Kua whakaingoatia nga ratonga: LDS, VHDS, RDS, CDS me EDS. Ka taea e koe te whakakotahi i te whirihoranga pateko me te hihiko, me te herenga e kore e taea te tautuhi i te rauemi hihiko i roto i te mea pateko.
Mo te nuinga o nga mahi, he nui ki te whakatinana i nga ratonga whakamutunga e toru, ka kiia ko ADS (Aggregated Discovery Service), mo
Ko te whirihoranga he ahua e whai ake nei:
envoy.yaml whirihoranga hihiri
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
I te tiimata tonoa me tenei whirihora, ka hono atu ki te rererangi-whakahaere ka ngana ki te tono i te whirihoranga RDS, CDS me EDS. Ka whakaahuahia te ahua o te tukanga taunekeneke
Hei poto, tonoa ka tukuna he tono e tohu ana i te momo rauemi e tonoa ana, te putanga me nga tawhā o te node. Hei whakautu, ka whakawhiwhia he rauemi me tetahi putanga; ki te kore te putanga i runga i te rererangi-whakahaere i rereke, kaore e whakautu.
E 4 nga whiringa taunekeneke:
- Kotahi te awa gRPC mo nga momo rauemi katoa, ka tukuna te mana katoa o te rauemi.
- Ko nga awa wehe, he ahua tonu.
- Kotahi te awa, te ahua piki.
- Ko nga awa wehe, te ahua piki.
Ko te xDS taapiri ka taea e koe te whakaiti i nga waka i waenga i te rererangi-whakahaere me te tonoa, he mea tika tenei mo nga whirihoranga nui. Engari he whakararu i te taunekeneke; kei roto i te tono he rarangi rauemi mo te whakakore me te ohauru.
Ko ta maatau tauira e whakamahi ana i te ADS - kotahi te awa mo te RDS, CDS, EDS me te aratau kore-apiti. Hei whakahohe i te aratau taapiri, me tohu koe api_type: DELTA_GRPC
I te mea kei roto i te tono nga tawhā node, ka taea e matou te tuku rauemi rereke ki te rererangi-whakahaere mo nga waa rereke tonoa, he watea tenei mo te hanga i te mata ratonga.
Whakamahana
I roto i te tonoa i te tiimatanga, i te wa ka whiwhi whirihoranga hou mai i te rererangi-whakahaere, ka whakarewahia te tukanga whakamahana rauemi. Kua wehea ki te whakamahana kaiwhakarongo me te whakamahana kahui. Ka whakarewahia te tuatahi ina he huringa i roto i te RDS/LDS, te tuarua ka CDS/EDS. Ko te tikanga mena ka huri noa nga awa o runga, karekau te kaiwhakarongo e hanga ano.
I te wa o te whakamahana, ka tumanakohia nga rauemi whakawhirinaki mai i te waka rererangi whakahaere i te wa paunga. Mena ka puta te waahi, kaore e angitu te arawhitinga ka kore te kaiwhakarongo hou e tiimata ki te whakarongo ki te tauranga.
Te raupapa tuatahi: EDS, CDS, tirotiro hauora kaha, RDS, LDS. Ma te kaha o nga arowhai hauora, ka haere nga waka ki runga i muri i te kotahi o te tirotiro hauora angitu.
Mena i hanga ano te kaiwhakarongo, ka uru te mea tawhito ki te ahua DRAIN ka mukua i muri i te katinga o nga hononga katoa, ka pau ranei te waahi. --drain-time-s
, taunoa 10 meneti.
Kia haere tonu.
Source: will.com