
рдЗрд╕реНрддрд┐рдпреЛ рд╡рд┐рддрд░рд┐рдд рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ, рд╕реБрд░рдХреНрд╖рд╛ рдФрд░ рдирд┐рдЧрд░рд╛рдиреА рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЙрдкрдХрд░рдг рд╣реИред рдЗрд╕реНрддрд┐рдпреЛ рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдФрд░ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рддрд░рд╣ рдХреА рддрдХрдиреАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдкреИрдХреЗрдЬрд┐рдВрдЧ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдб рдХреЗ рд▓рд┐рдП рдХрдВрдЯреЗрдирд░ рдФрд░ рддреИрдирд╛рддреА рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрднрд░рддрд╛ рдФрд░ рдЗрди рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рдХреБрдмреЗрд░рдиреЗрдЯ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдЗрд╕реНрддрд┐рдпреЛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдкрддрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХреИрд╕реЗ рдЗрди рддрдХрдиреАрдХреЛрдВ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдХрдИ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдЖрд╡реЗрджрди рдЗрд╕реНрддрд┐рдпреЛ рдХреЗ рдмрд┐рдирд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрди рдЙрдкрдХрд░рдгреЛрдВ рдФрд░ рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЛ рдЬрд╛рдирддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕ рдЧрд╛рдЗрдб рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВ рдФрд░ рд╕реАрдзреЗ Google рдХреБрдмреЗрд░рдиреЗрдЯ рдЗрдВрдЬрди (GKE) рдкрд░ Istio рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ рдпрд╛ GKE рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдкрд░ Istio рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВред
рдпрд╣ рдПрдХ рдЪрд░рдг-рджрд░-рдЪрд░рдг рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛ рд╣реИ рдЬрд╣рд╛рдВ рд╣рдо рд╕реНрд░реЛрдд рдХреЛрдб рд╕реЗ рдкреВрд░реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ GKE рдкрд░ рдПрдХ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рджреЗрдЦреЗрдВрдЧреЗ рддрд╛рдХрд┐ рдЖрдкрдХреЛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрди рддрдХрдиреАрдХреЛрдВ рдХрд╛ рдПрдХ рдореВрд▓ рд╡рд┐рдЪрд╛рд░ рдкреНрд░рд╛рдкреНрдд рд╣реЛред рдЖрдк рдпрд╣ рднреА рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдХреИрд╕реЗ рдЗрд╕реНрддрд┐рдпреЛ рдЗрди рддрдХрдиреАрдХреЛрдВ рдХрд╛ рд▓рд╛рдн рдЙрдард╛рддреА рд╣реИред рдпрд╣ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдХрдВрдЯреЗрдирд░, рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕, рд╕реЗрд╡рд╛ рдЬрд╛рд▓ рдпрд╛ рдЗрд╕реНрддрд┐рдпреЛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВред
рдХрд╛рд░реНрдп
рдЗрд╕ рдЧрд╛рдЗрдб рдореЗрдВ, рдЖрдк рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдп рдкреВрд░рд╛ рдХрд░реЗрдВрдЧреЗ:
- рдХрдИ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░рд▓ рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рдЦреЛрдЬ рдХрд░рдирд╛ред
- рд╕реНрд░реЛрдд рдХреЛрдб рд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЪрд▓рд╛рдирд╛ред
- рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдЖрд╡реЗрджрди рдкреИрдХрд┐рдВрдЧред
- рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреНрд▓рд╕реНрдЯрд░ рдмрдирд╛рдирд╛
- рдПрдХ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдХрдВрдЯреЗрдирд░ рддреИрдирд╛рдд рдХрд░реЗрдВред
рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ
рдХреБрдмреЗрд░рдиреЗрдЯ рдЗрдВрдЬрди API рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВ:
- Google рдХреНрд▓рд╛рдЙрдб рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХрдВрд╕реЛрд▓ рдореЗрдВ рдХреБрдмреЗрд░рдиреЗрдЯ рдЗрдВрдЬрди рдкреГрд╖реНрда рдкрд░ рдЬрд╛рдПрдВред
- рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВ рдпрд╛ рдЪреБрдиреЗрдВред
- рдПрдкреАрдЖрдИ рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдЪрд╛рд▓реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВред рдЗрд╕рдореЗрдВ рдХрдИ рдорд┐рдирдЯ рд▓рдЧ рд╕рдХрддреЗ рд╣реИрдВред
- рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдмрд┐рд▓рд┐рдВрдЧ Google рдХреНрд▓рд╛рдЙрдб рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХреА рдЧрдИ рд╣реИред рдмрд┐рд▓рд┐рдВрдЧ рд╕рдХреНрд╖рдо рдХрд░рдирд╛ рд╕реАрдЦреЗрдВ ред
рдЗрд╕ рдЧрд╛рдЗрдб рдореЗрдВ, рдЖрдк рдХреНрд▓рд╛рдЙрдб рд╢реИрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдбреЗрдмрд┐рдпрди-рдЖрдзрд╛рд░рд┐рдд рд▓рд┐рдирдХреНрд╕ рдпрд╛ рд▓рд┐рдирдХреНрд╕ рдпрд╛ рдореИрдХрдУрдПрд╕ рдХрдВрдкреНрдпреВрдЯрд░ рдХреЗ рд╕рд╛рде Google рдХрдВрдкреНрдпреВрдЯ рдЗрдВрдЬрди рдореЗрдВ рдЬреА 1-рдЫреЛрдЯреА рдЖрднрд╛рд╕реА рдорд╢реАрди рддреИрдпрд╛рд░ рдХрд░рддрд╛ рд╣реИред
рд╡рд┐рдХрд▓реНрдк A: рдХреНрд▓рд╛рдЙрдб рд╢реЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
рдХреНрд▓рд╛рдЙрдб рд╢реЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд╛рдн:
- рдЕрдЬрдЧрд░ 2 рдФрд░ рдкрд╛рдпрдерди 3 рд╡рд┐рдХрд╛рд╕ рд╡рд╛рддрд╛рд╡рд░рдг ( рд╡рд░реНрдЪреБрдЕрдирд╡ рд╕рд╣рд┐рдд) рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдиреБрдХреВрд▓рд┐рдд рд╣реИрдВред
- Gcloud , docker , git рдФрд░ kubectl рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рдЯреВрд▓ рдЬреЛ рд╣рдо рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рд╡реЗ рдкрд╣рд▓реЗ рд╕реЗ рдЗрдВрд╕реНрдЯреЙрд▓ рд╣реИрдВред
- рдЖрдкрдХреЗ рдкрд╛рд╕ рдЪреБрдирдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдкрд╛рда рд╕рдВрдкрд╛рджрдХ рд╣реИрдВ:
- рдХреНрд▓рд╛рдЙрдб рд╢реЗрд▓ рд╡рд┐рдВрдбреЛ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдПрдбрд┐рдЯ рдЖрдЗрдХрди рдХреЗ рд╕рд╛рде рдЦреБрд▓рдиреЗ рд╡рд╛рд▓рд╛ рдХреЛрдб рдПрдбрд┐рдЯрд░ ред
- рдПрдордПрд╕реАрдПрд╕, рд╡рд┐рдо, рдпрд╛ рдиреИрдиреЛ рдЬреЛ рдХреНрд▓рд╛рдЙрдб рд╢реЗрд▓ рдореЗрдВ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╕реЗ рдЦреБрд▓рддреЗ рд╣реИрдВред
рдХреНрд▓рд╛рдЙрдб рд╢реЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:
- рдЬреАрд╕реАрдкреА рдХрдВрд╕реЛрд▓ рдкрд░ рдЬрд╛рдПрдВред
- GCP рдХрдВрд╕реЛрд▓ рд╡рд┐рдВрдбреЛ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рд╕рдХреНрд░рд┐рдп рдХреНрд▓рд╛рдЙрдб рд╢реИрд▓ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред

