Istio рд╕рд╛рдареА рдЕрд░реНрдЬ рддрдпрд╛рд░ рдХрд░рдд рдЖрд╣реЗ

Istio рд╕рд╛рдареА рдЕрд░реНрдЬ рддрдпрд╛рд░ рдХрд░рдд рдЖрд╣реЗ

рд╡рд┐рддрд░рд┐рдд рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХрдиреЗрдХреНрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рд╕реБрд░рдХреНрд╖рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА Istio рдПрдХ рд╕реЛрдпреАрд╕реНрдХрд░ рд╕рд╛рдзрди рдЖрд╣реЗ. Istio рд╕реНрдХреЗрд▓рд╡рд░ рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░ рдЪрд╛рд▓рд╡рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╡рд┐рд╡рд┐рдз рддрдВрддреНрд░рдЬреНрдЮрд╛рдирд╛рдЪрд╛ рд╡рд╛рдкрд░ рдХрд░рддреЗ, рдЬреНрдпрд╛рдд рдХрдВрдЯреЗрдирд░реНрд╕ рдкреЕрдХреЗрдЬ рдЕреЕрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдб рдЖрдгрд┐ рдбрд┐рдкреНрд▓реЙрдпрдореЗрдВрдЯрд╕рд╛рдареА рдЕрд╡рд▓рдВрдмрд┐рддреНрд╡ рдЖрдгрд┐ рддреНрдпрд╛ рдХрдВрдЯреЗрдирд░рдЪреЗ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА Kubernetes рдпрд╛рдВрдЪрд╛ рд╕рдорд╛рд╡реЗрд╢ рдЖрд╣реЗ. рддреНрдпрд╛рдореБрд│реЗ, Istio рд╕реЛрдмрдд рдХрд╛рдо рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рддреБрдореНрд╣рд╛рд▓рд╛ рд╣реЗ рдорд╛рд╣рд┐рдд рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рдХреА рдпрд╛ рддрдВрддреНрд░рдЬреНрдЮрд╛рдирд╛рд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдПрдХрд╛рдзрд┐рдХ рд╕реЗрд╡рд╛рдВрд╕рд╣ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХрд╕реЗ рдХрд╛рд░реНрдп рдХрд░рддреЗ рди Istio. рд╣реА рд╕рд╛рдзрдиреЗ рдЖрдгрд┐ рд╕рдВрдХрд▓реНрдкрдирд╛ рддреБрдореНрд╣рд╛рд▓рд╛ рдЖрдзреАрдЪ рдкрд░рд┐рдЪрд┐рдд рдЕрд╕рд▓реНрдпрд╛рд╕, рд╣реЗ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рд╡рдЧрд│рдгреНрдпрд╛рд╕ рдореЛрдХрд│реНрдпрд╛ рдордирд╛рдиреЗ рдЖрдгрд┐ рдереЗрдЯ рд╡рд┐рднрд╛рдЧрд╛рдд рдЬрд╛. Google Kubernetes Engine (GKE) рд╡рд░ Istio рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреЗ рдХрд┐рдВрд╡рд╛ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреЗ GKE рд╡рд░ Istio.

рд╣реЗ рдПрдХ рдЪрд░рдг-рджрд░-рдЪрд░рдг рдорд╛рд░реНрдЧрджрд░реНрд╢рдХ рдЖрд╣реЗ рдЬрд┐рдереЗ рдЖрдореНрд╣реА рддреБрдореНрд╣рд╛рд▓рд╛ рдпрд╛ рддрдВрддреНрд░рдЬреНрдЮрд╛рдирд╛рдЪреА рдореВрд▓рднреВрдд рдорд╛рд╣рд┐рддреА рдЙрджрд╛рд╣рд░рдгрд╛рджреНрд╡рд╛рд░реЗ рджреЗрдгреНрдпрд╛рд╕рд╛рдареА рд╕реНрддреНрд░реЛрдд рдХреЛрдб рддреЗ GKE рдХрдВрдЯреЗрдирд░ рдкрд░реНрдпрдВрдд рд╕рдВрдкреВрд░реНрдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкрд╛рд╣реВ. Istio рдпрд╛ рддрдВрддреНрд░рдЬреНрдЮрд╛рдирд╛рдЪреНрдпрд╛ рд╕рд╛рдорд░реНрдереНрдпрд╛рдЪрд╛ рдХрд╕рд╛ рдлрд╛рдпрджрд╛ рдШреЗрддреЗ рд╣реЗ рджреЗрдЦреАрд▓ рддреБрдореНрд╣реА рдкрд╣рд╛рд▓. рд╣реЗ рдЧреГрд╣реАрдд рдзрд░рддреЗ рдХреА рддреБрдореНрд╣рд╛рд▓рд╛ рдХрдВрдЯреЗрдирд░, рдХреБрдмрд░реНрдиреЗрдЯреНрд╕, рд╕рд░реНрд╡реНрд╣рд┐рд╕ рдореЗрд╢ рдХрд┐рдВрд╡рд╛ рдЗрд╕реНрдЯрд┐рдУ рдмрджреНрджрд▓ рдХрд╛рд╣реАрд╣реА рдорд╛рд╣рд┐рддреА рдирд╛рд╣реА.

рдХрд╛рд░реНрдпреЗ

рдпрд╛ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓рдордзреНрдпреЗ, рддреБрдореНрд╣реА рдЦрд╛рд▓реАрд▓ рдХрд╛рд░реНрдпреЗ рдкреВрд░реНрдг рдХрд░рд╛рд▓:

  1. рдПрдХрд╛рдзрд┐рдХ рд╕реЗрд╡рд╛рдВрд╕рд╣ рдПрдХ рд╕рд╛рдзрд╛ рд╣реЕрд▓реЛ рд╡рд░реНрд▓реНрдб рдЕреЕрдкреНрд▓рд┐рдХреЗрд╢рди рд╢рд┐рдХрдгреЗ.
  2. рд╕реНрддреНрд░реЛрдд рдХреЛрдбрд╡рд░реВрди рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЪрд╛рд▓рд╡рд╛.
  3. рдХрдВрдЯреЗрдирд░рдордзреНрдпреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдкреЕрдХреЗрдЬрд┐рдВрдЧ.
  4. рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рдХреНрд▓рд╕реНрдЯрд░ рддрдпрд╛рд░ рдХрд░рдгреЗ.
  5. рдХрдВрдЯреЗрдирд░ рдХреНрд▓рд╕реНрдЯрд░рдордзреНрдпреЗ рддреИрдирд╛рдд рдХрд░рдгреЗ.

рдЖрдкрдг рдкреНрд░рд╛рд░рдВрдн рдХрд░рдгреНрдпрд╛рдкреВрд░реНрд╡реА

Kubernetes Engine API рд╕рдХреНрд╖рдо рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕реВрдЪрдирд╛рдВрдЪреЗ рдЕрдиреБрд╕рд░рдг рдХрд░рд╛:

  1. рдЬрд╛ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рдЗрдВрдЬрд┐рди рдкреГрд╖реНрда Google Cloud Platform рдХрдиреНрд╕реЛрд▓рдордзреНрдпреЗ.
  2. рдПрдХ рдкреНрд░рдХрд▓реНрдк рддрдпрд╛рд░ рдХрд░рд╛ рдХрд┐рдВрд╡рд╛ рдирд┐рд╡рдбрд╛.
  3. API рдЖрдгрд┐ рд╕рдВрдмрдВрдзрд┐рдд рд╕реЗрд╡рд╛ рд╕рдХреНрд╖рдо рд╣реЛрдИрдкрд░реНрдпрдВрдд рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рд╛. рдпрд╛рд╕ рдХрд╛рд╣реА рдорд┐рдирд┐рдЯреЗ рд▓рд╛рдЧреВ рд╢рдХрддрд╛рдд.
  4. рддреБрдордЪреНрдпрд╛ Google Cloud Platform рдкреНрд░реЛрдЬреЗрдХреНрдЯрд╕рд╛рдареА рдмрд┐рд▓рд┐рдВрдЧ рд╕реЗрдЯ рдХреЗрд▓реЗ рдЕрд╕рд▓реНрдпрд╛рдЪреА рдЦрд╛рддреНрд░реА рдХрд░рд╛. рдмрд┐рд▓рд┐рдВрдЧ рдХрд╕реЗ рд╕рдХреНрд╖рдо рдХрд░рд╛рдпрдЪреЗ рддреЗ рдЬрд╛рдгреВрди рдШреНрдпрд╛.

рдпрд╛ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓рдордзреНрдпреЗ, рддреБрдореНрд╣реА рдХреНрд▓рд╛рдЙрдб рд╢реЗрд▓ рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛, рдЬреЗ рдЖрднрд╛рд╕реА рдорд╢реАрди рддрдпрд╛рд░ рдХрд░рддреЗ Google Compute Engine рдордзреНрдпреЗ g1-рд╕реНрдореЙрд▓ рдбреЗрдмрд┐рдпрди-рдЖрдзрд╛рд░рд┐рдд Linux, рдХрд┐рдВрд╡рд╛ Linux рдХрд┐рдВрд╡рд╛ macOS рд╕рдВрдЧрдгрдХрд╛рд╕рд╣.

рдкрд░реНрдпрд╛рдп A: рдХреНрд▓рд╛рдЙрдб рд╢реЗрд▓ рд╡рд╛рдкрд░рдгреЗ

