á¡ááá»ááá¯á·
á¡áá¯ááºáááá¹ááá¬ážá¡ááŒá±á¬ááºáž áááºááŸá¯ááá¯ááºáá«áááºá
áááºááá¯á¡áá¯ááºáá¯ááºáááº
Istio ááœáẠá¡ááá á§áááᬠááŸá áºáᯠáá«áááºááẠ- ááááºážáá»á¯ááºáá±áž áá±áá¬áẠááŸáá·áº áá±áᬠáá±áá¬áẠá ááááºážáá»á¯ááºáá±ážáá±áá¬ááºááœáẠáá»ááºááŸáááá·áº ááŸááºáááºáá±á¬áááºáááºááŸá¯ááᯠáá±áá»á¬á á±ááá·áº á¡áááá¡á áááºá¡ááá¯ááºážáá»á¬ážáá«ááŸááááºá áááºááŸááá¬ážááŸááºáž (1.0) ááœáẠááááºážáá»á¯ááºáá±ážáá±áá¬ááºááœáẠá¡ááá á¡á áááºá¡ááá¯ááºáž áá¯á¶ážáá¯áá«ááŸááááº- Pilotá Mixerá Citadelá áá»áœááºá¯ááºááá¯á·ááẠCitadel ááᯠááá·áºááœááºážá ááºážá á¬ážáááºááá¯ááºáá«á áááºáá±á¬ááºááŸá¯áá»á¬ážá¡ááŒá¬áž á¡ááŒááºá¡ááŸáẠTLS ááá¯áá±áá»á¬á á±ááẠáááºááŸááºáá»á¬ážáá¯ááºáá±ážááẠááá¯á¡ááºáá«áááºá Pilot ááŸáá·áº Mixer á á ááºáá á¹á ááºážááŸáá·áº áááºááœááºáá»ááºááá¯á·ááᯠá¡áá®ážááẠáá±á·áá¬ááŒáá·áºááŒáá«á áá¯á·á
Pilot ááẠá¡á
á¯á¡áá±ážá¡ááœááºáž áá»áœááºá¯ááºááá¯á·ááŸááá±á¬á¡áá¬áá»á¬ážááŸáá·áºáááºáááºááá·áº á¡áá»ááºá¡áááºá¡á¬ážáá¯á¶ážááᯠááŒáá·áºáá±áá±ážááá·áº á¡áááááááºážáá»á¯ááºááŸá¯á¡á
áááºá¡ááá¯ááºážááŒá
áºááẠ- áááºáá±á¬ááºááŸá¯áá»á¬ážá áááºážááá¯á·á á¡áá¯á¶ážááŸááºáá»á¬ážááŸáá·áº áááºážááŒááŒááºážá
ááºážáá»ááºážáá»á¬áž (á¥ááá¬á Canary ááŒáá·áºáá»ááºááŸá¯á¡ááœáẠá
ááºážáá»ááºážáá»á¬áž ááá¯á·ááá¯áẠcircuit breaker á
ááºážáá»ááºážáá»á¬áž)á
Mixer ááẠáááºááá áºáá»á¬ážá ááŸááºáááºážáá»á¬ážááŸáá·áº ááœááºááẠá¡ááŒááºá¡ááŸááºáááºááœááºááŸá¯ááá¯ááºáᬠá¡áá»ááºá¡áááºáá»á¬ážááᯠá á¯áá±á¬ááºážááá¯ááºá áœááºážááᯠáá¶á·ááá¯ážáá±ážááá·áº á áááºááŒáá¯ááºááááºážáá»á¯ááºááŸá¯ áá±áá¬ááºá¡á áááºá¡ááá¯ááºážáá áºáá¯ááŒá áºáááºá á ááºážáá»á¥áºážá ááºážáááºážáá»á¬ážááᯠááá¯ááºáá¬ááŸá¯ááŸáá·áº ááŸá¯ááºážáá¬ážááá·áºáááºáá»ááºáá»á¬ážááᯠááá¯ááºáá¬ááŒááºážááá¯áááºáž á á±á¬áá·áºááŒáá·áºáááºá
áá±áá¬áá±áá¬ááºááᯠsidecar proxy ááœááºááááºáá¬áá»á¬ážáá¯á¶ážááŒá®áž á¡áá±á¬ááºá¡áááºáá±á¬áºáááºá Powerful ááᯠáá°áááºážá¡ááá¯ááºáž á¡áá¯á¶ážááŒá¯áááºá
Istio ááẠá¡ááá®áá±ážááŸááºážáá»á¬ážá¡ááœáẠáá¯á¶ážáá¯á¶ážáá»á¬ážáá»á¬áž ááœáá·áºáááºážááŒááºáá¬á áœá¬ á¡áá¯ááºáá¯ááºááá¯ááºá á±áááºá¡ááœáẠá¡ááá¯á¡áá»á±á¬áẠááá¯ážáá±ážá áá áºáá áºáᯠááŸááá«áááºá áá±á¬ááºáá¯á¶ážá¡áá±á¬ááºá¡áááºáá±á¬áºááŸá¯ááẠKubernetes 1.9+ áá¬ážááŸááºážáá»á¬áž (mutational admission webhook) á¡ááœáẠááá·áºáá»á±á¬áºáááºá Kubernetes áá¬ážááŸááºáž 1.7á 1.8 á¡ááœáẠInitializer ááᯠáá¯á¶ážááá¯ááºáááºá
Sidecar ááœááºááááºáá¬áá»á¬ážááᯠGRPC áááá¯ááá¯áá±á¬ááᯠá¡áá¯á¶ážááŒá¯á Pilot ááŸáá·áº áá»áááºáááºáá¬ážááŒá®ážá áááºážááẠá¡á á¯á¡áá±ážá¡ááœááºáž ááŒá áºáá±á«áºáá±ááá·áº á¡ááŒá±á¬ááºážá¡áá²áá»á¬ážá¡ááœáẠááœááºážá¡á¬ážáá±ážáá¯á¶á á¶ááᯠá¡áá±á¬ááºážáá¯á¶ážááŒá áºá¡á±á¬áẠáá¯ááºáá±á¬ááºááá¯ááºá á±áá«áááºá GRPC ááᯠáá¬ážááŸááºáž 1.6 ááááºážá Envoy ááœáẠá¡áá¯á¶ážááŒá¯áá²á·ááŒá®áž Istio ááœáẠáááºážááᯠáá¬ážááŸááºáž 0.8 ááááºážá á¡áá¯á¶ážááŒá¯áá¬ážááŒá®áž ááœáŸááºáááºááŒááºážááá¯ááºáᬠááœá±ážáá»ááºááŸá¯áá»á¬ážááᯠá á®á ááºáááºááŸááºáá±ážááá·áº á¡áá°ážááá¯ááºá á¬ážááŸááºá¡ááŒá Ạgolang wrapper áá áºáá¯ááŒá áºáááºá
Pilot ááŸáá·áº Mixer ááá¯á·ááẠááá¯ááºáá¶áá²á· á¡á
áááºá¡ááá¯ááºážáá»á¬ážááŒá
áºááŒá®áž ááŒááºáááºá¡á¬ážáá¯á¶ážááᯠááŸááºáá¬ááºááœáẠááááºážáááºážáá¬ážáááºá áááºážááá¯á·á¡ááœáẠááœá²á·á
ááºážááŸá¯áá¯á¶á
á¶ááᯠetcd ááœáẠááááºážáááºážáá¬ážááá·áº Kubernetes á
áááºááŒáá¯ááºá¡áááºážá¡ááŒá
áºáá»á¬ážáá¯á¶á
á¶ááŒáá·áº áááºááŸááºáá¬ážáááºá
Istio-agent ááẠPilot áááááºá
á¬ááá¯áááŸáááŒá®áž áááºážáá¶ááá¯á· GRPC stream áá
áºáá¯ááá¯ááœáá·áºáááºá
áá«ááŒá±á¬áá²á·ááá·áºá¡ááá¯ááºáž Istio ááẠáá¯ááºáá±á¬ááºáá»ááºá¡á¬ážáá¯á¶ážááᯠá¡ááá®áá±ážááŸááºážáá»á¬ážá¡ááœáẠáá¯á¶ážáááœáá·áºáááºážááŒááºáá¬á áœá¬ á¡áá±á¬ááºá¡áááºáá±á¬áºáááºá áááºááá¯áá² ááŒáá·áºáá¡á±á¬ááºá algorithm ááŸá¬ á€ááá¯á·ááŒá áºáááº-
- áááºáá±á¬ááºááŸá¯á áá¬ážááŸááºážá¡áá áºááᯠá¡áá¯á¶ážááŒá¯ááŒááºážá
- áá±ážááœá²ááœááºááááºáá¬ááá¯ážááœááºážááŒááºážáá»ááºážáááºááŸá¯á¡áá±á«áº áá°áááºá istio-init ááœááºááááºáá¬ááŸáá·áº istio-á¡á±ážáá»áá·áºááœááºááááºáᬠ(áá¶ááááº) ááᯠááœá²á·á ááºážááŸá¯áá¯á¶á á¶ááá¯á¡áá¯á¶ážááŒá¯ááá·áºá¡ááá·áºááœáẠááá·áºááœááºážáá¬ážááẠááá¯á·ááá¯áẠáááºážááá¯á·ááᯠKubernetes Pod ááá±á¬áºááŒáá»ááºááœáẠááá¯ááºááá¯ááºááá·áºááœááºážááŒá®ážááŒá áºáááºá
- istio-init container ááẠpod ááœáẠiptables á
ááºážáá»ááºážáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯ááá·áº script áá
áºáá¯ááŒá
áºáááºá istio-agent ááœááºááááºáá¬ááœáẠáááºáá¬ážáááá·áº á¡ááœá¬ážá¡áá¬ááᯠááŒááºáááºáááºááŸááºááŒááºážá¡ááœáẠááœá±ážáá»ááºá
áᬠááŸá
áºáá¯ááŸááááº- iptables á
ááºážáá»ááºážáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯áá« ááá¯á·ááá¯ááºá
TPROXY . á á¬áá±ážáá»áááºááœááºá áá¯á¶áá±áá»ááºážáááºáá¯á¶ááŸá¬ ááŒááºáááºááœáŸááºážá ááºážáá»ááºážáá»á¬ážááŒá áºáááºá istio-init ááœááºá áááºááá·áºá¡ááœá¬ážá¡áá¬ááᯠááŒá¬ážááŒááºááŒááºáá±á¬ááºááŒá®áž istio-agent ááá¯á· áá±ážááá¯á·ááá·áºáááºááᯠá á®á ááºáááºááŸááºááá¯ááºáááºá á¥ááá¬á¡á¬ážááŒáá·áºá á¡áááºááŸáá·áºá¡ááœááºáááºážááŒá±á¬ááºážá¡á¬ážáá¯á¶ážááᯠááŒá¬ážááŒááºááá¯ááºáááºá áááºááẠáá±á¬ááºáá»á¬ážááᯠáááºááŸááºáááºááá¯á¡ááºáááºá-i
О-b
á¡áááá¹áá«ááºááá¯á·*
. ááŒá¬ážááŒááºááẠáá®ážááŒá¬áž port áá»á¬ážááᯠááẠáááºááŸááºááá¯ááºáááºá áá®ážááŒá¬ážááœááºáááºáá áºáá¯á¡á¬áž ááŒá¬ážááŒááºááá¬ážáá®ážááá¯ááºáááºá áááºážááᯠá¡áá¶ááᯠá¡áá¯á¶ážááŒá¯á áááºááŸááºááá¯ááºáááºá-x
. - init containers áá»á¬ážááᯠááœááºáá»ááºááŒá®ážáá±á¬ááºá pilot-agent (áá¶ááááº) á¡áá«á¡ááẠáááºááá á¹á ááºážáá»á¬ážááᯠá áááºáá¯ááºáá¯ááºááá¯ááºáá«áááºá áááºážááẠGRPC ááŸáá áºááá·áº á¡áá¯á¶ážááŒá¯áá¬ážááŒá®ážáá±á¬ Pilot ááŸáá·áº áá»áááºáááºááŒá®áž á¡á á¯á¡áá±ážááŸá áááºááŸááááºáá±á¬ááºááŸá¯áá»á¬ážááŸáá·áº áááºážááŒá±á¬ááºážáááºááŸááºááŒááºážááá¯ááºáᬠáá°áá«ááá»á¬ážá¡á¬ážáá¯á¶ážááᯠáááºáá¶áááŸááááºááŒá áºáááºá áááºáá¶áááŸáááá·áºáá±áá¬á¡áá áá°á á¡á á¯á¡áá±ážáá»á¬ážááᯠá á®á ááºáááºááŸááºááŒá®áž Kubernetes á¡á á¯á¡áá±ážááŸá áá»áœááºá¯ááºááá¯á·á á¡ááá®áá±ážááŸááºážáá»á¬ážá á¡áá¯á¶ážááŸááºáá»á¬ážááá¯á· ááá¯ááºááá¯ááºáá¬áááºáá±ážáááºá á¡áá±ážááŒá®ážáá±á¬á¡áá»ááºááá¯áááºáž ááŸááºáá¬ážáá¬ážááẠááá¯á¡ááºáá«áááº- áá¶ááááºááẠáá¬ážáá±á¬ááºááŒááºážá áááºááá·áº áá¬ážáááºáá°áá»á¬áž (IPá ááá¯á·ááºá¡ááœá²áá»á¬áž) ááᯠá¡ááºááá¯ááºá¡á¬ážááá¯áẠá á®á ááºáá±ážáá«áááºá ááá¯á·ááŒá±á¬áá·áºá áá±á¬ááºážááá¯ááŸá¯áá»á¬ážááẠpod áá²ááá¯á·áááºáá±á¬ááºáá±á¬á¡áá«á sidecar ááŸá iptables á ááºážáá»ááºážáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯á ááŒááºáááºááœáŸááºážááá¯ááá·áºá¡áá«á á¡áá°ážááá¯ááºá á¬ážááŸááºááẠá¡ááá¯áá«áá»áááºáááºááŸá¯áá»á¬ážááᯠá¡á±á¬ááºááŒááºá áœá¬áá¯ááºáá±á¬ááºááá¯ááºááŒá®áž áá¬ááºá¡ááœá¬ážá¡áá¬ááᯠáá±á¬ááºááẠproxy áá¯ááºáááá·áºáá±áá¬ááᯠáá¬ážáááºáá±ááŒá®ááŒá áºáááºá á€á¡ááá·áºááœááºá áá»áœááºá¯ááºááá¯á·ááẠáá±á¬ááºááŸááŒáá·áºááŸá¯ááá·áº Mixer ááá¯á· á¡áá»ááºá¡áááºáá»á¬ážááᯠáá±ážááá¯á·ááŒá®áž ááŒá±áá¬áá¶ááŒááºážá¡ááá¯ááºážáá»á¬ážááᯠáá±ážááá¯á·áá«áááºá
ááááºá¡áá±ááŒáá·áºá áá»áœááºá¯ááºááá¯á·ááẠá¡ááŸáẠ(Pilot) áá áºáá¯á០configure áá¯ááºááá¯ááºáá±á¬ envoy proxy áá¬áá¬áá»á¬ážá ááœááºáááºáá áºáá¯áá¯á¶ážááᯠáááŸááá«áááºá á¡áááºááŸáá·áºá¡ááœáẠáá±á¬ááºážááá¯áá»ááºá¡á¬ážáá¯á¶ážááẠáá¶ááááºááŸáá áºááá·áº áá±á¬ááºááœááºáá±ážáááºá ááá¯á·á¡ááŒááºá TCP á¡ááœá¬ážá¡áá¬áá»á¬ážááá¯áᬠááŒá¬ážááŒááºáá¶ááááºá ááá¯ááá¯áááºááŸá¬ Kubernetes áááºáá±á¬ááºááŸá¯ IP ááᯠââááŒá±á¬ááºážáá²ááŒááºážáááŸááá² UDP ááœáẠkube-dns ááŒáá·áº ááŒá±ááŸááºážáá¬ážáááºá ááá¯á·áá±á¬áẠááŒá±ááŸááºážááŒá®ážáá±á¬ááºá ááœááºáá¬ááá·áºáá±á¬ááºážááá¯áá»ááºááᯠáá¶ááááºá ááŒá¬ážááŒááºááŒá®áž á á®áá¶áá±á¬ááºááœááºáááºá áááºážááẠáá±á¬ááºážááá¯áá»ááºá¡á¬áž áááºááá·áº endpoint ááá¯á· áá±ážááá¯á·ááá·áºááẠ(ááá¯á·áá±á¬áº áááºáá±á¬ááºááœáá·áºáá°áá«ááá»á¬áž ááá¯á·ááá¯áẠalgorithm á circuit breaker ááœááº) ááᯠáá¯á¶ážááŒááºááŒá®ážááŒá áºáááºá
Pilot ááᯠáá»áœááºá¯ááºááá¯á· ááŸá¬ááœá±ááœá±á·ááŸááá²á·ááŒá®áž ááá¯á¡áá« Mixer á¡áá¯ááºáá¯ááºáá¯á¶ááŸáá·áº á¡áááºááŒá±á¬áá·áº ááá¯á¡ááºááŒá±á¬ááºáž áá¬ážáááºááẠááá¯á¡ááºáá«áááºá áááºážá¡ááœááºááá¬ážáááºá
á¬ááœááºá
á¬áááºážáá»á¬ážááá¯áááºáááºááá¯ááºáááºá
áááºážááááºááŸááá¯á¶á á¶ááœáẠáá±á¬ááŸá±á¬ááŒááºážááœáẠá¡á áááºá¡ááá¯ááºážááŸá áºáá¯áá«áááºáááº- istio-telemetryá istio-policy (áá¬ážááŸááºáž 0.8 áááá¯ááºáá® áááºážááẠistio-mixer á¡á áááºá¡ááá¯ááºážáá áºáá¯ááŒá áºáááº)á áááºážááá¯á·ááŸá áºáŠážá áá¯á¶ážááẠáá±á¬ááŸá±á¬áá«áááºáá°áá»á¬ážááŒá áºááŒá®áž áááºážááá¯á·áá áºáŠážá á®ááẠáááºážáááá¯ááºááá¯ááºáá¬áááºá¡ááœáẠáá¬áááºááŸááááºá Istio telemetry ááẠGRPC ááŸáááá·áº áááºááá·áºáá±áá¬ááá¯á·ááœá¬ážáááºááŸáá·áº áá±ážááœá²á¡á á®áááºáá¶ááŒááºážááœááºááááºáá¬áá»á¬ážá០áááºáá²á·ááá¯á· ááá·áºáááºáá»ááºáá»á¬ážááŒáá·áº ááááºážá¡áá»ááºá¡áááºááᯠáááºáá¶áááŸáááẠá Istio-policy ááẠá ááºážáá»á¥áºážá ááºážáááºážáá»á¬áž áá»á±áááºááŸá¯ááŸááááŸá á á áºáá±ážááẠáá±á¬ááºážááá¯áá»ááºáá»á¬ážááᯠáááºáá¶áá«áááºá Poilicy checks áá»á¬ážááẠáá±á¬ááºážááá¯ááŸá¯ááá¯ááºážá¡ááœáẠáá¯ááºáá±á¬ááºááŒááºážááá¯ááºáá² client (ááá¯ááºáá¬ážáá±á«áºááœááº) á¡áá»áááºá¡ááá¯ááºážá¡áá¬áá áºáá¯á¡áá ááááºážáááºážáá¬ážáááºá á¡á á®áááºáá¶áá»ááºá á áºáá±ážááŸá¯áá»á¬ážááᯠá¡á á¯ááá¯ááºáá±á¬ááºážááá¯ááŸá¯áá»á¬ážá¡ááŒá Ạáá±ážááá¯á·áááºá áááºááᯠconfigure áá¯ááºááŒá®áž ááẠparameters ááœá±ááᯠááá¯á·ááá·áºáááºááá¯áᬠáááºážáááºážááŒá¬á០ááŒáá·áºáá¡á±á¬ááºá
Mixer ááẠáááºáá®áá®áá¬áá±áᬠáááºáááºááŒááºážááŸáá·áº áá»áááºáááºááŒááºážááœáẠá¡ááŸá±á¬ááºá¡ááŸááºáááºážáááºážáá±á¬ áá¯ááºáá±á¬ááºááŸá¯áá»á¬ážááᯠáá±áá»á¬á á±ááá·áº ááŒáá·áºáá¬ážá áœá¬áááŸáááá¯ááºáá±á¬ á¡á áááºá¡ááá¯ááºážáá áºáᯠááŒá áºááá·áºáááºá á áá áºá¡á¬áž á¡ááá·áºáá±á«ááºážáá»á¬ážá áœá¬ ááŒá¬ážáá¶á¡ááŒá Ạááááºá¡ááŒá Ạááá°áááºá á¡á ááá¯ááºážááœááºá ááœááºááááºáá¬á sidecar side ááœáẠdata ááᯠbuffered ááŒá áºááŒá®ážá ááá¯á·áá±á¬áẠmixer side ááœááºá ááá¯á·áá±á¬áẠmixer backends áá¯áá±á«áºááœááºáááºá ááááºá¡áá±ááŒáá·áºá á áá áºá¡á áááºá¡ááá¯ááºážáá»á¬áž áá»ááºááœááºáá«áá á áá áºá¡á¬áž ááŒááºáááºááá°ááŒá®ážáá±á¬áẠááŒá¬ážáá¶ááŒá®ážááœá¬ážáá¬ááŒá®áž áá®ááŒááºážááœá¬ážáááºááŒá áºáááºá Mixer áá±á¬ááºáá¶áá»á¬ážááẠáááºáá®áá®áá¬áá±áá¬áá±ážááá¯á·áááºá¡ááœáẠá¡áá¯á¶ážááŸááºáá»á¬ážááŒá áºáááº- statsdá newrelic á áááºááá¯á·ááŒá áºáááºá áááºáááºáááºáááá¯ááºááá¯ááºáá±á¬ááºáá¶ááá¯áá±ážááá¯ááºáááºá áááºážáááºá¡áá±á¬áºáá±ážááá¯ážááŸááºážáááºá áááºážááá¯ááŒá¯áá¯ááºáá¯á¶ááá¯áá»áœááºá¯ááºááá¯á·ááŒááºáááá·áºáááºá
á¡ááŸá
áºáá»á¯ááºááá»áŸáẠistio-telemetry ááŸáá·áº áá¯ááºáá±á¬ááºááẠá¡á
á®á¡á
ááºááŸá¬ á¡á±á¬ááºáá«á¡ááá¯ááºážááŒá
áºáááºá
- áááºáá±á¬ááºááŸá¯ 1 ááẠáááºáá±á¬ááºááŸá¯ 2 ááá¯á· áá±á¬ááºážááá¯áá»áẠáá±ážááá¯á·áááºá
- áááºáá±á¬ááºááŸá¯ 1 ááŸááœááºááœá¬áá±á¬á¡áá«á áá±á¬ááºážááá¯áá»ááºááᯠáááºážáááá¯ááºááá¯ááºááá¯ááºáá¬ážáá²ááœáẠááá·áºááœááºážáá¬ážáááºá
- ááá¯ááºáá¬ážáá¶ááááºááẠáááºáá±á¬ááºááŸá¯ 2 ááá¯á· áá±á¬ááºážááá¯áá»áẠáááºáá²á·ááá¯á· áá±á¬ááºááŸááá¬áááºááᯠá á±á¬áá·áºááŒáá·áºááŒá®áž ááá¯á¡ááºáá±á¬ á¡áá»ááºá¡áááºáá»á¬ážááᯠááŒááºáááºáá±ážáááºá
- ááá¯á·áá±á¬áẠá¡á á®áááºáá¶á á¬áá±á¬ááºážááá¯ááŸá¯ááᯠá¡áá¯á¶ážááŒá¯á áááºážááᯠistio-telemetry ááá¯á· áá±ážááá¯á·áá«á
- Istio-telemetry ááẠá€á¡á á®áááºáá¶á á¬ááᯠáá±á¬ááºáá¶áá»á¬ážáᶠáá±ážááá¯á·ááá·áºáááºá áááºááá·áºáá±áá¬ááᯠáá±ážááá¯á·ááá·áºáááºááᯠáá¯á¶ážááŒááºáááºá
- Istio-telemetry ááẠááá¯á¡ááºáá«á backend ááá¯á· á¡á á®áááºáá¶á á¬áá±áá¬ááᯠáá±ážááá¯á·áááºá
ááá¯á¡áá«ááœáẠá¡áááá¡á áááºá¡ááá¯ááºážáá»á¬áž (Pilot ááŸáá·áº sidecar envoy) áá»á¬ážáá¬áá«áááºáá±á¬ Istio ááᯠáááºááá¯á·á¡áá¯á¶ážááŒá¯ááááºááᯠááŒáá·áºááŒáá«á áá¯á·á
ááááŠážá áœá¬ Pilot ááŸáááºáá±á¬ áááºáááœá²á·á ááºážáá¯á¶ (mesh) ááᯠááŒáá·áºááŒáá«á áá¯á·á
apiVersion: v1
kind: ConfigMap
metadata:
name: istio
namespace: istio-system
labels:
app: istio
service: istio
data:
mesh: |-
# пПка ÑÑП Ме вклÑÑаеЌ ПÑпÑÐ°Ð²ÐºÑ tracing ОМÑПÑЌаÑОО (pilot МаÑÑÑÐŸÐžÑ envoyâО ÑакОЌ ПбÑазПЌ, ÑÑП ПÑпÑавка Ме бÑÐŽÐµÑ Ð¿ÑПОÑÑ
ПЎОÑÑ)
enableTracing: false
# пПка ÑÑП Ме ÑказÑваеЌ mixer endpointâÑ, ÑÑÐŸÐ±Ñ sidecar кПМÑейМеÑÑ ÐœÐµ ПÑпÑавлÑлО ОМÑПÑЌаÑÐžÑ ÑÑЎа
#mixerCheckServer: istio-policy.istio-system:15004
#mixerReportServer: istio-telemetry.istio-system:15004
# ÑÑавОЌ вÑеЌеММПй пÑПЌежÑÑПк, Ñ ÐºÐŸÑПÑÑÐŒ бÑÐŽÐµÑ envoy пеÑеÑпÑаÑОваÑÑ Pilot (ÑÑП ÐŽÐ»Ñ ÑÑаÑПй веÑÑОО envoy proxy)
rdsRefreshDelay: 5s
# default кПМÑОгÑÑаÑÐžÑ ÐŽÐ»Ñ envoy sidecar
defaultConfig:
# аМалПгОÑМП как rdsRefreshDelay
discoveryRefreshDelay: 5s
# ПÑÑавлÑеЌ пП ÑЌПлÑÐ°ÐœÐžÑ (пÑÑÑ Ðº кПМÑОгÑÑаÑОО О бОМаÑÑ envoy)
configPath: "/etc/istio/proxy"
binaryPath: "/usr/local/bin/envoy"
# ЎеÑПлÑМПе ÐžÐŒÑ Ð·Ð°Ð¿ÑÑеММПгП sidecar кПМÑейМеÑа (ОÑпПлÑзÑеÑÑÑ, МапÑОЌеÑ, в ОЌеМаÑ
ÑеÑвОÑа пÑО ПÑпÑавке tracing spanâПв)
serviceCluster: istio-proxy
# вÑеЌÑ, кПÑПÑПе бÑÐŽÐµÑ Ð¶ÐŽÐ°ÑÑ envoy ЎП ÑПгП, как ПМ пÑОМÑЎОÑелÑМП завеÑÑÐžÑ Ð²Ñе ÑÑÑаМПвлеММÑе ÑПеЎОМеМОÑ
drainDuration: 45s
parentShutdownDuration: 1m0s
# пП ÑЌПлÑÐ°ÐœÐžÑ ÐžÑпПлÑзÑÑÑÑÑ REDIRECT пÑавОла iptables. ÐПжМП ОзЌеМОÑÑ ÐœÐ° TPROXY.
#interceptionMode: REDIRECT
# ÐПÑÑ, Ма кПÑПÑПЌ бÑÐŽÐµÑ Ð·Ð°Ð¿ÑÑеМа admin Ð¿Ð°ÐœÐµÐ»Ñ ÐºÐ°Ð¶ÐŽÐŸÐ³ÐŸ sidecar кПМÑейМеÑа (envoy)
proxyAdminPort: 15000
# аЎÑеÑ, пП кПÑПÑÐŸÐŒÑ Ð±ÑÐŽÑÑ ÐŸÑпÑавлÑÑÑÑÑ traceâÑ Ð¿ÐŸ zipkin пÑПÑÐŸÐºÐŸÐ»Ñ (в МаÑале ÐŒÑ ÐŸÑклÑÑОлО ÑÐ°ÐŒÑ ÐŸÑпÑавкÑ, пПÑÑÐŸÐŒÑ ÑÑП пПле ÑейÑÐ°Ñ ÐœÐµ бÑÐŽÐµÑ ÐžÑпПлÑзПваÑÑÑÑ)
zipkinAddress: tracing-collector.tracing:9411
# statsd аЎÑÐµÑ ÐŽÐ»Ñ ÐŸÑпÑавкО ЌеÑÑОк envoy кПМÑейМеÑПв (ПÑклÑÑаеЌ)
# statsdUdpAddress: aggregator:8126
# вÑклÑÑаеЌ пПЎЎеÑÐ¶ÐºÑ ÐŸÐ¿ÑОО Mutual TLS
controlPlaneAuthPolicy: NONE
# аЎÑеÑ, Ма кПÑПÑПЌ бÑÐŽÐµÑ ÑлÑÑаÑÑ istio-pilot ÐŽÐ»Ñ ÑПгП, ÑÑÐŸÐ±Ñ ÑППбÑаÑÑ ÐžÐœÑПÑЌаÑÐžÑ ÐŸ service discovery вÑеЌ sidecar кПМÑейМеÑаЌ
discoveryAddress: istio-pilot.istio-system:15007
á¡ááá ááááºážáá»á¯ááºááŸá¯ á¡á áááºá¡ááá¯ááºážáá»á¬áž (ááááºážáá»á¯ááºáá±áž áá±áá¬ááº) á¡á¬ážáá¯á¶ážááᯠKubernetes ááŸá namespace istio-system ááœáẠáá¬ážááŸááá«áááºá
á¡áááºážáá¯á¶ážáá±á¬á· Pilot ááᯠá¡áá¯á¶ážáá»ááá¯á·áá² ááá¯áá«áááºá áá®á¡ááœáẠáá»áœááºáá±á¬áºááá¯á· áá¯á¶ážáá«áááºá
ááŒá®ážáá±á¬á· ááœááºááááºáá¬áá²á· ááá¯ážááœááºáž sidecar ááᯠááá¯ááºááá¯áẠconfigure áá¯ááºáá«áááºá
Init container-
initContainers:
- name: istio-init
args:
- -p
- "15001"
- -u
- "1337"
- -m
- REDIRECT
- -i
- '*'
- -b
- '*'
- -d
- ""
image: istio/proxy_init:1.0.0
imagePullPolicy: IfNotPresent
resources:
limits:
memory: 128Mi
securityContext:
capabilities:
add:
- NET_ADMIN
ááŸáá·áº áá±ážááœá²-
name: istio-proxy
args:
- "bash"
- "-c"
- |
exec /usr/local/bin/pilot-agent proxy sidecar
--configPath
/etc/istio/proxy
--binaryPath
/usr/local/bin/envoy
--serviceCluster
service-name
--drainDuration
45s
--parentShutdownDuration
1m0s
--discoveryAddress
istio-pilot.istio-system:15007
--discoveryRefreshDelay
1s
--connectTimeout
10s
--proxyAdminPort
"15000"
--controlPlaneAuthPolicy
NONE
env:
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: POD_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: INSTANCE_IP
valueFrom:
fieldRef:
fieldPath: status.podIP
- name: ISTIO_META_POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: ISTIO_META_INTERCEPTION_MODE
value: REDIRECT
image: istio/proxyv2:1.0.0
imagePullPolicy: IfNotPresent
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
memory: 2048Mi
securityContext:
privileged: false
readOnlyRootFilesystem: true
runAsUser: 1337
volumeMounts:
- mountPath: /etc/istio/proxy
name: istio-envoy
á¡áá¬á¡á¬ážáá¯á¶ážááᯠá¡á±á¬ááºááŒááºá
áœá¬á
áááºááá¯ááºáááºá áááºááẠServiceAccountá ClusterRoleá ClusterRoleBindingá CRD for Pilotá ááœá±á·ááŸáááá¯ááºááá·áºáá±á¬áºááŒáá»ááºáá»á¬ážááᯠáááºáá®ážáááºááá¯á¡ááºáá«áááºá
ááááºá¡áá±ááŒáá·áºá áá»áœááºá¯ááºááá¯á·ááẠá¡áá°ážáá¶ááááºááŸáá·áºá¡áá° áá±ážááœá²áá¬ážááᯠááá¯ážááœááºážááá·áº áááºáá±á¬ááºááŸá¯ááẠá¡á±á¬ááºááŒááºá áœá¬ á áááºááá·áºáááºá áá±áá¬ááºááŸá°ážáá¶á០ááŸá¬ááœá±ááœá±á·ááŸáááŸá¯ááŸáá·áº áá¯ááºáááºážá áẠáá±á¬ááºážááá¯áá»ááºáá»á¬ážá¡á¬ážáá¯á¶ážááᯠáááºáá¶áááŸááááºááŒá áºáááºá
ááááºážáá»á¯ááºáá±ážáá±áá¬ááºá¡á áááºá¡ááá¯ááºážáá»á¬ážá¡á¬ážáá¯á¶ážááẠááá¯ááºáá¶áá²á·á¡áá¯á¶ážáá»áááá¯ááááºáá»á¬ážááŒá áºááŒááŒá®áž ááŒá¿áá¬áááŸááá² á¡áá»á¬ážááá¯áẠá¡ááá¯ááºážá¡áá¬ááᯠáá¬ážáááºááẠá¡áá±ážááŒá®ážáá«áááºá áá±áá¬á¡á¬ážáá¯á¶ážááᯠKubernetes á¡áááºážá¡ááŒá áºáá»á¬ážá á áááºááŒáá¯ááºáá±á¬áºááŒáá»ááºáá¯á¶á á¶ááŒáá·áº etcd ááœáẠááááºážáááºážáá¬ážáááºá
ááá¯á·á¡ááŒááºá Istio (á
ááºážáááºáá²) ááẠá¡á
á¯á¡áá±ážááŒááºáááœááºáááºáááºááá¯ááºá
áœááºážááŸáááŒá®áž Kubernetes á¡á
á¯á¡áá±ážáá»á¬ážá
áœá¬ááŒá¬ážááŸá áááºáá±á¬ááºááŸá¯ááŸá¬ááœá±ááœá±á·ááŸáááŸá¯ááᯠááŒáá·áºááŸá¯ááŒááºážááŸáá·áº ááŸá¯ááºááŸááºáááºáá±áá±á¬ áááºáá±á¬ááºááŸá¯ááᯠááŸá¬ááœá±ááá¯ááºá
áœááºážááŸááááºá á€á¡ááŒá±á¬ááºážááá¯ááá¯áááºááŸá¯ááá¯ááºáá«áááºá
Multi-cluster áááºáááºááŸá¯á¡ááœááºá á¡á±á¬ááºáá«ááá·áºáááºáá»ááºáá»á¬ážááᯠáááááŒá¯áá«-
- Pod CIDR ááŸáá·áº áááºáá±á¬ááºááŸá¯ CIDR ááẠá¡á á¯á¡áá±ážá¡á¬ážáá¯á¶ážááœáẠáá®ážááá·áºááŒá áºáááẠááŒá áºááŒá®áž áááºááááºááá«á
- CIDR Pods á¡á¬ážáá¯á¶ážááẠá¡á á¯á¡áá±ážáá»á¬ážááŒá¬ážááŸá CIDR Pods áá»á¬ážá០áááºáá±á¬ááºááá¯ááºááá«áááºá
- Kubernetes API áá¬áá¬áá»á¬ážá¡á¬ážáá¯á¶ážááẠáá áºáŠážááŸáá·áºáá áºáŠáž áááºáá±á¬ááºááá¯ááºááá«áááºá
á€áááºááŸá¬ Istio ááŸáá·áºá
áááºáááºáá°áá®ááẠáááŠážá¡áá»ááºá¡áááºáá»á¬ážááŒá
áºáááºá ááá¯á·áá±á¬áº áá»áá¯á·ááœááºážáá»ááºáá»á¬ážá
áœá¬ ááŸááá«áá±ážáááºá á¥ááá¬á¡á¬ážááŒáá·áºá ááŒááºáá¡ááœá¬ážá¡áá¬áááºážááŒá±á¬ááºážááŒááŒááºážáá¡ááºá¹áá«áááºáá»á¬áž (á¡á
á¯á¡áá±ážááŒááºá)á ááá¯ááºáá¬ážáá»á¬ážááᯠá¡ááŸá¬ážááŸá¬ááŒááºážá áááá¯ááá¯ááºááŒá¯áá¯ááºááŒááºážá áá±á¬ááŸá±á¬ááá·áºááœááºážááŒááºážááŸáá·áº á
áááºááŒáá¯ááºáá±á«ááºážá
ááºáááááá¬áá±á¬ááºááœááºááœáẠáá±ážáá¬ážááŒááºážá ááŒá±áá¬áá¶ááŒááºážááá¹ááá¬ážááᯠáááºááŸááºááŒááºážááŸáá·áº á¡áá°ážáá¶ááááºááᯠá¡áá¯á¶ážááŒá¯á áááºážááá¯ááºáá±á¬ááºááŸá¯ááᯠáá»ááºážáááºááŒááºážá
á€á¡áá¬á¡á¬ážáá¯á¶ážááᯠá¡á±á¬ááºáá«á
á¬áá±áá»á¬ážááœáẠáá¯á¶ážáááºáá«áááºá áááºážáá²á·áá±ážááœááºážááœá±áá±ážá áá«áá°ááá¯á·ááá¯áá¯á¶ážááœááºááá¯á·ááŒáá¯ážá
á¬ážáááá·áºáááºá
source: www.habr.com