GCP рдХрдВрд╕реЛрд▓ рдХреЗ рдирд┐рдЪрд▓реЗ рднрд╛рдЧ рдореЗрдВ , рдПрдХ рдирдИ рд╡рд┐рдВрдбреЛ рдореЗрдВ, рдПрдХ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХреЗ рд╕рд╛рде рдХреНрд▓рд╛рдЙрдб рд╢реИрд▓ рд╕рддреНрд░ рдЦреБрд▓рддрд╛ рд╣реИред

рд╡рд┐рдХрд▓реНрдк рдмреА: рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
рдпрджрд┐ рдЖрдк рд▓рд┐рдирдХреНрд╕ рдпрд╛ macOS рдХреЗ рд╕рд╛рде рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдШрдЯрдХреЛрдВ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдФрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
рдЕрдкрдиреЗ рдкрд╛рдпрдерди 3 рдФрд░ рдкрд╛рдпрдерди 2 рд╡рд┐рдХрд╛рд╕ рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ ред
Gcloud рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЯреВрд▓ рдХреЗ рд╕рд╛рде рдХреНрд▓рд╛рдЙрдб SDK рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВ ред
рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЯреВрд▓ рдХреБрдмреЗрдХреЗрд▓ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВред
gcloud components install kubectl
рдбреЙрдХрд░ рд╕рд╛рдореБрджрд╛рдпрд┐рдХ рд╕рдВрд╕реНрдХрд░рдг (CE) рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВред рдЖрдк рдирдореВрдирд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдХрдВрдЯреЗрдирд░ рдЫрд╡рд┐рдпрд╛рдВ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП docker рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред
GitHub рдХреЗ рд╕рд╛рде рдПрдХ рдирдореВрдирд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Git рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдВрддреНрд░рдг рдЙрдкрдХрд░рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВред
рдирдореВрдирд╛ рдХреЛрдб рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ
рд╣реЗрд▓реЛрд╕реЗрд╡рд░ рд╕реНрд░реЛрдд рдХреЛрдб рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ:
git clone https://github.com/GoogleCloudPlatform/istio-samples
рдирдореВрдирд╛ рдХреЛрдб рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдкрд░ рдЬрд╛рдПрдВ:
cd istio-samples/sample-apps/helloserver
рдмрд╣реБ-рд╕реЗрд╡рд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреА рдЦреЛрдЬ
рдирдореВрдирд╛ рдЖрд╡реЗрджрди рдкрд╛рдпрдерди рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рджреЛ рдШрдЯрдХ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ рдЬреЛ REST рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рддреЗ рд╣реИрдВ:
- рд╕рд░реНрд╡рд░ : рдПрдХ GET рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ , / рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░рд▓ рд╕рд░реНрд╡рд░, рдЬреЛ рдХрдВрд╕реЛрд▓ рдкрд░ "рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб" рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред
- loadgen : рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬреЛ рд╕рд░реНрд╡рд░ рдкрд░ рдЯреНрд░реИрдлрд╝рд┐рдХ рднреЗрдЬрддреА рд╣реИ , рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рдХреЗ рд╡рд┐рдиреНрдпрд╛рд╕ рдпреЛрдЧреНрдп рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рдеред