рдХреНрд▓рд╛рдЙрдб рд╢реЗрд▓ рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреЗ рдлрд╛рдпрджреЗ:

  • рдкрд╛рдпрдерди 2 рдЖрдгрд┐ рдкрд╛рдпрдерди 3 рд╡рд┐рдХрд╛рд╕ рд╡рд╛рддрд╛рд╡рд░рдг (рдпрд╛рд╕рд╣ рд╡реНрд╣рд░реНрдЪреБрдПрд▓реЗрдирд╡реНрд╣) рдкреВрд░реНрдгрдкрдгреЗ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХреЗрд▓реЗрд▓реЗ рдЖрд╣реЗрдд.
  • рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЯреВрд▓реНрд╕ gCloud, рдбреЙрдХрд░, рдЬрд╛ ╨╕ kubectl, рдЬреЗ рдЖрдореНрд╣реА рд╡рд╛рдкрд░рдгрд╛рд░ рдЖрд╣реЛрдд рддреЗ рдЖрдзреАрдЪ рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓реЗ рдЖрд╣реЗрдд.
  • рддреБрдордЪреНрдпрд╛рдХрдбреЗ рдирд┐рд╡рдбрдгреНрдпрд╛рд╕рд╛рдареА рдЕрдиреЗрдХ рдЖрд╣реЗрдд рдордЬрдХреВрд░ рд╕рдВрдкрд╛рджрдХ:
    1. рдХреЛрдб рдПрдбрд┐рдЯрд░, рдЬреЗ рдХреНрд▓рд╛рдЙрдб рд╢реЗрд▓ рд╡рд┐рдВрдбреЛрдЪреНрдпрд╛ рд╢реАрд░реНрд╖рд╕реНрдерд╛рдиреА рд╕рдВрдкрд╛рджрди рдЪрд┐рдиреНрд╣рд╛рд╕рд╣ рдЙрдШрдбрддреЗ.
    2. Emacs, Vim рдХрд┐рдВрд╡рд╛ Nano, рдЬреЗ рдХреНрд▓рд╛рдЙрдб рд╢реЗрд▓рдордзреАрд▓ рдХрдорд╛рдВрдб рд▓рд╛рдЗрдирдордзреВрди рдЙрдШрдбрддрд╛рдд.

рд╡рд╛рдкрд░рдгреЗ рдврдЧ рд╢реЗрд▓:

  1. GCP рдХрдиреНрд╕реЛрд▓рд╡рд░ рдЬрд╛.
  2. рдкреНрд░реЗрд╕ рдХреНрд▓рд╛рдЙрдб рд╢реЗрд▓ рд╕рдХреНрд░рд┐рдп рдХрд░рд╛ (рдХреНрд▓рд╛рдЙрдб рд╢реЗрд▓ рд╕рдХреНрд░рд┐рдп рдХрд░рд╛) GCP рдХрдиреНрд╕реЛрд▓ рд╡рд┐рдВрдбреЛрдЪреНрдпрд╛ рд╢реАрд░реНрд╖рд╕реНрдерд╛рдиреА.

Istio рд╕рд╛рдареА рдЕрд░реНрдЬ рддрдпрд╛рд░ рдХрд░рдд рдЖрд╣реЗ

рдЦрд╛рд▓рдЪреНрдпрд╛ рднрд╛рдЧрд╛рдд GCP рдХрдиреНрд╕реЛрд▓ рдХрдорд╛рдВрдб рд▓рд╛рдЗрдирд╕рд╣ рдХреНрд▓рд╛рдЙрдб рд╢реЗрд▓ рд╕рддреНрд░ рдирд╡реАрди рд╡рд┐рдВрдбреЛрдордзреНрдпреЗ рдЙрдШрдбреЗрд▓.

Istio рд╕рд╛рдареА рдЕрд░реНрдЬ рддрдпрд╛рд░ рдХрд░рдд рдЖрд╣реЗ

рдкрд░реНрдпрд╛рдп B: рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЯреВрд▓реНрд╕ рд╕реНрдерд╛рдирд┐рдХ рдкрд╛рддрд│реАрд╡рд░ рд╡рд╛рдкрд░рдгреЗ

рддреБрдореНрд╣реА Linux рдХрд┐рдВрд╡рд╛ macOS рдЪрд╛рд▓рд╡рдгрд╛рд░реНтАНрдпрд╛ рд╕рдВрдЧрдгрдХрд╛рд╡рд░ рдХрд╛рдо рдХрд░рдд рдЕрд╕рд╛рд▓, рддрд░ рддреБрдореНрд╣рд╛рд▓рд╛ рдЦрд╛рд▓реАрд▓ рдШрдЯрдХ рдХреЙрдиреНрдлрд┐рдЧрд░ рдЖрдгрд┐ рдЗрдиреНрд╕реНрдЯреЙрд▓ рдХрд░рд╛рд╡реЗ рд▓рд╛рдЧрддреАрд▓:

  1. рд╕рд╛рдиреБрдХреВрд▓ рдХрд░рд╛ рдкрд╛рдпрдерди 3 рдЖрдгрд┐ рдкрд╛рдпрдерди 2 рд╡рд┐рдХрд╛рд╕ рд╡рд╛рддрд╛рд╡рд░рдг.

  2. рдХреНрд▓рд╛рдЙрдб SDK рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рд╛ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЯреВрд▓рд╕рд╣ gCloud.

  3. рд╕реЗрдЯ kubectl - рдХрд╛рдо рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЯреВрд▓ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕.

    gcloud components install kubectl

  4. рд╕реЗрдЯ рдбреЙрдХрд░ рд╕рдореБрджрд╛рдп рд╕рдВрд╕реНрдХрд░рдг (CE). рддреБрдореНрд╣реА рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЯреВрд▓ рд╡рд╛рдкрд░рд╛рд▓ рдбреЙрдХрд░рдирдореБрдирд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рд╕рд╛рдареА рдХрдВрдЯреЗрдирд░ рдкреНрд░рддрд┐рдорд╛ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА.

  5. рд╕рд╛рдзрди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рд╛ Git рдЖрд╡реГрддреНрддреА рдирд┐рдпрдВрддреНрд░рдгGitHub рд╡рд░реВрди рдирдореБрдирд╛ рдЕрд░реНрдЬ рдорд┐рд│рд╡рд┐рдгреНрдпрд╛рд╕рд╛рдареА.

рдирдореБрдирд╛ рдХреЛрдб рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рд╛

  1. рд╕реНрддреНрд░реЛрдд рдХреЛрдб рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рд╛ рд╣реЕрд▓реЛрд╕рд░реНрд╡реНрд╣рд░:

    git clone https://github.com/GoogleCloudPlatform/istio-samples

  2. рдЙрджрд╛рд╣рд░рдг рдХреЛрдб рдирд┐рд░реНрджреЗрд╢рд┐рдХреЗрд╡рд░ рдЬрд╛:

    cd istio-samples/sample-apps/helloserver

рдПрдХрд╛рдзрд┐рдХ рд╕реЗрд╡рд╛рдВрд╕рд╣ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдПрдХреНрд╕рдкреНрд▓реЛрд░ рдХрд░рдгреЗ

рдирдореБрдирд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ Python рдордзреНрдпреЗ рд▓рд┐рд╣рд┐рд▓реЗрд▓рд╛ рдЖрд╣реЗ рдЖрдгрд┐ рддреНрдпрд╛рдд рджреЛрди рдШрдЯрдХ рдЕрд╕рддрд╛рдд рдЬреЗ рд╡рд╛рдкрд░реВрди рдкрд░рд╕реНрдкрд░ рд╕рдВрд╡рд╛рдж рд╕рд╛рдзрддрд╛рдд рдЙрд░реНрд╡рд░рд┐рдд:

  • рд╕рд░реНрд╡реНрд╣рд░: рдПрдХрд╛ рдПрдВрдбрдкреЙрдЗрдВрдЯрд╕рд╣ рд╕рд╛рдзрд╛ рд╕рд░реНрд╡реНрд╣рд░ рдорд┐рд│рд╡рд╛, /, рдЬреЗ рдХрдиреНрд╕реЛрд▓рд╡рд░ "hello world" рдкреНрд░рд┐рдВрдЯ рдХрд░рддреЗ.
  • рд▓реЛрдбрдЬрди: рдЯреНрд░реЕрдлрд┐рдХ рдкрд╛рдард╡рдгрд╛рд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рд░реНрд╡реНрд╣рд░, рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдж рд╡рд┐рдирдВрддреНрдпрд╛ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рдгреНрдпрд╛рдпреЛрдЧреНрдп рд╕рдВрдЦреНрдпреЗрд╕рд╣.

Istio рд╕рд╛рдареА рдЕрд░реНрдЬ рддрдпрд╛рд░ рдХрд░рдд рдЖрд╣реЗ

рд╕реНрддреНрд░реЛрдд рдХреЛрдбрд╡рд░реВрди рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЪрд╛рд▓рд╡рд┐рдд рдЖрд╣реЗ

рдирдореБрдирд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдПрдХреНрд╕рдкреНрд▓реЛрд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рддреЛ рдХреНрд▓рд╛рдЙрдб рд╢реЗрд▓рдордзреНрдпреЗ рдХрд┐рдВрд╡рд╛ рддреБрдордЪреНрдпрд╛ рд╕рдВрдЧрдгрдХрд╛рд╡рд░ рдЪрд╛рд▓рд╡рд╛.
1) рдХреЕрдЯрд▓реЙрдЧрдордзреНрдпреЗ istio-samples/sample-apps/helloserver рдзрд╛рд╡рдгреЗ рд╕рд░реНрд╡реНрд╣рд░:

python3 server/server.py

рд╕реНрдЯрд╛рд░реНрдЯрдЕрдкрд╡рд░ рд╕рд░реНрд╡реНрд╣рд░ рдЦрд╛рд▓реАрд▓ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХреЗрд▓реЗ рдЖрд╣реЗ:

INFO:root:Starting server...

2) рд╡рд┐рдирдВрддреНрдпрд╛ рдкрд╛рдард╡рдгреНрдпрд╛рд╕рд╛рдареА рджреБрд╕рд░реА рдЯрд░реНрдорд┐рдирд▓ рд╡рд┐рдВрдбреЛ рдЙрдШрдбрд╛ рд╕рд░реНрд╡реНрд╣рд░. рддреБрдореНрд╣реА рдХреНрд▓рд╛рдЙрдб рд╢реЗрд▓ рд╡рд╛рдкрд░рдд рдЕрд╕рд▓реНрдпрд╛рд╕, рджреБрд╕рд░реЗ рд╕рддреНрд░ рдЙрдШрдбрдгреНрдпрд╛рд╕рд╛рдареА рдЬреЛрдбрд╛ рдЪрд┐рдиреНрд╣рд╛рд╡рд░ рдХреНрд▓рд┐рдХ рдХрд░рд╛.
3) рдпрд╛рдВрдирд╛ рд╡рд┐рдирдВрддреА рдкрд╛рдард╡рд╛ рд╕рд░реНрд╡реНрд╣рд░:

curl http://localhost:8080

рд╕рд░реНрд╡реНрд╣рд░ рдЙрддреНрддрд░реЗ:

Hello World!

4) рдЬреНрдпрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХреЗрддреВрди рддреБрдореНрд╣реА рдирдореБрдирд╛ рдХреЛрдб рдбрд╛рдЙрдирд▓реЛрдб рдХреЗрд▓рд╛ рд╣реЛрддрд╛, рддреНрдпрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХреЗрд╡рд░ рдЬрд╛ рд▓реЛрдбрдЬрди:

cd YOUR_WORKING_DIRECTORY/istio-samples/sample-apps/helloserver/loadgen

5) рдЦрд╛рд▓реАрд▓ рдкрд░реНрдпрд╛рд╡рд░рдгреАрдп рдЪрд▓ рддрдпрд╛рд░ рдХрд░рд╛:

export SERVER_ADDR=http://localhost:8080
export REQUESTS_PER_SECOND=5

6) рд╡рд╛рдкрд░рд╛ рд╡реНрд╣рд░реНрдЪреБрдПрд▓реЗрдирд╡реНрд╣:

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: */*

рдиреЗрдЯрд╡рд░реНрдХрд┐рдВрдЧрдЪреНрдпрд╛ рджреГрд╖реНрдЯреАрдХреЛрдирд╛рддреВрди, рд╕рдВрдкреВрд░реНрдг рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдПрдХрд╛рдЪ рд╣реЛрд╕реНрдЯрд╡рд░ рдЪрд╛рд▓рддреЛ (рд╕реНрдерд╛рдирд┐рдХ рд╕рдВрдЧрдгрдХ рдХрд┐рдВрд╡рд╛ рдХреНрд▓рд╛рдЙрдб рд╢реЗрд▓ рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдорд╢реАрди). рддреНрдпрд╛рдореБрд│реЗ рддреБрдореНрд╣реА рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛ localhostрд╡рд┐рдирдВрддреНрдпрд╛ рдкрд╛рдард╡рдгреНрдпрд╛рд╕рд╛рдареА рд╕рд░реНрд╡реНрд╣рд░.
10) рдерд╛рдВрдмрдгреЗ рд▓реЛрдбрдЬрди ╨╕ рд╕рд░реНрд╡реНрд╣рд░, рдкреНрд░рд╡рд┐рд╖реНрдЯ рдХрд░рд╛ Ctrl-c рдкреНрд░рддреНрдпреЗрдХ рдЯрд░реНрдорд┐рдирд▓ рд╡рд┐рдВрдбреЛрдордзреНрдпреЗ.
11) рдЯрд░реНрдорд┐рдирд▓ рд╡рд┐рдВрдбреЛрдордзреНрдпреЗ рд▓реЛрдбрдЬрди рдЖрднрд╛рд╕реА рд╡рд╛рддрд╛рд╡рд░рдг рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд░рд╛:

deactivate

рдХрдВрдЯреЗрдирд░рдордзреНрдпреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдкреЕрдХреЗрдЬрд┐рдВрдЧ

GKE рд╡рд░ рдНрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реБрд░реВ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рддреБрдореНрд╣рд╛рд▓рд╛ рдНрдкреНрд▓рд┐рдХреЗрд╢рдирдЪреЗ рдЙрджрд╛рд╣рд░рдг рдкреЕрдХ рдХрд░рд╛рд╡реЗ рд▓рд╛рдЧреЗрд▓ - рд╕рд░реНрд╡реНрд╣рд░ ╨╕ рд▓реЛрдбрдЬрди - рдордзреНрдпреЗ рдХрдВрдЯреЗрдирд░. рдХрдВрдЯреЗрдирд░ рд╣рд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдкреЕрдХ рдХрд░рдгреНрдпрд╛рдЪрд╛ рдПрдХ рдорд╛рд░реНрдЧ рдЖрд╣реЗ рдЬреНрдпрд╛рдореБрд│реЗ рддреЗ рд╡рд╛рддрд╛рд╡рд░рдгрд╛рдкрд╛рд╕реВрди рд╡реЗрдЧрд│реЗ рдХреЗрд▓реЗ рдЬрд╛рддреЗ.

рдХрдВрдЯреЗрдирд░рдордзреНрдпреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдкреЕрдХреЗрдЬ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рдбреЙрдХрд░рдлрд╛рдЗрд▓. рдбреЙрдХрд░рдлрд╛рдЗрд▓ рд╣реА рдПрдХ рдордЬрдХреВрд░ рдлрд╛рдИрд▓ рдЖрд╣реЗ рдЬреА рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдЪрд╛ рд╕реНрддреНрд░реЛрдд рдХреЛрдб рдЖрдгрд┐ рддреНрдпрд╛рддреАрд▓ рдЕрд╡рд▓рдВрдмрди рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдХрдорд╛рдВрдб рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рдбреЙрдХрд░ рдкреНрд░рддрд┐рдорд╛. рдЕрд╕реЗрдВрдмреНрд▓реАрдирдВрддрд░, рддреБрдореНрд╣реА рдЗрдореЗрдЬ рдХрдВрдЯреЗрдирд░ рд░рдЬрд┐рд╕реНрдЯрд░рдордзреНрдпреЗ рд▓реЛрдб рдХрд░рддрд╛, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде рдбреЙрдХрд░ рд╣рдм рдХрд┐рдВрд╡рд╛ рдХрдВрдЯреЗрдирд░ рдиреЛрдВрджрдгреА.

рдЙрджрд╛рд╣рд░рдг рдЖрдзреАрдЪ рдЖрд╣реЗ рдбреЙрдХрд░рдлрд╛рдЗрд▓ рддреЗ рд╕рд░реНрд╡реНрд╣рд░ ╨╕ рд▓реЛрдбрдЬрди рдкреНрд░рддрд┐рдорд╛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕рд░реНрд╡ рдЖрд╡рд╢реНрдпрдХ рдЖрджреЗрд╢рд╛рдВрд╕рд╣. рдЦрд╛рд▓реА - рдбреЙрдХрд░рдлрд╛рдЗрд▓ рддреЗ рд╕рд░реНрд╡реНрд╣рд░:

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 рдХрдВрдЯреЗрдирд░ рд╕реБрд░реВ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реА рдЬрд╛рдгрд╛рд░реА рдХрдорд╛рдВрдб рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ. рдЖрдордЪреНрдпрд╛ рдмрд╛рдмрддреАрдд, рд╣реА рдЖрдЬреНрдЮрд╛ рддреБрдореНрд╣реА рдЪрд╛рд▓рд╡рд▓реНрдпрд╛рд╕рд╛рд░рдЦреАрдЪ рдЖрд╣реЗ server.py рд╕реНрддреНрд░реЛрдд рдХреЛрдб рд╡рд░реВрди.
  • рд╕рдВрдШ рдЙрдШрдб рдХрд░рд╛ рдЕрд╕реЗ рд╕реВрдЪрд┐рдд рдХрд░рддреЗ рд╕рд░реНрд╡реНрд╣рд░ рдкреЛрд░реНрдЯрджреНрд╡рд╛рд░реЗ рдбреЗрдЯрд╛рдЪреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддреЗ 8080. рд╣рд╛ рд╕рдВрдШ рдирд╛рд╣реА рдкреЛрд░реНрдЯ рдкреНрд░рджрд╛рди рдХрд░рддреЗ. рд╣реЗ рдХрд╛рд╣реА рдкреНрд░рдХрд╛рд░рдЪреЗ рджрд╕реНрддрдРрд╡рдЬреАрдХрд░рдг рдЖрд╣реЗ рдЬреЗ рдкреЛрд░реНрдЯ рдЙрдШрдбрдгреНрдпрд╛рд╕рд╛рдареА рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ 8080 рдХрдВрдЯреЗрдирд░ рд╕реБрд░реВ рдХрд░рддрд╛рдирд╛.

рддреБрдордЪрд╛ рдЕрд░реНрдЬ рдХрдВрдЯреЗрдирд░реАрдХреГрдд рдХрд░рдгреНрдпрд╛рдЪреА рддрдпрд╛рд░реА рдХрд░рдд рдЖрд╣реЗ

1) рдЦрд╛рд▓реАрд▓ рдкрд░реНрдпрд╛рд╡рд░рдг рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕ рд╕реЗрдЯ рдХрд░рд╛. рдмрджрд▓рд╛ PROJECT_ID рддреБрдордЪреНрдпрд╛ GCP рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЖрдпрдбреАрд╡рд░.

export PROJECT_ID="PROJECT_ID"

export GCR_REPO="preparing-istio"

рдореВрд▓реНрдпреЗ рд╡рд╛рдкрд░рдгреЗ PROJECT_ID ╨╕ GCR_REPO рдЬреЗрд╡реНрд╣рд╛ рдЖрдкрдг рддреЗ рддрдпрд╛рд░ рдХрд░рддрд╛ рддреЗрд╡реНрд╣рд╛ рдЖрдкрдг рдбреЙрдХрд░ рдкреНрд░рддрд┐рдорд╛ рдЯреЕрдЧ рдХрд░рд╛ рдЖрдгрд┐ рддреНрдпрд╛рд╕ рдЦрд╛рдЬрдЧреА рдХрдВрдЯреЗрдирд░ рд░реЗрдЬрд┐рд╕реНрдЯреНрд░реАрдордзреНрдпреЗ рдврдХрд▓рддрд╛.

2) рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЯреВрд▓рд╕рд╛рдареА рдбреАрдлреЙрд▓реНрдЯ GCP рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗрдЯ рдХрд░рд╛ gCloud.

gcloud config set project $PROJECT_ID

3) рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЯреВрд▓рд╕рд╛рдареА рдбреАрдлреЙрд▓реНрдЯ рдЭреЛрди рд╕реЗрдЯ рдХрд░рд╛ gCloud.

gcloud config set compute/zone us-central1-b

4) GCP рдкреНрд░рдХрд▓реНрдкрд╛рдордзреНрдпреЗ рдХрдВрдЯреЗрдирд░ рдиреЛрдВрджрдгреА рд╕реЗрд╡рд╛ рд╕рдХреНрд╖рдо рдЕрд╕рд▓реНрдпрд╛рдЪреА рдЦрд╛рддреНрд░реА рдХрд░рд╛.

gcloud services enable containerregistry.googleapis.com

рдХрдВрдЯреЗрдирд░рд╛рдпрдЭреЗрд╢рди рд╕рд░реНрд╡реНрд╣рд░

  1. рдирд┐рд░реНрджреЗрд╢рд┐рдХреЗрд╡рд░ рдЬрд╛ рдЬреЗрдереЗ рдЙрджрд╛рд╣рд░рдг рдЖрд╣реЗ рд╕рд░реНрд╡реНрд╣рд░:

    cd YOUR_WORKING_DIRECTORY/istio-samples/sample-apps/helloserver/server/

  2. рд╡рд╛рдкрд░реВрди рдкреНрд░рддрд┐рдорд╛ рдПрдХрддреНрд░ рдХрд░рд╛ рдбреЙрдХрд░рдлрд╛рдЗрд▓ рдЖрдгрд┐ рддреБрдореНрд╣реА рдкреВрд░реНрд╡реА рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреЗрд▓реЗрд▓реЗ рдкрд░реНрдпрд╛рд╡рд░рдгреАрдп рдЪрд▓:

    docker build -t gcr.io/$PROJECT_ID/$GCR_REPO/helloserver:v0.0.1 .

рдкреЕрд░рд╛рдореАрдЯрд░ -t рдбреЙрдХрд░ рдЯреЕрдЧрдЪреЗ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддреЗ. рдХрдВрдЯреЗрдирд░ рддреИрдирд╛рдд рдХрд░рддрд╛рдирд╛ рддреБрдореНрд╣реА рд╡рд╛рдкрд░рдд рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдкреНрд░рддрд┐рдореЗрдЪреЗ рд╣реЗ рдирд╛рд╡ рдЖрд╣реЗ.

  1. рдХрдВрдЯреЗрдирд░ рд░реЗрдЬрд┐рд╕реНрдЯреНрд░реАрдордзреНрдпреЗ рдкреНрд░рддрд┐рдорд╛ рдЕрдкрд▓реЛрдб рдХрд░рд╛:
    docker push gcr.io/$PROJECT_ID/$GCR_REPO/helloserver:v0.0.1

рд▓реЛрдбрдЬрдирдЪреЗ рдХрдВрдЯреЗрдирд░реАрдХрд░рдг

1) рдЙрджрд╛рд╣рд░рдг рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХреЗрд╡рд░ рдЬрд╛ рд▓реЛрдбрдЬрди:

cd ../loadgen

реи) рдкреНрд░рддрд┐рдорд╛ рдЧреЛрд│рд╛ рдХрд░рд╛:

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 рдХреНрд▓рд╕реНрдЯрд░ рддрдпрд╛рд░ рдХрд░рдд рдЖрд╣реЗ.

рд╣реЗ рдХрдВрдЯреЗрдирд░ рдХреНрд▓рд╛рдЙрдб рд╢реЗрд▓ рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдорд╢реАрдирд╡рд░ рдХрд┐рдВрд╡рд╛ рдХрдорд╛рдВрдбрд╕рд╣ рд╕рдВрдЧрдгрдХрд╛рд╡рд░ рдЪрд╛рд▓рд╡рд▓реЗ рдЬрд╛рдК рд╢рдХрддрд╛рдд рдбреЙрдХрд░ рд░рди. рдкрд░рдВрддреБ рдЙрддреНрдкрд╛рджрди рд╡рд╛рддрд╛рд╡рд░рдгрд╛рдд, рддреБрдореНрд╣рд╛рд▓рд╛ рдХрдВрдЯреЗрдирд░ рдордзреНрдпрд╡рд░реНрддреА рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯ рдХрд░рдгреНрдпрд╛рдЪрд╛ рдорд╛рд░реНрдЧ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рддреБрдореНрд╣рд╛рд▓рд╛ рдХрдВрдЯреЗрдирд░ рдиреЗрд╣рдореА рдЪрд╛рд▓реВ рдЕрд╕рд▓реНрдпрд╛рдЪреА рдЦрд╛рддреНрд░реА рдХрд░реВрди рджреЗрдгрд╛рд░реА рдкреНрд░рдгрд╛рд▓реА рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рдЖрдгрд┐ рдЯреНрд░реЕрдлрд┐рдХ рд╡рд╛рдврд▓реНрдпрд╛рд╕ рдЕрддрд┐рд░рд┐рдХреНрдд рдХрдВрдЯреЗрдирд░ рдЙрджрд╛рд╣рд░рдгреЗ рд╡рд╛рдврд╡рдгреНрдпрд╛рдЪрд╛ рдЖрдгрд┐ рд╕реНрдкрд┐рди рдЕрдк рдХрд░рдгреНрдпрд╛рдЪрд╛ рдорд╛рд░реНрдЧ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.

рдХрдВрдЯреЗрдирд░реАрдХреГрдд рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЪрд╛рд▓рд╡рд┐рдгреНрдпрд╛рд╕рд╛рдареА рддреБрдореНрд╣реА рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛ G.K.E.. GKE рд╣реЗ рдХрдВрдЯреЗрдирд░ рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрд╢рди рдкреНрд▓реЕрдЯрдлреЙрд░реНрдо рдЖрд╣реЗ рдЬреЗ рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдорд╢реАрдиреНрд╕ рдХреНрд▓рд╕реНрдЯрд░рдордзреНрдпреЗ рдПрдХрддреНрд░рд┐рдд рдХрд░рддреЗ. рдкреНрд░рддреНрдпреЗрдХ рдЖрднрд╛рд╕реА рдорд╢реАрдирд▓рд╛ рдиреЛрдб рдореНрд╣рдгрддрд╛рдд. GKE рдХреНрд▓рд╕реНрдЯрд░реНрд╕ рдУрдкрди рд╕реЛрд░реНрд╕ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рдХреНрд▓рд╕реНрдЯрд░ рдореЕрдиреЗрдЬрдореЗрдВрдЯ рд╕рд┐рд╕реНрдЯрдорд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдЖрд╣реЗрдд. рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рдХреНрд▓рд╕реНрдЯрд░рд╢реА рд╕рдВрд╡рд╛рдж рд╕рд╛рдзрдгреНрдпрд╛рд╕рд╛рдареА рдпрдВрддреНрд░рдгрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреЗ.

GKE рдХреНрд▓рд╕реНрдЯрд░ рддрдпрд╛рд░ рдХрд░рдгреЗ:

1) рдХреНрд▓рд╕реНрдЯрд░ рддрдпрд╛рд░ рдХрд░рд╛:

gcloud container clusters create istioready 
  --cluster-version latest 
  --machine-type=n1-standard-2 
  --num-nodes 4

рд╕рдВрдШ gCloud рддреБрдореНрд╣реА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЗрд▓реЗрд▓реНрдпрд╛ GCP рдкреНрд░рдХрд▓реНрдк рдЖрдгрд┐ рдбреАрдлреЙрд▓реНрдЯ рдЭреЛрдирдордзреНрдпреЗ рдПрдХ istioready рдХреНрд▓рд╕реНрдЯрд░ рддрдпрд╛рд░ рдХрд░рддреЛ. Istio рдЪрд╛рд▓рд╡рдгреНрдпрд╛рд╕рд╛рдареА, рдЖрдореНрд╣реА рдХрд┐рдорд╛рди 4 рдиреЛрдбреНрд╕ рдЖрдгрд┐ рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдорд╢реАрди рдЕрд╕рдгреНрдпрд╛рдЪреА рд╢рд┐рдлрд╛рд░рд╕ рдХрд░рддреЛ n1-рдорд╛рдирдХ-2.

рд╕рдВрдШ рдХрд╛рд╣реА рдорд┐рдирд┐рдЯрд╛рдВрдд рдХреНрд▓рд╕реНрдЯрд░ рддрдпрд╛рд░ рдХрд░рддреЛ. рдХреНрд▓рд╕реНрдЯрд░ рддрдпрд╛рд░ рдЭрд╛рд▓реНрдпрд╛рд╡рд░, рдХрдорд╛рдВрдб рдЕрд╕реЗ рдХрд╛рд╣реАрддрд░реА рдЖрдЙрдЯрдкреБрдЯ рдХрд░рддреЗ рд╕рдВрджреЗрд╢.

2) рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЯреВрд▓рдордзреНрдпреЗ рдХреНрд░реЗрдбреЗрдиреНрд╢рд┐рдпрд▓ рдкреНрд░рджрд╛рди рдХрд░рд╛ kubectlрдХреНрд▓рд╕реНрдЯрд░ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рддреЗ рд╡рд╛рдкрд░рдгреНрдпрд╛рд╕рд╛рдареА:

gcloud container clusters get-credentials istioready

3) рдЖрддрд╛ рддреБрдореНрд╣реА рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рд╢реА рджреНрд╡рд╛рд░реЗ рд╕рдВрд╡рд╛рдж рд╕рд╛рдзреВ рд╢рдХрддрд╛ kubectl. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдЦрд╛рд▓реАрд▓ рдХрдорд╛рдВрдб рдиреЛрдбреНрд╕рдЪреА рд╕реНрдерд┐рддреА рд╢реЛрдзреВ рд╢рдХрддреЗ:

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 рд╡рд░ рдПрдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рджрд░реНрд╢рд╡рддреЗ:

Istio рд╕рд╛рдареА рдЕрд░реНрдЬ рддрдпрд╛рд░ рдХрд░рдд рдЖрд╣реЗ

рддреБрдореНрд╣реА GKE рдордзреНрдпреЗ рдХрдВрдЯреЗрдирд░ рддреИрдирд╛рдд рдХрд░рдгреНрдпрд╛рдкреВрд░реНрд╡реА, Kubernetes рдЪреНрдпрд╛ рдореБрдЦреНрдп рд╕рдВрдХрд▓реНрдкрдирд╛ рдЬрд╛рдгреВрди рдШреНрдпрд╛. рддреБрдореНрд╣рд╛рд▓рд╛ рдЕрдзрд┐рдХ рдЬрд╛рдгреВрди рдШреНрдпрд╛рдпрдЪреЗ рдЕрд╕рд▓реНрдпрд╛рд╕ рдЕрдЧрджреА рд╢реЗрд╡рдЯреА рджреБрд╡реЗ рдЖрд╣реЗрдд.

  • рдиреЛрдбреНрд╕ рдЖрдгрд┐ рдХреНрд▓рд╕реНрдЯрд░реНрд╕. GKE рдордзреНрдпреЗ, рдиреЛрдб рдПрдХ рдЖрднрд╛рд╕реА рдорд╢реАрди рдЖрд╣реЗ. рдЗрддрд░ Kubernetes рдкреНрд▓реЕрдЯрдлреЙрд░реНрдорд╡рд░, рдиреЛрдб рд╕рдВрдЧрдгрдХ рдХрд┐рдВрд╡рд╛ рдЖрднрд╛рд╕реА рдорд╢реАрди рдЕрд╕реВ рд╢рдХрддреЗ. рдХреНрд▓рд╕реНрдЯрд░ рд╣рд╛ рдиреЛрдбреНрд╕рдЪрд╛ рд╕рдВрдЧреНрд░рд╣ рдЖрд╣реЗ рдЬреНрдпрд╛рд▓рд╛ рдПрдХрд▓ рдпреБрдирд┐рдЯ рдорд╛рдирд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ рдЬреЗрдереЗ рддреБрдореНрд╣реА рдХрдВрдЯреЗрдирд░рд╛рдЗрдЬреНрдб рдНрдкреНрд▓рд┐рдХреЗрд╢рди рддреИрдирд╛рдд рдХрд░рддрд╛.
  • рд╢реЗрдВрдЧрд╛. рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рдордзреНрдпреЗ, рдХрдВрдЯреЗрдирд░ рд╢реЗрдВрдЧрд╛рдВрдордзреНрдпреЗ рдЪрд╛рд▓рддрд╛рдд. рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рдордзреАрд▓ рдкреЙрдб рд╣реЗ рдЕрд╡рд┐рднрд╛рдЬреНрдп рдПрдХрдХ рдЖрд╣реЗ. рдкреЙрдбрдордзреНрдпреЗ рдПрдХ рдХрд┐рдВрд╡рд╛ рдЕрдзрд┐рдХ рдХрдВрдЯреЗрдирд░ рдЕрд╕рддрд╛рдд. рдЖрдкрдг рд╕рд░реНрд╡реНрд╣рд░ рдХрдВрдЯреЗрдирд░ рддреИрдирд╛рдд рдЖрдгрд┐ рд▓реЛрдбрдЬрди рд╕реНрд╡рддрдВрддреНрд░ рд╢реЗрдВрдЧрд╛ рдордзреНрдпреЗ. рдЬреЗрд╡реНрд╣рд╛ рдкреЙрдбрдордзреНрдпреЗ рдЕрдиреЗрдХ рдХрдВрдЯреЗрдирд░ рдЕрд╕рддрд╛рдд (рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдНрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡реНрд╣рд░ рдЖрдгрд┐ рдкреНрд░реЙрдХреНрд╕реА рд╕рд░реНрд╡реНрд╣рд░), рдХрдВрдЯреЗрдирд░ рдПрдХрдЪ рдШрдЯрдХ рдореНрд╣рдгреВрди рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд рдЖрдгрд┐ рдкреЙрдб рд╕рдВрд╕рд╛рдзрдиреЗ рд╕рд╛рдорд╛рдпрд┐рдХ рдХрд░рддрд╛рдд.
  • рдЙрдкрдпреЛрдЬрди. Kubernetes рдордзреНрдпреЗ, рдЙрдкрдпреЛрдЬрди рд╣реА рдПрдХ рд╡рд╕реНрддреВ рдЖрд╣реЗ рдЬреА рдПрдХрд╕рд╛рд░рдЦреНрдпрд╛ рд╢реЗрдВрдЧрд╛рдВрдЪрд╛ рд╕рдВрдЧреНрд░рд╣ рдЖрд╣реЗ. рдбрд┐рдкреНрд▓реЙрдпрдореЗрдВрдЯ рдХреНрд▓рд╕реНрдЯрд░ рдиреЛрдбреНрд╕рдордзреНрдпреЗ рд╡рд┐рддрд░рд┐рдд рдХреЗрд▓реЗрд▓реНрдпрд╛ рдкреЙрдбреНрд╕рдЪреНрдпрд╛ рдЕрдиреЗрдХ рдкреНрд░рддрд┐рдХреГрддреА рд▓рд╛рдБрдЪ рдХрд░рддреЗ. рдЙрдкрдпреЛрдЬрди рдЕрдпрд╢рд╕реНрд╡реА рдЭрд╛рд▓реЗрд▓реНрдпрд╛ рдХрд┐рдВрд╡рд╛ рдкреНрд░рддрд┐рд╕рд╛рдж рди рджреЗрдгрд╛рд░реНтАНрдпрд╛ рдкреЙрдбреНрд╕ рдЖрдкреЛрдЖрдк рдмрджрд▓рддреЗ.
  • рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рд╕реЗрд╡рд╛. рддреБрдореНрд╣реА GKE рдордзреНтАНрдпреЗ рдЕреЕрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдб рдЪрд╛рд▓рд╡рддрд╛ рддреЗрд╡реНрд╣рд╛, рджрд░рдореНрдпрд╛рдирдЪреЗ рдХрдиреЗрдХреНрд╢рди рд▓реЛрдбрдЬрди ╨╕ рд╕рд░реНрд╡реНрд╣рд░. рддреБрдореНрд╣реА рдХреНрд▓рд╛рдЙрдб рд╢реЗрд▓ рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдорд╢реАрди рдХрд┐рдВрд╡рд╛ рдбреЗрд╕реНрдХрдЯреЙрдкрд╡рд░ рд╕реЗрд╡рд╛ рд╕реБрд░реВ рдХреЗрд▓реНрдпрд╛рд╡рд░, рддреБрдореНрд╣реА рддреНрдпрд╛рдВрдирд╛ рд╡рд┐рдирдВрддреНрдпрд╛ рдкрд╛рдард╡рд▓реНрдпрд╛ рд╕рд░реНрд╡реНрд╣рд░ рдкрддреНрддреНрдпрд╛рджреНрд╡рд╛рд░реЗ рд▓реЛрдХрд╣реЛрд╕реНрдЯрдГ 8080. GKE рдордзреНрдпреЗ рддреИрдирд╛рдд рдХреЗрд▓реНрдпрд╛рдирдВрддрд░, рдЙрдкрд▓рдмреНрдз рдиреЛрдбреНрд╕рд╡рд░ рдкреЙрдбреНрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд. рдбреАрдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░, рдкреЙрдб рдХреЛрдгрддреНрдпрд╛ рдиреЛрдбрд╡рд░ рдЪрд╛рд▓реВ рдЖрд╣реЗ рдпрд╛рд╡рд░ рддреБрдордЪреЗ рдХреЛрдгрддреЗрд╣реА рдирд┐рдпрдВрддреНрд░рдг рдирд╕рддреЗ, рддреНрдпрд╛рдореБрд│реЗ рддреБрдордЪреЗ рд╢реЗрдВрдЧрд╛ рдХреЛрдгрддреЗрд╣реА рдХрд╛рдпрдордЪреЗ IP рдкрддреНрддреЗ рдирд╛рд╣реАрдд.
    рд╕рд╛рдареА IP рдкрддреНрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕рд░реНрд╡реНрд╣рд░, рддреБрдореНрд╣рд╛рд▓рд╛ рдкреЙрдбреНрд╕рдЪреНрдпрд╛ рд╢реАрд░реНрд╖рд╕реНрдерд╛рдиреА рдиреЗрдЯрд╡рд░реНрдХ рдЕреЕрдмреНрд╕реНрдЯреНрд░реЕрдХреНрд╢рди рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рддреЗрдЪ рдЖрд╣реЗ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рд╕реЗрд╡рд╛. рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рд╕реЗрд╡рд╛ рдкреЙрдбреНрд╕рдЪреНрдпрд╛ рд╕рдВрдЪрд╛рд╕рд╛рдареА рдПрдХ рд╕рддрдд рдПрдВрдбрдкреЙрдЗрдВрдЯ рдкреНрд░рджрд╛рди рдХрд░рддреЗ. рдХрд╛рд╣реА рдЖрд╣реЗрдд рд╕реЗрд╡рд╛рдВрдЪреЗ рдкреНрд░рдХрд╛рд░. рд╕рд░реНрд╡реНрд╣рд░ рд╡рд╛рдкрд░рддреЗ рд▓реЛрдб рдмреЕрд▓рдиреНрд╕рд░, рдЬреЗ рд╕рдВрдкрд░реНрдХрд╛рд╕рд╛рдареА рдмрд╛рд╣реНрдп IP рдкрддреНрддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╕рд░реНрд╡реНрд╣рд░ рдХреНрд▓рд╕реНрдЯрд░рдЪреНрдпрд╛ рдмрд╛рд╣реЗрд░реВрди.
    рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рдордзреНрдпреЗ рдЕрдВрдЧрднреВрдд DNS рдкреНрд░рдгрд╛рд▓реА рджреЗрдЦреАрд▓ рдЖрд╣реЗ рдЬреА DNS рдирд╛рд╡реЗ рдирд┐рдпреБрдХреНрдд рдХрд░рддреЗ (рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, helloserver.default.cluster.local) рд╕реЗрд╡рд╛. рдпрд╛рдмрджреНрджрд▓ рдзрдиреНрдпрд╡рд╛рдж, рдХреНрд▓рд╕реНрдЯрд░рдордзреАрд▓ рд╢реЗрдВрдЧрд╛ рдПрдХрд╛ рд╕реНрдерд┐рд░ рдкрддреНрддреНрдпрд╛рд╡рд░ рдХреНрд▓рд╕реНрдЯрд░рдордзреАрд▓ рдЗрддрд░ рд╢реЗрдВрдЧрд╛рдВрд╢реА рд╕рдВрд╡рд╛рдж рд╕рд╛рдзрддрд╛рдд. DNS рдирд╛рд╡ рдХреНрд▓рд╕реНрдЯрд░рдЪреНрдпрд╛ рдмрд╛рд╣реЗрд░ рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рдК рд╢рдХрдд рдирд╛рд╣реА, рдЬрд╕реЗ рдХреА рдХреНрд▓рд╛рдЙрдб рд╢реЗрд▓рдордзреНрдпреЗ рдХрд┐рдВрд╡рд╛ рд╕рдВрдЧрдгрдХрд╛рд╡рд░.

рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рдкреНрд░рдХрдЯ рд╣реЛрддрд╛рдд

рдЬреЗрд╡реНрд╣рд╛ рддреБрдореНрд╣реА рд╕реНрддреНрд░реЛрддрд╛рд╡рд░реВрди рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЪрд╛рд▓рд╡рд▓рд╛, рддреЗрд╡реНрд╣рд╛ рддреБрдореНрд╣реА рдЕрдирд┐рд╡рд╛рд░реНрдп рдЖрджреЗрд╢ рд╡рд╛рдкрд░рд▓рд╛ рдкрд╛рдпрдерди 3

server.py

рдЕрддреНрдпрд╛рд╡рд╢реНрдпрдХ рдХреНрд░рд┐рдпрд╛рдкрдж рд╕реВрдЪрд┐рдд рдХрд░рддреЗ: "рд╣реЗ рдХрд░рд╛."

рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рд╡рд╛рдкрд░рддрд╛рдд рдШреЛрд╖рдгрд╛рддреНрдордХ рдореЙрдбреЗрд▓. рдпрд╛рдЪрд╛ рдЕрд░реНрде рдЕрд╕рд╛ рдХреА рдЖрдореНрд╣реА рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕рд▓рд╛ рдиреЗрдордХреЗ рдХрд╛рдп рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рд╣реЗ рд╕рд╛рдВрдЧрдд рдирд╛рд╣реА, рдкрд░рдВрддреБ рдЖрдореНрд╣реА рдЗрдЪреНрдЫрд┐рдд рд╕реНрдерд┐рддреАрдЪреЗ рд╡рд░реНрдгрди рдХрд░рддреЛ. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдХреБрдмрд░реНрдиреЗрдЯреНрд╕ рдЖрд╡рд╢реНрдпрдХрддреЗрдиреБрд╕рд╛рд░ POD рд▓рд╛рдБрдЪ рдХрд░рддреЗ рдЖрдгрд┐ рдерд╛рдВрдмрд╡рддреЗ, рдЬреЗрдгреЗрдХрд░реВрди рд╕рд┐рд╕реНрдЯрдордЪреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕реНрдерд┐рддреА рдЗрдЪреНрдЫреЗрдиреБрд╕рд╛рд░ рдЕрд╕реЗрд▓.

рддреБрдореНтАНрд╣реА рдореЕрдирд┐рдлреЗрд╕реНтАНрдЯ рдХрд┐рдВрд╡рд╛ рдлрд╛рдЗрд▓рдордзреНтАНрдпреЗ рдЗрдЪреНрдЫрд┐рдд рд╕реНрдерд┐рддреА рджрд░реНрд╢рд╡рддрд╛ рд╡рд╛рдИрдПрдордПрд▓. YAML рдлрд╛рдЗрд▓рдордзреНрдпреЗ рдПрдХ рдХрд┐рдВрд╡рд╛ рдЕрдзрд┐рдХ Kubernetes рдСрдмреНрдЬреЗрдХреНрдЯрд╕рд╛рдареА рддрдкрд╢реАрд▓ рдЕрд╕рддрд╛рдд.

рдЙрджрд╛рд╣рд░рдгрд╛рдордзреНрдпреЗ рд╕рд╛рдареА YAML рдлрд╛рдЗрд▓ рдЖрд╣реЗ рд╕рд░реНрд╡реНрд╣рд░ ╨╕ рд▓реЛрдбрдЬрди. рдкреНрд░рддреНрдпреЗрдХ YAML рдлрд╛рдЗрд▓ рдбрд┐рдкреНрд▓реЙрдпрдореЗрдВрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдЖрдгрд┐ Kubernetes рд╕реЗрд╡реЗрдЪреА рдЗрдЪреНрдЫрд┐рдд рд╕реНрдерд┐рддреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ.

рд╕рд░реНрд╡реНрд╣рд░.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

  • рдкреНрд░рдХрд╛рд░рдЪреА рдСрдмреНрдЬреЗрдХреНрдЯрдЪрд╛ рдкреНрд░рдХрд╛рд░ рджрд░реНрд╢рд╡рддреЛ.
  • metadata.name рдЙрдкрдпреЛрдЬрдирд╛рдЪреЗ рдирд╛рд╡ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ.
  • рдкрд╣рд┐рд▓реЗ рдлреАрд▓реНрдб рдЪрд╖реНрдорд╛ рдЗрдЪреНрдЫрд┐рдд рд╕реНрдерд┐рддреАрдЪреЗ рд╡рд░реНрдгрди рдЖрд╣реЗ.
  • spec.replicas рд╢реЗрдВрдЧрд╛рдВрдЪреА рдЗрдЪреНрдЫрд┐рдд рд╕рдВрдЦреНрдпрд╛ рджрд░реНрд╢рд╡рддреЗ.
  • рд╡рд┐рднрд╛рдЧ spec.template рдкреЙрдб рдЯреЗрдореНрдкрд▓реЗрдЯ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ. рдкреЙрдб рд╕реНрдкреЗрд╕рд┐рдлрд┐рдХреЗрд╢рдирдордзреНрдпреЗ рдлреАрд▓реНрдб рдЖрд╣реЗ рдкреНрд░рддрд┐рдорд╛, рдЬреЗ рдХрдВрдЯреЗрдирд░ рд░реЗрдЬрд┐рд╕реНрдЯреНрд░реАрдордзреВрди рдХрд╛рдврд▓реЗ рдЬрд╛рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдкреНрд░рддрд┐рдореЗрдЪреЗ рдирд╛рд╡ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ.

рд╕реЗрд╡рд╛ рдЦрд╛рд▓реАрд▓рдкреНрд░рдорд╛рдгреЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреЗрд▓реА рдЖрд╣реЗ:

apiVersion: v1
kind: Service
metadata:
  name: hellosvc
spec:
  type: LoadBalancer
  selector:
    app: helloserver
  ports:
  - name: http
    port: 80
    targetPort: 8080

  • рд▓реЛрдб рдмреЕрд▓рдиреНрд╕рд░: рдХреНрд▓рд╛рдпрдВрдЯ рд▓реЛрдб рдмреЕрд▓рдиреНрд╕рд░рдЪреНрдпрд╛ IP рдкрддреНрддреНрдпрд╛рд╡рд░ рд╡рд┐рдирдВрддреНрдпрд╛ рдкрд╛рдард╡рддрд╛рдд, рдЬреНрдпрд╛рдЪрд╛ IP рдкрддреНрддрд╛ рдХрд╛рдпрдо рдЕрд╕рддреЛ рдЖрдгрд┐ рдХреНрд▓рд╕реНрдЯрд░рдЪреНрдпрд╛ рдмрд╛рд╣реЗрд░реВрди рдкреНрд░рд╡реЗрд╢ рдХрд░рддрд╛ рдпреЗрддреЛ.
  • рдЯрд╛рд░реНрдЧреЗрдЯрдкреЛрд░реНрдЯ: рдЬрд╕реЗ рддреБрдореНрд╣рд╛рд▓рд╛ рдЖрдард╡рддреЗ, рд╕рдВрдШ рдПрдХреНрд╕рдкреЛрдЬ 8080 ╨▓ рдбреЙрдХрд░рдлрд╛рдЗрд▓ рдкреЛрд░реНрдЯ рдкреНрд░рджрд╛рди рдХреЗрд▓реЗ рдирд╛рд╣реАрдд. рдЖрдкрдг рдкреЛрд░реНрдЯ рдкреНрд░рджрд╛рди рдХрд░рд╛ 8080рдЬреЗрдгреЗрдХрд░реВрди рддреБрдореНрд╣реА рдХрдВрдЯреЗрдирд░рд╢реА рд╕рдВрдкрд░реНрдХ рд╕рд╛рдзреВ рд╢рдХрддрд╛ рд╕рд░реНрд╡реНрд╣рд░ рдХреНрд▓рд╕реНрдЯрд░рдЪреНрдпрд╛ рдмрд╛рд╣реЗрд░. рдЖрдордЪреНрдпрд╛ рдмрд╛рдмрддреАрдд hellosvc.default.cluster.local:80 (рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдирд╛рд╡: рд╣реЕрд▓реЛрд╕рд╡реНрд╣реАрд╕реА) рдкреЛрд░реНрдЯрд╢реА рд╕рдВрдмрдВрдзрд┐рдд рдЖрд╣реЗ 8080 рдкреЙрдб рдЖрдпрдкреА рдкрддреНрддреЗ рд╣реЕрд▓реЛрд╕рд░реНрд╡реНрд╣рд░.
  • рдкреЛрд░реНрдЯ: рд╣рд╛ рдкреЛрд░реНрдЯ рдХреНрд░рдорд╛рдВрдХ рдЖрд╣реЗ рдЬрд┐рдереЗ рдХреНрд▓рд╕реНрдЯрд░рдордзреАрд▓ рдЗрддрд░ рд╕реЗрд╡рд╛ рд╡рд┐рдирдВрддреНрдпрд╛ рдкрд╛рдард╡рддреАрд▓.

loadgen.yaml

рдЙрдкрдпреЛрдЬрди рдСрдмреНрдЬреЗрдХреНрдЯ loadgen.yaml рджрд┐рд╕рдд рд╕рд░реНрд╡реНрд╣рд░.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) рдЙрдШрдбрд╛ рд╕рд░реНрд╡реНрд╣рд░.yaml рдордЬрдХреВрд░ рд╕рдВрдкрд╛рджрдХрд╛рдд.
3) рдлреАрд▓реНрдбрдордзреАрд▓ рдирд╛рд╡ рдмрджрд▓рд╛ рдкреНрд░рддрд┐рдорд╛ рддреБрдордЪреНрдпрд╛ рдбреЙрдХрд░ рдЗрдореЗрдЬрдЪреНрдпрд╛ рдирд╛рд╡рд╛рд╡рд░.

image: gcr.io/PROJECT_ID/preparing-istio/helloserver:v0.0.1

рдкреБрдирд░реНрд╕реНрдерд┐рдд рдХрд░рд╛ PROJECT_ID рддреБрдордЪреНрдпрд╛ GCP рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЖрдпрдбреАрд╡рд░.
4) рдЬрддрди рдХрд░рд╛ рдЖрдгрд┐ рдмрдВрдж рдХрд░рд╛ рд╕рд░реНрд╡реНрд╣рд░.yaml.
5) YAML рдлрд╛рдИрд▓ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рд╡рд░ рддреИрдирд╛рдд рдХрд░рд╛:

kubectl apply -f server.yaml

рдпрд╢рд╕реНрд╡реАрд░рд┐рддреНрдпрд╛ рдкреВрд░реНрдг рдЭрд╛рд▓реНрдпрд╛рд╡рд░, рдХрдорд╛рдВрдб рдЦрд╛рд▓реАрд▓ рдХреЛрдб рддрдпрд╛рд░ рдХрд░рддреЗ:

deployment.apps/helloserver created
service/hellosvc created

6) рдбрд┐рд░реЗрдХреНрдЯрд░реА рд╡рд░ рдЬрд╛ рдЬреЗрдереЗ рд▓реЛрдбрдЬрди:

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) рдмрд╛рд╣реНрдп IP рдкрддреНрддреЗ рдорд┐рд│рд╡рд╛ рд╣реЕрд▓реЛрд╕рд╡реНрд╣реАрд╕реА:

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) рдпрд╛рдВрдирд╛ рд╡рд┐рдирдВрддреА рдкрд╛рдард╡рд╛ рд╣реЕрд▓реЛрд╕рд╡реНрд╣реАрд╕реА: рдмрджрд▓рд╛ рдмрд╛рд╣реНрдп_рдЖрдпрдкреА рдмрд╛рд╣реНрдп IP рдкрддреНрддреНрдпрд╛рд╡рд░ рд╣реЕрд▓реЛрд╕рд╡реНрд╣реАрд╕реА.

curl http://EXTERNAL_IP

рдЪрд▓рд╛ Istio рд╡рд░ рдШреЗрдК

рддреБрдордЪреНрдпрд╛рдХрдбреЗ рдЖрдзреАрдкрд╛рд╕реВрдирдЪ GKE рд╡рд░ рдПрдХ рдЕрд░реНрдЬ рддреИрдирд╛рдд рдЖрд╣реЗ. рд▓реЛрдбрдЬрди Kubernetes DNS рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛ (hellosvc:80) рдпрд╛рдВрдирд╛ рд╡рд┐рдирдВрддреА рдкрд╛рдард╡рдгреНрдпрд╛рд╕рд╛рдареА рд╕рд░реНрд╡реНрд╣рд░рдЖрдгрд┐ рддреБрдореНрд╣реА рд╡рд┐рдирдВрддреНрдпрд╛ рдкрд╛рдард╡реВ рд╢рдХрддрд╛ рд╕рд░реНрд╡реНрд╣рд░ рдмрд╛рд╣реНрдп IP рдкрддреНрддреНрдпрд╛рджреНрд╡рд╛рд░реЗ. рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рдордзреНрдпреЗ рдЕрдиреЗрдХ рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ рдЕрд╕рд▓реА рддрд░реА, рд╕реЗрд╡рд╛рдВрдмрджреНрджрд▓ рдХрд╛рд╣реА рдорд╛рд╣рд┐рддреА рдЧрд╣рд╛рд│ рдЖрд╣реЗ:

  • рд╕реЗрд╡рд╛ рдХрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ рд╕рдВрд╡рд╛рдж рд╕рд╛рдзрддрд╛рдд? рд╕реЗрд╡рд╛рдВрдордзреАрд▓ рд╕рдВрдмрдВрдз рдХрд╛рдп рдЖрд╣реЗрдд? рд╕реЗрд╡рд╛ рджрд░рдореНрдпрд╛рди рд░рд╣рджрд╛рд░реА рдХрд╢реА рдЪрд╛рд▓рддреЗ? рдпрд╛рдЪреА рддреБрдореНрд╣рд╛рд▓рд╛ рдЬрд╛рдгреАрд╡ рдЖрд╣реЗ рдХрд╛ рд▓реЛрдбрдЬрди рд▓рд╛ рд╡рд┐рдирдВрддреНрдпрд╛ рдкрд╛рдард╡рддреЗ рд╕рд░реНрд╡реНрд╣рд░, рдкрд░рдВрддреБ рдХрд▓реНрдкрдирд╛ рдХрд░рд╛ рдХреА рддреБрдореНрд╣рд╛рд▓рд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдмрджреНрджрд▓ рдХрд╛рд╣реАрд╣реА рдорд╛рд╣рд┐рддреА рдирд╛рд╣реА. рдпрд╛ рдкреНрд░рд╢реНрдирд╛рдВрдЪреА рдЙрддреНрддрд░реЗ рджреЗрдгреНрдпрд╛рд╕рд╛рдареА, GKE рдордзреНрдпреЗ рдЪрд╛рд▓реВ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдкреЙрдбреНрд╕рдЪреА рдпрд╛рджреА рдкрд╛рд╣реВ.
  • рдореЗрдЯреНрд░рд┐рдХреНрд╕. рдХрд┐рддреА рдХрд╛рд│ рд╕рд░реНрд╡реНрд╣рд░ рдпреЗрдгрд╛рд░реНтАНрдпрд╛ рд╡рд┐рдирдВрддреАрд▓рд╛ рдкреНрд░рддрд┐рд╕рд╛рдж рджреЗрддреЛ? рд╕рд░реНрд╡реНрд╣рд░рд▓рд╛ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдж рдХрд┐рддреА рд╡рд┐рдирдВрддреНрдпрд╛ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛рдд? рддреЗ рддреНрд░реБрдЯреА рд╕рдВрджреЗрд╢ рджреЗрддреЗ рдХрд╛?
  • рд╕реБрд░рдХреНрд╖рд╛ рдорд╛рд╣рд┐рддреА. рджрд░рдореНрдпрд╛рди рд╡рд╛рд╣рддреВрдХ рд▓реЛрдбрдЬрди ╨╕ рд╕рд░реНрд╡реНрд╣рд░ рдлрдХреНрдд рдкрд╛рд░ рдХрд░рддреЗ HTTP рдХрд┐рдВрд╡рд╛ рджреНрд╡рд╛рд░реЗ mTLS?

Istio рдпрд╛ рд╕рд░реНрд╡ рдкреНрд░рд╢реНрдирд╛рдВрдЪреА рдЙрддреНрддрд░реЗ рджреЗрддреЗ. рд╣реЗ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, Istio рдПрдХ рд╕рд╛рдЗрдбрдХрд╛рд░ рдкреНрд░реЙрдХреНрд╕реА рдареЗрд╡рддреЛ рджреВрдд рдкреНрд░рддреНрдпреЗрдХ рдкреЙрдб рдордзреНрдпреЗ. рдПрдиреНрд╡реЙрдп рдкреНрд░реЙрдХреНрд╕реА рдЕреЕрдкреНрд▓рд┐рдХреЗрд╢рди рдХрдВрдЯреЗрдирд░рд╡рд░ рдпреЗрдгрд╛рд░реЗ рдЖрдгрд┐ рдЬрд╛рдгрд╛рд░реЗ рд╕рд░реНрд╡ рдЯреНрд░реЕрдлрд┐рдХ рд░реЛрдЦрддреЗ. рдпрд╛рдЪрд╛ рдЕрд░реНрде рдЕрд╕рд╛ рдХреА рд╕рд░реНрд╡реНрд╣рд░ ╨╕ рд▓реЛрдбрдЬрди рд╕рд╛рдЗрдбрдХрд╛рд░ рдкреНрд░реЙрдХреНрд╕реА рджреВрдд рджреНрд╡рд╛рд░реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рд╛, рдЖрдгрд┐ рдкрд╛рд╕реВрди рд╕рд░реНрд╡ рд░рд╣рджрд╛рд░реА рд▓реЛрдбрдЬрди ╨║ рд╕рд░реНрд╡реНрд╣рд░ рджреВрдд рдкреНрд░реЙрдХреНрд╕реАрджреНрд╡рд╛рд░реЗ рдЬрд╛рддреЗ.

рджреВрдд рдкреНрд░реЙрдХреНрд╕реАрдВрдордзреАрд▓ рдХрдиреЗрдХреНрд╢рди рд╕реЗрд╡рд╛ рдЬрд╛рд│реА рддрдпрд╛рд░ рдХрд░рддрд╛рдд. рд╕рд░реНрд╡реНрд╣рд┐рд╕ рдореЗрд╢ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреБрдмрд░реНрдиреЗрдЯреНрд╕рдЪреНрдпрд╛ рд╢реАрд░реНрд╖рд╕реНрдерд╛рдиреА рдирд┐рдпрдВрддреНрд░рдгрд╛рдЪрд╛ рдПрдХ рд╕реНрддрд░ рдкреНрд░рджрд╛рди рдХрд░рддреЗ.

Istio рд╕рд╛рдареА рдЕрд░реНрдЬ рддрдпрд╛рд░ рдХрд░рдд рдЖрд╣реЗ

рджреВрдд рдкреНрд░реЙрдХреНрд╕реА рддреНрдпрд╛рдВрдЪреНрдпрд╛ рд╕реНрд╡рддрдГрдЪреНрдпрд╛ рдХрдВрдЯреЗрдирд░рдордзреНрдпреЗ рдЪрд╛рд▓рдд рдЕрд╕рд▓реНрдпрд╛рдиреЗ, рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЛрдбрдордзреНрдпреЗ рдЬрд╡рд│рдЬрд╡рд│ рдХреЛрдгрддрд╛рд╣реА рдмрджрд▓ рди рдХрд░рддрд╛ Istio GKE рдХреНрд▓рд╕реНрдЯрд░рдЪреНрдпрд╛ рд╡рд░ рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓рд╛ рдЬрд╛рдК рд╢рдХрддреЛ. рдкрд░рдВрддреБ рддреБрдордЪрд╛ рдЕрд░реНрдЬ Istio рджреНрд╡рд╛рд░реЗ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рддреБрдореНрд╣реА рдХрд╛рд╣реА рдХрд╛рдо рдХреЗрд▓реЗ рдЖрд╣реЗ:

  • рд╕рд░реНрд╡ рдХрдВрдЯреЗрдирд░рд╕рд╛рдареА рд╕реЗрд╡рд╛. рдЙрдкрдпреЛрдЬрдирд╛рдВрдирд╛ рд╕рд░реНрд╡реНрд╣рд░ ╨╕ рд▓реЛрдбрдЬрди Kubernetes рд╕реЗрд╡реЗрд╢реА рдЬреЛрдбрд▓реЗрд▓реЗ. рдЕрдЧрджреА рд▓реЛрдбрдЬрди, рдЬреНрдпрд╛рдВрдирд╛ рдпреЗрдгрд╛рд░реНтАНрдпрд╛ рд╡рд┐рдирдВрддреНрдпрд╛ рдорд┐рд│рдд рдирд╛рд╣реАрдд, рддреЗрдереЗ рдПрдХ рд╕реЗрд╡рд╛ рдЖрд╣реЗ.
  • рд╕реЗрд╡рд╛рдВрдордзреАрд▓ рдмрдВрджрд░рд╛рдВрдирд╛ рдирд╛рд╡реЗ рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдЬрд░реА рд╕реЗрд╡рд╛ рдкреЛрд░реНрдЯ GKE рдордзреНрдпреЗ рдЕрдирд╛рдорд┐рдд рд╕реЛрдбрд▓реЗ рдЬрд╛рдК рд╢рдХрддрд╛рдд, Istio рд▓рд╛ рддреБрдореНрд╣реА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рдкреЛрд░реНрдЯ рдирд╛рд╡ рддреНрдпрд╛рдЪреНрдпрд╛ рдкреНрд░реЛрдЯреЛрдХреЙрд▓рдЪреНрдпрд╛ рдЕрдиреБрд╖рдВрдЧрд╛рдиреЗ. YAML рдлрд╛рдИрд▓ рдордзреНрдпреЗ рдмрдВрджрд░ рд╕рд░реНрд╡реНрд╣рд░ рдореНрд╣рдгрддрд╛рдд httpрдХрд╛рд░рдг рд╕рд░реНрд╡реНрд╣рд░ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╡рд╛рдкрд░рддреЛ HTTP... рддрд░ рд╕реЗрд╡рд╛ рд╡рд╛рдкрд░рд▓реЗ gRPC, рддреБрдореНрд╣реА рдмрдВрджрд░рд╛рд▓рд╛ рдирд╛рд╡ рджреНрдпрд╛рд▓ grpc.
  • рддреИрдирд╛рддреА рдзреНрд╡рдЬрд╛рдВрдХрд┐рдд рдЖрд╣реЗрдд. рдореНрд╣рдгреВрди, рддреБрдореНрд╣реА Istio рдЪреА рд░рд╣рджрд╛рд░реА рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛, рдЬрд╕реЗ рдХреА рд╕рдорд╛рди рд╕реЗрд╡реЗрдЪреНрдпрд╛ рдЖрд╡реГрддреНрддреНрдпрд╛рдВрдордзреНрдпреЗ рд░рд╣рджрд╛рд░реА рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдгреЗ.

Istio рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдд рдЖрд╣реЗ

Istio рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рдЪреЗ рджреЛрди рдорд╛рд░реНрдЧ рдЖрд╣реЗрдд. рдХрд░реВ рд╢рдХрддреЛ GKE рд╡рд┐рд╕реНрддрд╛рд░рд╛рд╡рд░ Istio рд╕рдХреНрд╖рдо рдХрд░рд╛ рдХрд┐рдВрд╡рд╛ Istio opensors рд╕реНрдерд╛рдкрд┐рдд рдХрд░рд╛ рдХреНрд▓рд╕реНрдЯрд░ рд╡рд░. GKE рд╡рд░ Istio рд╕рд╣, рддреБрдореНрд╣реА GKE рдХреНрд▓рд╕реНрдЯрд░ рд▓рд╛рдЗрдлрд╕рд╛рдпрдХрд▓рдордзреНрдпреЗ Istio рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рдиреНрд╕ рдЖрдгрд┐ рдЕрдкрдЧреНрд░реЗрдб рд╕рд╣рдЬрдкрдгреЗ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХрд░реВ рд╢рдХрддрд╛. рддреБрдореНрд╣рд╛рд▓рд╛ Istio рдЪреА рдирд╡реАрдирддрдо рдЖрд╡реГрддреНрддреА рдХрд┐рдВрд╡рд╛ рддреБрдордЪреНрдпрд╛ Istio рдХрдВрдЯреНрд░реЛрд▓ рдкреЕрдирд▓ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рдирд╡рд░ рдЕрдзрд┐рдХ рдирд┐рдпрдВрддреНрд░рдг рд╣рд╡реЗ рдЕрд╕рд▓реНрдпрд╛рд╕, GKE рд╡рд┐рд╕реНрддрд╛рд░рд╛рд╡рд░ Istio рдРрд╡рдЬреА рдореБрдХреНрдд рд╕реНрд░реЛрдд рдЖрд╡реГрддреНрддреА рд╕реНрдерд╛рдкрд┐рдд рдХрд░рд╛. рджреГрд╖реНрдЯрд┐рдХреЛрдирд╛рд╡рд░ рдирд┐рд░реНрдгрдп рдШреЗрдгреНрдпрд╛рд╕рд╛рдареА, рд▓реЗрдЦ рд╡рд╛рдЪрд╛ рдорд▓рд╛ GKE рд╡рд░ Istio рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рдХрд╛?.

рдПрдХ рдкрд░реНрдпрд╛рдп рдирд┐рд╡рдбрд╛, рдпреЛрдЧреНрдп рдорд╛рд░реНрдЧрджрд░реНрд╢рдХрд╛рдЪреЗ рдкреБрдирд░рд╛рд╡рд▓реЛрдХрди рдХрд░рд╛ рдЖрдгрд┐ рддреБрдордЪреНрдпрд╛ рдХреНрд▓рд╕реНрдЯрд░рд╡рд░ Istio рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕реВрдЪрдирд╛рдВрдЪреЗ рдЕрдиреБрд╕рд░рдг рдХрд░рд╛. рддреБрдореНрд╣рд╛рд▓рд╛ рддреБрдордЪреНрдпрд╛ рдирд╡реНрдпрд╛рдиреЗ рддреИрдирд╛рдд рдХреЗрд▓реЗрд▓реНрдпрд╛ рдНрдкреНрд▓рд┐рдХреЗрд╢рдирд╕рд╣ Istio рд╡рд╛рдкрд░рд╛рдпрдЪреЗ рдЕрд╕рд▓реНрдпрд╛рд╕, рд╕рд╛рдЗрдбрдХрд╛рд░ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рд╕рдХреНрд╖рдо рдХрд░рд╛ рдиреЗрдорд╕реНрдкреЗрд╕ рд╕рд╛рдареА рдбреАрдлреЙрд▓реНрдЯ.

рд╕реНрд╡рдЪреНрдЫрддрд╛

рддреБрдореНрд╣реА рдпрд╛ рдЯреНрдпреБрдЯреЛрд░рд┐рдпрд▓рдордзреНрдпреЗ рд╡рд╛рдкрд░рд▓реЗрд▓реНрдпрд╛ рд╕рдВрд╕рд╛рдзрдирд╛рдВрд╕рд╛рдареА рддреБрдордЪреНрдпрд╛ Google рдХреНрд▓рд╛рдЙрдб рдкреНрд▓реЕрдЯрдлреЙрд░реНрдо рдЦрд╛рддреНрдпрд╛рд╡рд░ рд╢реБрд▓реНрдХ рдЖрдХрд╛рд░рд▓реЗ рдЬрд╛рдгреЗ рдЯрд╛рд│рдгреНрдпрд╛рд╕рд╛рдареА, рдПрдХрджрд╛ рддреБрдореНрд╣реА Istio рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓реНрдпрд╛рдирдВрддрд░ рдЖрдгрд┐ рдирдореБрдирд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рд╕рд╣ рдкреНрд▓реЗ рдХреЗрд▓реНрдпрд╛рдирдВрддрд░ рдХрдВрдЯреЗрдирд░ рдХреНрд▓рд╕реНрдЯрд░ рд╣рдЯрд╡рд╛. рд╣реЗ рд╕рд░реНрд╡ рдХреНрд▓рд╕реНрдЯрд░ рд╕рдВрд╕рд╛рдзрдиреЗ рдХрд╛рдвреВрди рдЯрд╛рдХреЗрд▓, рдЬрд╕реЗ рдХреА рдЧрдгрдирд╛ рдЙрджрд╛рд╣рд░рдгреЗ, рдбрд┐рд╕реНрдХ рдЖрдгрд┐ рдиреЗрдЯрд╡рд░реНрдХ рд╕рдВрд╕рд╛рдзрдиреЗ.

рдкреБрдвреАрд▓ рдХрд╛рдп рдЖрд╣реЗ?

рд╕реНрддреНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