рд╕реНрд░реЛрдд рд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЪрд▓рд╛рдирд╛
рдПрдХ рдирдореВрдирд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕реЗ рдХреНрд▓рд╛рдЙрдб рд╢реЗрд▓ рдпрд╛ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдЪрд▓рд╛рдПрдВред
1) istio- рдирдореВрдиреЗ / рдирдореВрдирд╛-рдПрдкреНрд▓рд┐рдХреЗрд╢рди / рд╣реЗрд▓реЛрд╕реЗрд╡рд░ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ, рд╕рд░реНрд╡рд░ рдЪрд▓рд╛рдПрдВ:
python3 server/server.py
рдЬрдм рд╕рд░реНрд╡рд░ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдирд┐рдореНрди рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ:
INFO:root:Starting server...
2) рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рдЯрд░реНрдорд┐рдирд▓ рд╡рд┐рдВрдбреЛ рдЦреЛрд▓реЗрдВред рдпрджрд┐ рдЖрдк рдХреНрд▓рд╛рдЙрдб рд╢реЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдПрдХ рдФрд░ рд╕рддреНрд░ рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдРрдб рдЖрдЗрдХрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред
3) рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдиреБрд░реЛрдз рднреЗрдЬреЗрдВ:
curl http://localhost:8080
рд╕рд░реНрд╡рд░ рдЙрддреНрддрд░:
Hello World!
4) рдЙрд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реЗ рдЬрд╣рд╛рдВ рдЖрдкрдиреЗ рдирдореВрдирд╛ рдХреЛрдб рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рд╣реИ, рдЙрд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдкрд░ рдЬрд╛рдПрдВ рдЬрд┐рд╕рдореЗрдВ loadgen рд╣реИ :
cd YOUR_WORKING_DIRECTORY/istio-samples/sample-apps/helloserver/loadgen
5) рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдмрдирд╛рдПрдВ:
export SERVER_ADDR=http://localhost:8080 export REQUESTS_PER_SECOND=5
6) рднрд╛рдЧреЛ virtualenv :
virtualenv --python python3 env
7) рдЖрднрд╛рд╕реА рд╡рд╛рддрд╛рд╡рд░рдг рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд░реЗрдВ:
source env/bin/activate
8) рд▓реЛрдбрдЬреЗрди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ:
pip3 install -r requirements.txt
9) рд░рди рд▓реЛрдбрдЧреЗрди :
python3 loadgen.py
рдЬрдм рдкреНрд░рд╛рд░рдВрдн рдХрд┐рдпрд╛ рдЧрдпрд╛, рддреЛ рд▓реЛрдбрдЧрди рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдВрджреЗрд╢ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ:
Starting loadgen: 2019-05-20 10:44:12.448415 5 request(s) complete to http://localhost:8080
рдПрдХ рдЕрдиреНрдп рдЯрд░реНрдорд┐рдирд▓ рд╡рд┐рдВрдбреЛ рдореЗрдВ, рд╕рд░реНрд╡рд░ рдХрдВрд╕реЛрд▓ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрди рд╕рдВрджреЗрд╢ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ:
127.0.0.1 - - [21/Jun/2019 14:22:01] "GET / HTTP/1.1" 200 - INFO:root:GET request, Path: / Headers: Host: localhost:8080 User-Agent: python-requests/2.22.0 Accept-Encoding: gzip, deflate Accept: */*
рдПрдХ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░рд┐рдкреНрд░реЗрдХреНрд╖реНрдп рд╕реЗ, рд╕рдВрдкреВрд░реНрдг рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдПрдХ рд╣реА рд╣реЛрд╕реНрдЯ (рд╕реНрдерд╛рдиреАрдп рдХрдВрдкреНрдпреВрдЯрд░ рдпрд╛ рдХреНрд▓рд╛рдЙрдб рд╢реИрд▓ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди) рдкрд░ рдЪрд▓рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЖрдк рд╕рд░реНрд╡рд░ рдкрд░ рдЕрдиреБрд░реЛрдз рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
10) рд▓реЛрдбрдЬреЗрди рдФрд░ рд╕рд░реНрд╡рд░ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░рддреНрдпреЗрдХ рдЯрд░реНрдорд┐рдирд▓ рд╡рд┐рдВрдбреЛ рдореЗрдВ Ctrl-c рдбрд╛рд▓реЗрдВред
11) рд▓реЛрдбрдЬреЗрди рдЯрд░реНрдорд┐рдирд▓ рд╡рд┐рдВрдбреЛ рдореЗрдВ, рдЖрднрд╛рд╕реА рд╡рд╛рддрд╛рд╡рд░рдг рдХреЛ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд░реЗрдВ:
deactivate
рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдЖрд╡реЗрджрди рдкреИрдХрд┐рдВрдЧ
GKE рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдирдореВрдирд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди - рд╕рд░реНрд╡рд░ рдФрд░ рд▓реЛрдбрдЬреЗрди - рдХреЛ рдХрдВрдЯреЗрдирд░реЛрдВ рдореЗрдВ рдкреИрдХреЗрдЬ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдХрдВрдЯреЗрдирд░ рдкрд░реНрдпрд╛рд╡рд░рдг рд╕реЗ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреИрдХ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реИред
рдПрдХ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдкреИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдбреЙрдХрд░рдлрд╛рдЗрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред Dockerfile рдПрдХ рдкрд╛рда рдлрд╝рд╛рдЗрд▓ рд╣реИ рдЬреЛ рдХрд┐рд╕реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕реНрд░реЛрдд рдХреЛрдб рдФрд░ рдЙрд╕рдХреА рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ Docker рдЫрд╡рд┐ рдореЗрдВ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрджреЗрд╢реЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ ред рдирд┐рд░реНрдорд╛рдг рдХреЗ рдмрд╛рдж, рдЖрдк рдЫрд╡рд┐ рдХреЛ рдХрдВрдЯреЗрдирд░ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдореЗрдВ рдЕрдкрд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдбреЙрдХрд░ рд╣рдм рдпрд╛ рдХрдВрдЯреЗрдирд░ рд░рдЬрд┐рд╕реНрдЯреНрд░реА ред
рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдбреЙрдХрдлрд╛рдЗрд▓ рд╣реИ рдФрд░ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдЖрджреЗрд╢реЛрдВ рдХреЗ рд╕рд╛рде рд▓реЛрдбрдЬреЗрди рд╣реИ ред рдиреАрдЪреЗ рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП Dockerfile рд╣реИ :
FROM python:3-slim as base FROM base as builder RUN apt-get -qq update \ && apt-get install -y --no-install-recommends \ g++ \ && rm -rf /var/lib/apt/lists/* # Enable unbuffered logging FROM base as final ENV PYTHONUNBUFFERED=1 RUN apt-get -qq update \ && apt-get install -y --no-install-recommends \ wget WORKDIR /helloserver # Grab packages from builder COPY --from=builder /usr/local/lib/python3.7/ /usr/local/lib/python3.7/ # Add the application COPY . . EXPOSE 8080 ENTRYPOINT [ "python", "server.py" ]
- рдлреНрд░реЙрдо рдкрд╛рдпрдерди: рдмреЗрд╕- рдХрдорд╛рдВрдб рдХреЗ рд░реВрдк рдореЗрдВ 3-рд╕реНрд▓рд┐рдо рдбреЙрдХрдЯрд░ рдХреЛ рдирд╡реАрдирддрдо рдкрд╛рдпрдерди 3 рдЫрд╡рд┐ рдХреЛ рдЖрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддрд╛ рд╣реИред
- рдкреБрд▓рд┐рд╕ рдЯреАрдо ред ред рдХрдВрдЯреЗрдирд░ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ (рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдХреЗрд╡рд▓ server.py ) рдореЗрдВ рдХреЙрдкреА рдХрд░рддрд╛ рд╣реИред
- ENTRYPOINT рдЙрд╕ рдХрдорд╛рдВрдб рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдВрдЯреЗрдирд░ рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдХрдорд╛рдВрдб рд▓рдЧрднрдЧ рд╡реИрд╕реА рд╣реА рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рд╕реЛрд░реНрд╕ рдХреЛрдб рд╕реЗ рд╕рд░реНрд╡рд░рд╣реЛрдо рдЪрд▓рд╛рддреЗ рдереЗред
- EXPOSE рдХрдорд╛рдВрдб рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╕рд░реНрд╡рд░ рдкреЛрд░реНрдЯ 8080 рдкрд░ рд╕реБрди рд░рд╣рд╛ рд╣реИред рдпрд╣ рдЖрджреЗрд╢ рдкреЛрд░реНрдЯ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдкреНрд░рд▓реЗрдЦрди рд╣реИ рдЬреЛ рдХрдВрдЯреЗрдирд░ рд╢реБрд░реВ рд╣реЛрдиреЗ рдкрд░ рдкреЛрд░реНрдЯ 8080 рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред
рдЖрд╡реЗрджрди рдХрдВрдЯреЗрдирд░реАрдХрд░рдг рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░реА рдХрд░ рд░рд╣рд╛ рд╣реИ
1) рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рд╕реЗрдЯ рдХрд░реЗрдВред PROJECT_ID рдХреЛ рдЕрдкрдиреЗ GCP рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд╕реЗ рдмрджрд▓реЗрдВред
export PROJECT_ID="PROJECT_ID"
export GCR_REPO="preparing-istio"
PROJECT_ID рдФрд░ GCR_REPO рдорд╛рдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП , рдЖрдк рдбреЙрдХрд░ рдЫрд╡рд┐ рдХреЛ рдЯреИрдЧ рдХрд░рддреЗ рд╣реИрдВ рдЬрдм рдЖрдк рдЗрд╕реЗ рдЗрдХрдЯреНрдард╛ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдирд┐рдЬреА рдХрдВрдЯреЗрдирд░ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдореЗрдВ рднреЗрдЬрддреЗ рд╣реИрдВред
2) gcloud рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЯреВрд▓ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ GCP рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗрдЯ рдХрд░реЗрдВред
gcloud config set project $PROJECT_ID
3) gcloud рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЯреВрд▓ рдХреЗ рд▓рд┐рдП рдбрд┐рдлреЙрд▓реНрдЯ рдЬреЛрди рд╕реЗрдЯ рдХрд░реЗрдВред
gcloud config set compute/zone us-central1-b
4) рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдХрдВрдЯреЗрдирд░ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рд╕реЗрд╡рд╛ GCP рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИред
gcloud services enable containerregistry.googleapis.com
рдХрдВрдЯреЗрдирд░реАрдХрд░рдг рд╕рд░реНрд╡рд░
рдЙрд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдмрджрд▓реЗрдВ рдЬрд╣рд╛рдБ рд╕рд░реНрд╡рд░ рдЙрджрд╛рд╣рд░рдг рд╕реНрдерд┐рдд рд╣реИ:
cd YOUR_WORKING_DIRECTORY/istio-samples/sample-apps/helloserver/server/
Dockerfile рдФрд░ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЫрд╡рд┐ рдмрдирд╛рдПрдВ рдЬрд┐рд╕реЗ рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдерд╛:
docker build -t gcr.io/$PROJECT_ID/$GCR_REPO/helloserver:v0.0.1 .
-T рд╡рд┐рдХрд▓реНрдк рдбреЙрдХрд░ рдЯреИрдЧ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЙрд╕ рдЫрд╡рд┐ рдХрд╛ рдирд╛рдо рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрдк рдХрдВрдЯреЗрдирд░ рдХреЛ рддреИрдирд╛рдд рдХрд░рддреЗ рд╕рдордп рдХрд░рддреЗ рд╣реИрдВред
- рдХрдВрдЯреЗрдирд░ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдореЗрдВ рдЫрд╡рд┐ рднреЗрдЬреЗрдВ:
docker push gcr.io/$PROJECT_ID/$GCR_REPO/helloserver:v0.0.1
рдХрдВрдЯреЗрдирд░реАрдХрд░рдг рд▓реЛрдбрдЬреЗрди
1) рдЙрд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдкрд░ рдЬрд╛рдПрдВ рдЬрд╣рд╛рдВ loadgen рдЙрджрд╛рд╣рд░рдг рд╕реНрдерд┐рдд рд╣реИ :
cd ../loadgen
2) рдЫрд╡рд┐ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░реЗрдВ:
docker build -t gcr.io/$PROJECT_ID/$GCR_REPO/loadgen:v0.0.1 .
3) рдХрдВрдЯреЗрдирд░ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдореЗрдВ рдЫрд╡рд┐ рднреЗрдЬреЗрдВ:
docker push gcr.io/$PROJECT_ID/$GCR_REPO/loadgen:v0.0.1
рдЫрд╡рд┐рдпреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рджреЗрдЦреЗрдВ
рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдЫрд╡рд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдмреНрд░рд╛рдЙрдЬрд╝ рдХрд░реЗрдВ рдФрд░ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЪрд┐рддреНрд░ рднреЗрдЬреЗ рдЧрдП рд╣реИрдВ:
gcloud container images list --repository gcr.io/$PROJECT_ID/preparing-istio
рдХрдорд╛рдВрдб рдХреЗрд╡рд▓ рднреЗрдЬреЗ рдЧрдП рдЪрд┐рддреНрд░реЛрдВ рдХреЗ рдирд╛рдо рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ:
NAME gcr.io/PROJECT_ID/preparing-istio/helloserver gcr.io/PROJECT_ID/preparing-istio/loadgen
рдПрдХ рдЬреАрдХреЗрдЖрд░ рдХреНрд▓рд╕реНрдЯрд░ рдмрдирд╛рдирд╛
рдпреЗ рдХрдВрдЯреЗрдирд░ рдХреНрд▓рд╛рдЙрдб рд╢реЗрд▓ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдкрд░ рдпрд╛ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдбреЙрдХ рд░рди рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдЪрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЙрддреНрдкрд╛рджрди рдХреЗ рдорд╛рд╣реМрд▓ рдореЗрдВ, рдЖрдкрдХреЛ рдХреЗрдВрджреНрд░ рдХреЗ рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд░рд╛рд╕реНрддрд╛ рдЪрд╛рд╣рд┐рдПред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдПрдХ рдРрд╕реА рдкреНрд░рдгрд╛рд▓реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреА рд╣реИ рдХрд┐ рдХрдВрдЯреЗрдирд░ рд╣рдореЗрд╢рд╛ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдпрджрд┐ рдЯреНрд░реИрдлрд╝рд┐рдХ рдмрдврд╝рддрд╛ рд╣реИ, рддреЛ рд╣рдореЗрдВ рдХрдВрдЯреЗрдирд░ рдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рд░реВрдк рд╕реЗ рдЬрд╝реВрдо рдЗрди рдХрд░рдиреЗ рдФрд░ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рддрд░реАрдХрд╛ рдЪрд╛рд╣рд┐рдПред
рдЖрдк рдХрдВрдЯреЗрдирд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП GKE рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред GKE рдПрдХ рдХрдВрдЯреЗрдирд░ рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрд╢рди рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╣реИ рдЬреЛ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрдиреЛрдВ рдХреЛ рдХреНрд▓рд╕реНрдЯрд░ рдХрд░рддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдХреЛ рд╣реЛрд╕реНрдЯ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред GKE рдХреНрд▓рд╕реНрдЯрд░ рдУрдкрди рд╕реЛрд░реНрд╕ рдХреНрд▓рд╕реНрдЯрд░ рдореИрдиреЗрдЬрдореЗрдВрдЯ рд╕рд┐рд╕реНрдЯрдо Kubernetes рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИрдВред рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХреЗ рд▓рд┐рдП рддрдВрддреНрд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
GKE рдХреНрд▓рд╕реНрдЯрд░ рдмрдирд╛рдирд╛:
1) рдПрдХ рдХреНрд▓рд╕реНрдЯрд░ рдмрдирд╛рдПрдБ:
gcloud container clusters create istioready \ --cluster-version latest \ --machine-type=n1-standard-2 \ --num-nodes 4
Gcloud рдХрдорд╛рдВрдб GCP рдкрд░рд┐рдпреЛрдЬрдирд╛ рдФрд░ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЬрд╝реЛрди рдореЗрдВ рдПрдХ istioready рдХреНрд▓рд╕реНрдЯрд░ рдмрдирд╛рддрд╛ рд╣реИред рдЗрд╕реНрддрд┐рдпреЛ рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХрдо рд╕реЗ рдХрдо 4 рдиреЛрдбреНрд╕ рдФрд░ рдПрдХ рдПрди 1-рдорд╛рдирдХ -2 рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рд╣реЛред
рдЯреАрдо рдХрдИ рдорд┐рдирдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреНрд▓рд╕реНрдЯрд░ рдмрдирд╛рддреА рд╣реИред рдЬрдм рдХреНрд▓рд╕реНрдЯрд░ рддреИрдпрд╛рд░ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдХрдорд╛рдВрдб рдПрдХ рд╕рдорд╛рди рд╕рдВрджреЗрд╢ рдЬрд╛рд░реА рдХрд░рддрд╛ рд╣реИ ред
2) рдХреНрд▓рд╕реНрдЯрд░ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП kubectl рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рдЯреВрд▓ рдореЗрдВ рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓реНрд╕ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ:
gcloud container clusters get-credentials istioready
3) рдЕрдм рдЖрдк рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреБрдмреЗрдЯреЗрд▓ рдХреЗ рд╕рд╛рде рд╕рдВрд╡рд╛рдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рд╕реЗ рдЖрдк рдиреЛрдбреНрд╕ рдХреА рд╕реНрдерд┐рддрд┐ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ:
kubectl get nodes
рдЖрджреЗрд╢ рдиреЛрдбреНрд╕ рдХреА рдПрдХ рд╕реВрдЪреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ:
NAME STATUS ROLES AGE VERSION gke-istoready-default-pool-dbeb23dc-1vg0 Ready <none> 99s v1.13.6-gke.13 gke-istoready-default-pool-dbeb23dc-36z5 Ready <none> 100s v1.13.6-gke.13 gke-istoready-default-pool-dbeb23dc-fj7s Ready <none> 99s v1.13.6-gke.13 gke-istoready-default-pool-dbeb23dc-wbjw Ready <none> 99s v1.13.6-gke.13
рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреА рдкреНрд░рдореБрдЦ рдЕрд╡рдзрд╛рд░рдгрд╛рдПрдБ
рдЖрд░реЗрдЦ GKE рдкрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рджрд┐рдЦрд╛рддрд╛ рд╣реИ:

рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдЖрдк GKE рдХреЗ рд▓рд┐рдП рдХрдВрдЯреЗрдирд░ рддреИрдирд╛рдд рдХрд░реЗрдВ, рдХреБрдмреЗрд░рдиреЗрдЯ рдХреА рдкреНрд░рдореБрдЦ рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЛ рджреЗрдЦреЗрдВред рдпрджрд┐ рдЖрдк рдЕрдзрд┐рдХ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдмрд╣реБрдд рд╣реА рдЕрдВрдд рдореЗрдВ рд▓рд┐рдВрдХ рд╣реИрдВред
- рдиреЛрдбреНрд╕ рдФрд░ рдХреНрд▓рд╕реНрдЯрд░ ред GKE рдореЗрдВ, рдПрдХ рдиреЛрдб рдПрдХ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рд╣реИред рдЕрдиреНрдп рдХреБрдмреЗрд░рдиреЗрдЯ рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдкрд░, рдореЗрдЬрдмрд╛рди рдПрдХ рдХрдВрдкреНрдпреВрдЯрд░ рдпрд╛ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдПрдХ рдХреНрд▓рд╕реНрдЯрд░ рдиреЛрдбреНрд╕ рдХрд╛ рдПрдХ рд╕рдВрдЧреНрд░рд╣ рд╣реИ рдЬрд┐рд╕реЗ рдПрдХ рдкреВрд░реЗ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЛрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЬрд╣рд╛рдВ рдЖрдк рдПрдХ рдХрдВрдЯреЗрдирд░реАрдХреГрдд рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рддреИрдирд╛рдд рдХрд░рддреЗ рд╣реИрдВред
- рдлрд▓реА ред рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ, рдлрд▓реА рдореЗрдВ рдХрдВрдЯреЗрдирд░ рдЪрд▓рддреЗ рд╣реИрдВред рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ рдПрдХ рдлрд▓реА рдПрдХ рдЕрд╡рд┐рднрд╛рдЬреНрдп рдЗрдХрд╛рдИ рд╣реИред рдПрдХ рдлрд▓реА рдореЗрдВ рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рдХрдВрдЯреЗрдирд░ рд╣реЛрддреЗ рд╣реИрдВред рдЖрдк рд╕рд░реНрд╡рд░ рдФрд░ рд▓реЛрдбрдЬреЗрди рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреЙрдбреНрд╕ рдореЗрдВ рддреИрдирд╛рдд рдХрд░рддреЗ рд╣реИрдВред рдЬрдм рдПрдХ рдлрд▓реА рдореЗрдВ рдХрдИ рдХрдВрдЯреЗрдирд░ рд╣реЛрддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡рд░ рдФрд░ рдПрдХ рдкреНрд░реЙрдХреНрд╕реА рд╕рд░реНрд╡рд░ ), рддреЛ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЛ рдПрдХрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдкреЙрдб рдХреЗ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
- рдкрд░рд┐рдирд┐рдпреЛрдЬрди ред рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ, рддреИрдирд╛рддреА рдПрдХ рдРрд╕реА рд╡рд╕реНрддреБ рд╣реИ рдЬреЛ рд╕рдорд╛рди рдлрд▓реА рдХрд╛ рдПрдХ рд╕рдВрдЧреНрд░рд╣ рд╣реИред рддреИрдирд╛рддреА рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рдиреЛрдбреНрд╕ рдореЗрдВ рд╡рд┐рддрд░рд┐рдд рдлрд▓реА рдХреЗ рдХрдИ рдкреНрд░рддрд┐рдХреГрддрд┐рдпрд╛рдВ рдЪрд▓рд╛рддрд╛ рд╣реИред рддреИрдирд╛рддреА рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрди рдкреЙрдбреНрд╕ рдХреЛ рдмрджрд▓ рджреЗрддреА рд╣реИ рдЬреЛ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ рдпрд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВред
- рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд╕реЗрд╡рд╛ ред рдЬрдм рдЖрдк GKE рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдб рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рддреЛ рд▓реЛрдбрдЬреЗрди рдФрд░ рд╕рд░реНрд╡рд░ рдХреЗ рдмреАрдЪ рдХрд╛ рдХрдиреЗрдХреНрд╢рди рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИред рдЬрдм рдЖрдкрдиреЗ рдХреНрд▓рд╛рдЙрдб рд╢реЗрд▓ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдпрд╛ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рд╕реЗрд╡рд╛рдПрдВ рд╢реБрд░реВ рдХреА рдереАрдВ, рддреЛ рдЖрдкрдиреЗ рд╕реНрдерд╛рдиреАрдпрд╣реЛрд╕реНрдЯ: 8080 рдкрд░ рд╕рд░реНрд╡рд░ рдХреЛ рдЕрдиреБрд░реЛрдз рднреЗрдЬрд╛ рдерд╛ред GKE рдкрд░ рддреИрдирд╛рддреА рдХреЗ рдмрд╛рдж, рдЙрдкрд▓рдмреНрдз рдиреЛрдбреНрд╕ рдкрд░ рдкреЙрдбреНрд╕ рдЪрд▓рддреЗ рд╣реИрдВред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдЖрдк рдпрд╣ рдирд┐рдпрдВрддреНрд░рд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рдХрд┐ рд╣реЛрд╕реНрдЯ рдкреЙрдб рдХрд┐рд╕ рдкрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдкреЙрдбреНрд╕ рдХреЗ рдкрд╛рд╕ рд╕реНрдерд╛рдпреА рдЖрдИрдкреА рдкрддреЗ рдирд╣реАрдВ рд╣реИрдВред
рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдЖрдИрдкреА рдПрдбреНрд░реЗрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдкреЙрдбреНрд╕ рдХреЗ рдКрдкрд░ рдиреЗрдЯрд╡рд░реНрдХ рдПрдмреНрд╕реНрдЯреНрд░реИрдХреНрд╢рди рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд╕реЗрд╡рд╛ рд╣реИ ред рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд╕реЗрд╡рд╛ рдлрд▓реА рдХреЗ рдПрдХ рд╕реЗрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдерд╛рдпреА рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИред рдХрдИ рддрд░рд╣ рдХреА рд╕реЗрд╡рд╛рдПрдВ рд╣реИрдВ ред рд╕рд░реНрд╡рд░ рдПрдХ LoadBalancer рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рдмрд╛рд╣рд░ рд╕реЗ рд╕рд░реНрд╡рд░ рд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╛рд╣рд░реА рдЖрдИрдкреА рдкрддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ рдПрдХ рдПрдХреАрдХреГрдд DNS рд╕рд┐рд╕реНрдЯрдо рднреА рд╣реИ рдЬреЛ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд▓рд┐рдП DNS рдирд╛рдо (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, helloserver.default.cluster.local ) рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рднреАрддрд░ рдкреЙрдбреНрд╕ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдкрддреЗ рдкрд░ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдЕрдиреНрдп рдкреЙрдбреНрд╕ рдХреЗ рд╕рд╛рде рд╕рдВрд╡рд╛рдж рдХрд░рддреЗ рд╣реИрдВред DNS рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рдмрд╛рд╣рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХреНрд▓рд╛рдЙрдб рд╢реЗрд▓ рдпрд╛ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ред
рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореИрдирд┐рдлреЗрд╕реНрдЯреНрд╕
рдЬрдм рдЖрдкрдиреЗ рд╕реНрд░реЛрдд рдХреЛрдб рд╕реЗ рдЖрд╡реЗрджрди рд╢реБрд░реВ рдХрд┐рдпрд╛ рдерд╛, рддреЛ рдЖрдкрдиреЗ рдЕрдирд┐рд╡рд╛рд░реНрдп python3 рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдерд╛
server.py
рдЕрднрд┐рдкреНрд░рд╛рдп рдХрд╛ рдЕрд░реНрде рдХреНрд░рд┐рдпрд╛ рд╣реИ: "рдпрд╣ рдХрд░реЛред"
рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдПрдХ рдШреЛрд╖рдгрд╛рддреНрдордХ рдореЙрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рд╣рдо рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЛ рдирд╣реАрдВ рдмрддрд╛рддреЗ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд╛рдВрдЫрд┐рдд рд░рд╛рдЬреНрдп рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдЖрд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рдлрд▓реА рдХреЛ рд╢реБрд░реВ рдФрд░ рд░реЛрдХрддрд╛ рд╣реИ, рддрд╛рдХрд┐ рд╕рд┐рд╕реНрдЯрдо рдХреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕реНрдерд┐рддрд┐ рд╡рд╛рдВрдЫрд┐рдд рд╣реЛред
рдЖрдк рдореИрдирд┐рдлрд╝реЗрд╕реНрдЯ, рдпрд╛ YAML рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╡рд╛рдВрдЫрд┐рдд рд╕реНрдерд┐рддрд┐ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВред YAML рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ Kubernetes рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рд╣реЛрддреЗ рд╣реИрдВред
рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рд╕рд░реНрд╡рд░ рдФрд░ рд▓реЛрдбрдЬреЗрди рдХреЗ рд▓рд┐рдП YAML рдлрд╝рд╛рдЗрд▓ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ YAML рдлрд╝рд╛рдЗрд▓ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдСрдмреНрдЬреЗрдХреНрдЯ рдФрд░ Kubernetes рд╕реЗрд╡рд╛ рдХреА рд╡рд╛рдВрдЫрд┐рдд рд╕реНрдерд┐рддрд┐ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИред
server.yaml
apiVersion: apps/v1 kind: Deployment metadata: name: helloserver spec: selector: matchLabels: app: helloserver replicas: 1 template: metadata: labels: app: helloserver spec: terminationGracePeriodSeconds: 5 restartPolicy: Always containers: - name: main image: gcr.io/google-samples/istio/helloserver:v0.0.1 imagePullPolicy: Always
- рддрд░рд╣ рд╡рд╕реНрддреБ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИред
- рдореЗрдЯрд╛рдбреЗрдЯрд╛.рдирд╛рдо рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХреЗ рдирд╛рдо рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИред
- рдкрд╣рд▓реЗ рдХреНрд╖реЗрддреНрд░ рдХреА рдХрд▓реНрдкрдирд╛ рдореЗрдВ рд╡рд╛рдВрдЫрд┐рдд рд░рд╛рдЬреНрдп рдХрд╛ рд╡рд┐рд╡рд░рдг рд╢рд╛рдорд┐рд▓ рд╣реИред
- spec.replicas рдкреЙрдбреНрд╕ рдХреА рд╡рд╛рдВрдЫрд┐рдд рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИред
- Spec.template рдЕрдиреБрднрд╛рдЧ рдкреЙрдб рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред рдлрд▓реА рдХреЗ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдореЗрдВ рдПрдХ рдЫрд╡рд┐ рдлрд╝реАрд▓реНрдб рд╣реИ рдЬрд╣рд╛рдВ рдХрдВрдЯреЗрдирд░ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рд╕реЗ рдирд┐рдХрд╛рд▓реА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдЫрд╡рд┐ рдХрд╛ рдирд╛рдо рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рд╕реЗрд╡рд╛ рдХреЛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
apiVersion: v1 kind: Service metadata: name: hellosvc spec: type: LoadBalancer selector: app: helloserver ports: - name: http port: 80 targetPort: 8080
- LoadBalancer : рдЧреНрд░рд╛рд╣рдХ рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд░ рдХреЗ IP рдкрддреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз рднреЗрдЬрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд IP рдкрддрд╛ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдЬреЛ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рдмрд╛рд╣рд░ рд╕реЗ рдкрд╣реБрдВрдЪ рдпреЛрдЧреНрдп рд╣реЛрддрд╛ рд╣реИред
- targetPort : рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдпрд╛рдж рдХрд░рддреЗ рд╣реИрдВ, Dockerfile рдореЗрдВ EXPOSE 8080 рдХрдорд╛рдВрдб рдкреЛрд░реНрдЯ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЖрдк рдкреЛрд░реНрдЯ 8080 рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЖрдк рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рдмрд╛рд╣рд░ рд╕реЗ рд╕рд░реНрд╡рд░ рдХрдВрдЯреЗрдирд░ рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХреЗрдВред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, hellosvc.default.cluster.local: 80 (рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдирд╛рдо: Hellosvc ) рд╣реЗрд▓реЛрд╕реЛрд╡рд░ рдкреЙрдб рдХреЗ рдЖрдИрдкреА тАЛтАЛрдкрддреЗ рдХреЗ 8080 рдкреЛрд░реНрдЯ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИред
- рдкреЛрд░реНрдЯ : рдпрд╣ рдкреЛрд░реНрдЯ рдирдВрдмрд░ рд╣реИ рдЬрд╣рд╛рдВ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдЕрдиреНрдп рд╕реЗрд╡рд╛рдПрдВ рдЕрдиреБрд░реЛрдз рднреЗрдЬрддреА рд╣реИрдВред
loadgen.yaml
Loadgen.yaml рдореЗрдВ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдСрдмреНрдЬреЗрдХреНрдЯ server.yaml рдХреЗ рд╕рдорд╛рди рд╣реИред рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдПрдХ env рдЕрдиреБрднрд╛рдЧ рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рдЙрди рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд▓реЛрдбрдЬреЗрди рдХреА рдЬрд░реВрд░рдд рд╣реИ рдФрд░ рдЬрд┐рд╕реЗ рдЖрдкрдиреЗ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрдм рдЖрдкрдиреЗ рд╕реНрд░реЛрдд рдХреЛрдб рд╕реЗ рдЖрд╡реЗрджрди рд╢реБрд░реВ рдХрд┐рдпрд╛ рдерд╛ред
apiVersion: apps/v1 kind: Deployment metadata: name: loadgenerator spec: selector: matchLabels: app: loadgenerator replicas: 1 template: metadata: labels: app: loadgenerator spec: terminationGracePeriodSeconds: 5 restartPolicy: Always containers: - name: main image: gcr.io/google-samples/istio/loadgen:v0.0.1 imagePullPolicy: Always env: - name: SERVER_ADDR value: "http://hellosvc:80/" - name: REQUESTS_PER_SECOND value: "10" resources: requests: cpu: 300m memory: 256Mi limits: cpu: 500m memory: 512Mi
рдЪреВрдВрдХрд┐ рд▓реЛрдбрдЧреЗрди рдЖрдиреЗ рд╡рд╛рд▓реЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдХреНрд▓рд╕реНрдЯрд░ рдкреНрд░рдХрд╛рд░ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдкреНрд░рдХрд╛рд░ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд IP рдкрддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рд╕реЗрд╡рд╛рдПрдБ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рдмрд╛рд╣рд░реА рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рдпрд╣ IP рдкрддрд╛ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
apiVersion: v1 kind: Service metadata: name: loadgensvc spec: type: ClusterIP selector: app: loadgenerator ports: - name: http port: 80 targetPort: 8080
GKE рдореЗрдВ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЛ рддреИрдирд╛рдд рдХрд░реЗрдВ
1) рдЙрд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдкрд░ рдЬрд╛рдПрдВ рдЬрд╣рд╛рдВ рд╕рд░реНрд╡рд░ рдЙрджрд╛рд╣рд░рдг рд╕реНрдерд┐рдд рд╣реИ:
cd YOUR_WORKING_DIRECTORY/istio-samples/sample-apps/helloserver/server/
2) рдПрдХ рдЯреЗрдХреНрд╕реНрдЯ рдПрдбрд┐рдЯрд░ рдореЗрдВ рдУрдкрди рд╕рд░реНрд╡рд░ ред рдУрдПрдордПрд▓ ред
3) рдЫрд╡рд┐ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдирд╛рдо рдХреЛ рдЕрдкрдиреА рдбреЙрдХрд░ рдЫрд╡рд┐ рдХреЗ рдирд╛рдо рд╕реЗ рдмрджрд▓реЗрдВред
image: gcr.io/PROJECT_ID/preparing-istio/helloserver:v0.0.1
PROJECT_ID рдХреЛ рдЕрдкрдиреЗ GCP рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд╕реЗ рдмрджрд▓реЗрдВред
4) рд╕рд╣реЗрдЬреЗрдВ рдФрд░ рдмрдВрдж рдХрд░реЗрдВ server.yaml ред
5) рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ YAML рдлрд╝рд╛рдЗрд▓ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░реЗрдВ:
kubectl apply -f server.yaml
рд╕рдлрд▓ рд╕рдорд╛рдкрди рдХреЗ рдмрд╛рдж, рдХрдорд╛рдВрдб рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдЬрд╛рд░реА рдХрд░рддрд╛ рд╣реИ:
deployment.apps/helloserver created service/hellosvc created
6) рдЙрд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдкрд░ рдЬрд╛рдПрдВ рдЬрд╣рд╛рдВ loadgen рд╕реНрдерд┐рдд рд╣реИ:
cd ../loadgen
7) рдПрдХ рдЯреЗрдХреНрд╕реНрдЯ рдПрдбрд┐рдЯрд░ рдореЗрдВ loadgen.yaml рдЦреЛрд▓реЗрдВред
8) рдЫрд╡рд┐ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдирд╛рдо рдХреЛ рдЕрдкрдиреА рдбреЛрдХрд░ рдЫрд╡рд┐ рдХреЗ рдирд╛рдо рд╕реЗ рдмрджрд▓реЗрдВред
image: gcr.io/PROJECT_ID/preparing-istio/loadgenv0.0.1
PROJECT_ID рдХреЛ рдЕрдкрдиреЗ GCP рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд╕реЗ рдмрджрд▓реЗрдВред
9) рд╕рд╣реЗрдЬреЗрдВ рдФрд░ loadgen.yaml , рдЯреЗрдХреНрд╕реНрдЯ рдПрдбрд┐рдЯрд░ рдХреЛ рдмрдВрдж рдХрд░реЗрдВред
10) рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ YAML рдлрд╝рд╛рдЗрд▓ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░реЗрдВ:
kubectl apply -f loadgen.yaml
рд╕рдлрд▓ рд╕рдорд╛рдкрди рдХреЗ рдмрд╛рдж, рдХрдорд╛рдВрдб рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдЬрд╛рд░реА рдХрд░рддрд╛ рд╣реИ:
deployment.apps/loadgenerator created service/loadgensvc created
11) рдЪреВрд▓реНрд╣реЛрдВ рдХреА рд╕реНрдерд┐рддрд┐ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ:
kubectl get pods
рдЖрджреЗрд╢ рд╕реНрдерд┐рддрд┐ рджрд┐рдЦрд╛рддрд╛ рд╣реИ:
NAME READY STATUS RESTARTS AGE helloserver-69b9576d96-mwtcj 1/1 Running 0 58s loadgenerator-774dbc46fb-gpbrz 1/1 Running 0 57s
12) рд▓реЛрдбрдЬреЗрди рдкреЙрдб рд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдЧ рдирд┐рдХрд╛рд▓реЗрдВред рдкрд┐рдЫрд▓реЗ рдЙрддреНрддрд░ рд╕реЗ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЗ рд╕рд╛рде POD_ID рдмрджрд▓реЗрдВред
kubectl logs loadgenerator-POD_ID
13) рдмрд╛рд╣рд░реА рдирд░реНрдХреЛрд╕рд┐рд▓ рдЖрдИрдкреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ:
kubectl get service
рдХрдорд╛рдВрдб рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИ:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE hellosvc LoadBalancer 10.81.15.158 192.0.2.1 80:31127/TCP 33m kubernetes ClusterIP 10.81.0.1 <none> 443/TCP 93m loadgensvc ClusterIP 10.81.15.155 <none> 80/TCP 4m52s
14) рд╣реЗрд▓реЛрд╕рд┐рд▓реНрд╡ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдиреБрд░реЛрдз рднреЗрдЬреЗрдВ: EXTERNAL_IP рдХреЛ рдмрд╛рд╣рд░реА рдЖрдИрдкреА рдкрддреЗ рд╕реЗ рдмрджрд▓реЗрдВ ред
curl http://EXTERNAL_IP
рдЯреИрдХрд▓ рдЗрд╕реНрддрд┐рдпреЛ
рдЖрдкрдХреЗ рдкрд╛рд╕ GKE рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рддреИрдирд╛рдд рд╣реИред loadgen рд╕рд░реНрд╡рд░ рдХреЛ рд░рд┐рдХреНрд╡реЗрд╕реНрдЯ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП Kubernetes DNS ( hellosvc: 80 ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИ , рдФрд░ рдЖрдк рдмрд╛рд╣рд░реА IP рдкрддреЗ рдкрд░ рд╕рд░реНрд╡рд░ рдХреЛ рдЕрдиреБрд░реЛрдз рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐ рдХреБрдмреЗрд░рдиреЗрдЯ рдХреА рдХрдИ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВ, рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдЬрд╛рдирдХрд╛рд░реА рдХреА рдХрдореА рд╣реИ:
- рд╕реЗрд╡рд╛рдПрдВ рдХреИрд╕реЗ рд╕рд╣рднрд╛рдЧрд┐рддрд╛ рдХрд░рддреА рд╣реИрдВ? рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдмреАрдЪ рдХреНрдпрд╛ рд╕рдВрдмрдВрдз рд╣реИ? рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдмреАрдЪ рдЖрд╡рд╛рдЧрдорди рдХреИрд╕рд╛ рд╣реИ? рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд▓реЛрдбрдЬреЗрди рд╕рд░реНрд╡рд░ рдХреЛ рдЕрдиреБрд░реЛрдз рднреЗрдЬрддрд╛ рд╣реИ , рд▓реЗрдХрд┐рди рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рдЖрдк рдЖрд╡реЗрджрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВред рдЗрди рд╕рд╡рд╛рд▓реЛрдВ рдХрд╛ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЬреАрдХреЗрдХреЗ рдореЗрдВ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ рдЪреВрд▓реНрд╣реЛрдВ рдХреА рд╕реВрдЪреА рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВред
- рдореЗрдЯреНрд░рд┐рдХреНрд╕ ред рдЖрдиреЗ рд╡рд╛рд▓реЗ рдЕрдиреБрд░реЛрдз рдкрд░ рд╕рд░реНрд╡рд░ рдХрдм рддрдХ рдЬрд╡рд╛рдм рджреЗрддрд╛ рд╣реИ? рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рдХрд┐рддрдиреЗ рдЕрдиреБрд░реЛрдз рд╕рд░реНрд╡рд░ рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ? рдХреНрдпрд╛ рдпрд╣ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рджреЗрддрд╛ рд╣реИ?
- рд╕реБрд░рдХреНрд╖рд╛ рдЬрд╛рдирдХрд╛рд░реА ред рдХреНрдпрд╛ рдХреЗрд╡рд▓ HTTP рдпрд╛ mTLS рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реЛрдбрдЬреЗрди рдФрд░ рд╕рд░реНрд╡рд░ рдХреЗ рдмреАрдЪ рдХрд╛ рдЯреНрд░реИрдлрд╝рд┐рдХ рд╣реИ?
рдЗрди рд╕рднреА рд╕рд╡рд╛рд▓реЛрдВ рдХрд╛ рдЬрд╡рд╛рдм рдЗрд╕реНрддрд┐рдпреЛ рдиреЗ рджрд┐рдпрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕реНрддрд┐рдпреЛ рдкреНрд░рддреНрдпреЗрдХ рдлрд▓реА рдореЗрдВ рдПрдХ рдПрдирд╡реЙрдп рд╕рд╛рдЗрдбрдХрд╛рд░ рдкреНрд░реЙрдХреНрд╕реА рдХреЛ рд░рдЦрддрд╛ рд╣реИред Envoy рдкреНрд░реЙрдХреНрд╕реА рд╕рднреА рдЖрдиреЗ рд╡рд╛рд▓реЗ рдФрд░ рдмрд╛рд╣рд░ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрдВрдЯреЗрдирд░реЛрдВ рдореЗрдВ рднреЗрдЬрддреА рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╕рд░реНрд╡рд░ рдФрд░ рд▓реЛрдбрдЬреЗрди рдХреЛ рдПрдирд╡реЙрдп рд╕рд╛рдЗрдбрдХрд╛рд░ рдкреНрд░реЙрдХреНрд╕рд┐рд╕ рдорд┐рд▓рддреЗ рд╣реИрдВ, рдФрд░ рд▓реЛрдбрдЬреЗрди рд╕реЗ рд╕рд░реНрд╡рд░ рддрдХ рдХрд╛ рд╕рд╛рд░рд╛ рдЯреНрд░реИрдлрд┐рдХ рдПрдирд╡реЙрдп рдкреНрд░реЙрдХреНрд╕рд┐рд╕ рд╕реЗ рд╣реЛрдХрд░ рдЬрд╛рддрд╛ рд╣реИред
Envoy рдкрд░рджреЗ рдХреЗ рдкреАрдЫреЗ рдХрдиреЗрдХреНрд╢рди рдПрдХ рд╕реЗрд╡рд╛ рдЬрд╛рд▓ рдХреЗ рд░реВрдк рдореЗрдВред рд╕реЗрд╡рд╛ рдЬрд╛рд▓ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдкрд░ рдирд┐рдпрдВрддреНрд░рдг рдХреА рдПрдХ рдкрд░рдд рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред

рдПрдХ рдмрд╛рд░ рдЬрдм Envoy рдкрд░рджреЗ рдХреЗ рдкреАрдЫреЗ рдЕрдкрдиреЗ рдХрдВрдЯреЗрдирд░реЛрдВ рдореЗрдВ рдХреНрд░рд┐рдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ Istio GKE рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓рдЧрднрдЧ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдб рдХреЛ рдмрджрд▓реЗ рдмрд┐рдирд╛ред рд▓реЗрдХрд┐рди рдЖрдкрдиреЗ рдЗрд╕реНрддрд┐рдпреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рдЖрд╡реЗрджрди рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдХрд╛рдо рдХрд┐рдпрд╛:
- рд╕рднреА рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╕реЗрд╡рд╛рдПрдБред рд╕рд░реНрд╡рд░ рдФрд░ рд▓реЛрдбрдЬреЗрди рдХреА рддреИрдирд╛рддреА рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд╕реЗрд╡рд╛ рджреНрд╡рд╛рд░рд╛ рдЬреБрдбрд╝реА рд╣реБрдИ рд╣реИрдВ ред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд▓реЛрдбрдЬреЗрди , рдЬреЛ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдПрдХ рд╕реЗрд╡рд╛ рд╣реИред
- рд╕реЗрд╡рд╛рдУрдВ рдореЗрдВ рдмрдВрджрд░рдЧрд╛рд╣реЛрдВ рдХреЗ рдирд╛рдо рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПред рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╕реЗрд╡рд╛ рдмрдВрджрд░рдЧрд╛рд╣реЛрдВ рдХреЛ GKE рдореЗрдВ рдЕрдирд╛рдо рд░реВрдк рд╕реЗ рдЫреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдлрд┐рд░ рднреА Istio рдХреЛ рдЗрд╕рдХреЗ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдкреЛрд░реНрдЯ рдирд╛рдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред YAML рдлрд╝рд╛рдЗрд▓ рдореЗрдВ, рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдкреЛрд░реНрдЯ рдХреЛ http рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╕рд░реНрд╡рд░ HTTP рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ ред рдпрджрд┐ рд╕реЗрд╡рд╛ gRPC рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИ , рддреЛ рдЖрдк рдкреЛрд░реНрдЯ grpc рдХрд╛ рдирд╛рдо рд░рдЦреЗрдВрдЧреЗ ред
- рдирд┐рдпреБрдХреНрддрд┐рдпрд╛рдБ рдЪрд┐рд╣реНрдирд┐рдд рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдЖрдк Istio рдХреЗ рдЯреНрд░реИрдлрд╝рд┐рдХ рдкреНрд░рдмрдВрдзрди рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЙрд╕реА рд╕реЗрд╡рд╛ рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рдмреАрдЪ рдЯреНрд░реИрдлрд╝рд┐рдХ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ред
рдЗрд╕реНрдЯрд┐рдпреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
Istio рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рджреЛ рддрд░реАрдХреЗ рд╣реИрдВред рдЖрдк GST рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдкрд░ Istio рдХреЛ рд╕рдХреНрд╖рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдХрд┐рд╕реА рдХреНрд▓рд╕реНрдЯрд░ рдкрд░ Istio рдХреЗ рдУрдкрди рд╕реЛрд░реНрд╕ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ред GKE рдкрд░ Istio рдХреЗ рд╕рд╛рде, рдЖрдк GKE рдХреНрд▓рд╕реНрдЯрд░ рдЬреАрд╡рди рдЪрдХреНрд░ рдХреЗ рднрд╛рдЧ рдХреЗ рд░реВрдк рдореЗрдВ Istio рдХреА рд╕реНрдерд╛рдкрдирд╛ рдФрд░ рдЙрдиреНрдирдпрди рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдкрдХреЛ Istio рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдпрд╛ Istio рдирд┐рдпрдВрддреНрд░рдг рдХрдХреНрд╖ рдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкрд░ рдЕрдзрд┐рдХ рдирд┐рдпрдВрддреНрд░рдг рд╣реИ, рддреЛ GKE рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдкрд░ Istio рдХреЗ рдмрдЬрд╛рдп рдЦреБрд▓реЗ рд╕реНрд░реЛрдд рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВред рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд┐рд░реНрдгрдп рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП, рдХреНрдпрд╛ GKE рдкрд░ рдЖрд▓реЗрдЦ рдХреНрдпрд╛ рдореБрдЭреЗ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? ред
рдПрдХ рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ, рдЙрдЪрд┐рдд рдореИрдиреБрдЕрд▓ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░реЗрдВ рдФрд░ рдХреНрд▓рд╕реНрдЯрд░ рдкрд░ рдЗрд╕реНрддрд┐рдпреЛ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВред рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рдирдП рддреИрдирд╛рдд рдЖрд╡реЗрджрди рдХреЗ рд╕рд╛рде рдЗрд╕реНрддрд┐рдпреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдирд╛рдо рд╕реНрдерд╛рди рдХреЗ рд▓рд┐рдП рд╕рд╛рдЗрдбрдХрд╛рд░ рдПрдореНрдмреЗрдбрд┐рдВрдЧ рд╕рдХреНрд╖рдо рдХрд░реЗрдВ ред
рд╕рдлрд╛рдИ
рдЗрд╕ рдЧрд╛рдЗрдб рдореЗрдВ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ Google рдХреНрд▓рд╛рдЙрдб рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдЦрд╛рддреЗ рдХреЛ рдЪрд╛рд░реНрдЬ рдХрд░рдиреЗ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕реНрдЯрд┐рдпреЛ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╕рдордп рдФрд░ рдирдореВрдирд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рд╛рде рдЦреЗрд▓рдиреЗ рдХреЗ рджреМрд░рд╛рди рдХрдВрдЯреЗрдирд░ рдХреНрд▓рд╕реНрдЯрд░ рдХреЛ рд╣рдЯрд╛ рджреЗрдВред рдпрд╣ рд╕рднреА рдХреНрд▓рд╕реНрдЯрд░ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рд╣рдЯрд╛ рджреЗрдЧрд╛, рдЬреИрд╕реЗ рдХрд┐ рдХрдВрдкреНрдпреВрдЯ рдЗрдВрд╕реНрдЯреЗрдВрд╕, рдбрд┐рд╕реНрдХ рдФрд░ рдиреЗрдЯрд╡рд░реНрдХ рд╕рдВрд╕рд╛рдзрдиред
рдЖрдЧреЗ рдХреНрдпрд╛ рд╣реИ?