рдЗрд╕реНрддрд┐рдпреЛ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрд╡реЗрджрди рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ

рдЗрд╕реНрддрд┐рдпреЛ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрд╡реЗрджрди рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ

рд╡рд┐рддрд░рд┐рдд рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ, рд╕реБрд░рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдФрд░ рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реНрддрд┐рдпреЛ рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЙрдкрдХрд░рдг рд╣реИред рдЗрд╕реНрддрд┐рдпреЛ рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдХреЛ рдЪрд▓рд╛рдиреЗ рдФрд░ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рддрдХрдиреАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдкреИрдХреЗрдЬ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдб рдФрд░ рддреИрдирд╛рддреА рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд▓рд┐рдП рдХрдВрдЯреЗрдирд░ рдФрд░ рдЙрди рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдЗрд╕реНрддрд┐рдпреЛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдкрддрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЗрди рддрдХрдиреАрдХреЛрдВ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдХрдИ рд╕реЗрд╡рд╛рдУрдВ рд╡рд╛рд▓рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдмрд┐рдирд╛ рдЗрд╕реНрддрд┐рдпреЛ. рдпрджрд┐ рдпреЗ рдЙрдкрдХрд░рдг рдФрд░ рдЕрд╡рдзрд╛рд░рдгрд╛рдПрдВ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВ, рддреЛ рдмреЗрдЭрд┐рдЭрдХ рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЛ рдЫреЛрдбрд╝ рджреЗрдВ рдФрд░ рд╕реАрдзреЗ рдЕрдиреБрднрд╛рдЧ рдкрд░ рдЬрд╛рдПрдВ Google Kubernetes рдЗрдВрдЬрди (GKE) рдкрд░ рдЗрд╕реНрддрд┐рдпреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдпрд╛ рдХреЛрдИ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдирд╛ рдЬреАрдХреЗрдИ рдкрд░ рдЗрд╕реНрддрд┐рдпреЛ.

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

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

рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ, рдЖрдк рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдп рдкреВрд░реЗ рдХрд░реЗрдВрдЧреЗ:

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

рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдЖрдк рд╢реБрд░реВ рдХрд░реЗрдВ

рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдЗрдВрдЬрди рдПрдкреАрдЖрдИ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВ:

  1. рдХреЗ рдкрд╛рд╕ рдЬрд╛рдУ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдЗрдВрдЬрди рдкреЗрдЬ Google рдХреНрд▓рд╛рдЙрдб рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХрдВрд╕реЛрд▓ рдореЗрдВред
  2. рдХреЛрдИ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВ рдпрд╛ рдЪреБрдиреЗрдВ.
  3. рдПрдкреАрдЖрдИ рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд рд╕реЗрд╡рд╛рдПрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рддрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВред рдЗрд╕рдореЗрдВ рдХреБрдЫ рдорд┐рдирдЯ рдХрд╛ рд╕рдордп рд▓рдЧреЗрдЧрд╛ред
  4. рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдХреЗ Google рдХреНрд▓рд╛рдЙрдб рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдмрд┐рд▓рд┐рдВрдЧ рд╕реЗрдЯ рдХреА рдЧрдИ рд╣реИред рдЬрд╛рдиреЗрдВ рдХрд┐ рдмрд┐рд▓рд┐рдВрдЧ рдХреИрд╕реЗ рд╕рдХреНрд╖рдо рдХрд░реЗрдВ.

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

рд╡рд┐рдХрд▓реНрдк рдП: рдХреНрд▓рд╛рдЙрдб рд╢реЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

рдХреНрд▓рд╛рдЙрдб рд╢реЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд╛рдн:

  • рдкрд╛рдпрдерди 2 рдФрд░ рдкрд╛рдпрдерди 3 рд╡рд┐рдХрд╛рд╕ рд╡рд╛рддрд╛рд╡рд░рдг (рд╕рд╣рд┐рдд) Virtualenv) рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЧрдП рд╣реИрдВред
  • рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЙрдкрдХрд░рдг gcloud, рдбрд╛рдХ рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗрд╡рд╛рд▓рд╛ рдордЬрд╝рджреВрд░, Git ╨╕ Kubectl, рдЬрд┐рд╕рдХрд╛ рд╣рдо рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ рд╡реЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрдВрд╕реНрдЯреЙрд▓ рд╣реИрдВред
  • рдЖрдкрдХреЗ рдкрд╛рд╕ рдЪреБрдирдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ рдкрд╛рда рд╕рдВрдкрд╛рджрдХреЛрдВ:
    1. рдХреЛрдб рд╕рдВрдкрд╛рджрдХ, рдЬреЛ рдХреНрд▓рд╛рдЙрдб рд╢реЗрд▓ рд╡рд┐рдВрдбреЛ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рд╕рдВрдкрд╛рджрди рдЖрдЗрдХрди рдХреЗ рд╕рд╛рде рдЦреБрд▓рддрд╛ рд╣реИред
    2. Emacs, Vim рдпрд╛ Nano, рдЬреЛ рдХреНрд▓рд╛рдЙрдб рд╢реЗрд▓ рдореЗрдВ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╕реЗ рдЦреБрд▓рддреЗ рд╣реИрдВред

рдХрд╛рдо рдореЗрдВ рд▓рд╛рдирд╛ рдореЗрдШ рд╢реИрд▓:

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

рдЗрд╕реНрддрд┐рдпреЛ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрд╡реЗрджрди рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ

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

рдЗрд╕реНрддрд┐рдпреЛ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрд╡реЗрджрди рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ

рд╡рд┐рдХрд▓реНрдк рдмреА: рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЯреВрд▓реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛

рдпрджрд┐ рдЖрдк Linux рдпрд╛ macOS рдЪрд▓рд╛рдиреЗ рд╡рд╛рд▓реЗ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реЛрдВрдЧреЗ, рддреЛ рдЖрдкрдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдШрдЯрдХреЛрдВ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдФрд░ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА:

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

  2. рдХреНрд▓рд╛рдЙрдб рдПрд╕рдбреАрдХреЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЯреВрд▓ рдХреЗ рд╕рд╛рде gcloud.

  3. рд╕реНрдерд┐рдд Kubectl - рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЯреВрд▓ Kubernetes.

    gcloud components install kubectl

  4. рд╕реНрдерд┐рдд рдбреЙрдХрд░ рд╕рд╛рдореБрджрд╛рдпрд┐рдХ рд╕рдВрд╕реНрдХрд░рдг (рд╕реАрдИ). рдЖрдк рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ рдбрд╛рдХ рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗрд╡рд╛рд▓рд╛ рдордЬрд╝рджреВрд░рдирдореВрдирд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдХрдВрдЯреЗрдирд░ рдЫрд╡рд┐рдпрд╛рдБ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдПред

  5. рдЙрдкрдХрд░рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ рдЧрд┐рдЯ рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдВрддреНрд░рдгGitHub рд╕реЗ рдирдореВрдирд╛ рдЖрд╡реЗрджрди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

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

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

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

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

    cd istio-samples/sample-apps/helloserver

рдПрдХрд╛рдзрд┐рдХ рд╕реЗрд╡рд╛рдУрдВ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рдЦреЛрдЬ рдХрд░рдирд╛

рдирдореВрдирд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкрд╛рдпрдерди рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рджреЛ рдШрдЯрдХ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ рдЬреЛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВ рдмрд╛рдХреА:

  • рд╕рд░реНрд╡рд░: рдПрдХ рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рд╡рд╛рд▓рд╛ рд╕рд░рд▓ рд╕рд░реНрд╡рд░ рдкрд╛рдирд╛, /, рдЬреЛ рдХрдВрд╕реЛрд▓ рдкрд░ "рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб" рдкреНрд░рд┐рдВрдЯ рдХрд░рддрд╛ рд╣реИред
  • рд▓реЛрдбрдЬреЗрди: рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬреЛ рдЯреНрд░реИрдлрд╝рд┐рдХ рднреЗрдЬрддреА рд╣реИ рд╕рд░реНрд╡рд░, рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рдЕрдиреБрд░реЛрдзреЛрдВ рдХреА рд╡рд┐рдиреНрдпрд╛рд╕ рдпреЛрдЧреНрдп рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рдеред

рдЗрд╕реНрддрд┐рдпреЛ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрд╡реЗрджрди рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ

рд╕реЛрд░реНрд╕ рдХреЛрдб рд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЪрд▓рд╛рдирд╛

рдирдореВрдирд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕реЗ рдХреНрд▓рд╛рдЙрдб рд╢реЗрд▓ рдпрд╛ рдЕрдкрдиреЗ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдЪрд▓рд╛рдПрдВред
1) рдХреИрдЯрд▓реЙрдЧ рдореЗрдВ рдЗрд╕реНрддрд┐рдУ-рдирдореВрдиреЗ/рдирдореВрдирд╛-рдРрдкреНрд╕/рд╣реИрд▓реЛрд╕рд░реНрд╡рд░ рджреМрдбрд╝рдирд╛ рд╕рд░реНрд╡рд░:

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:

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-рд╕реА рдкреНрд░рддреНрдпреЗрдХ рдЯрд░реНрдорд┐рдирд▓ рд╡рд┐рдВрдбреЛ рдореЗрдВ.
11) рдЯрд░реНрдорд┐рдирд▓ рд╡рд┐рдВрдбреЛ рдореЗрдВ рд▓реЛрдбрдЬреЗрди рдЖрднрд╛рд╕реА рд╡рд╛рддрд╛рд╡рд░рдг рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд░реЗрдВ:

deactivate

рдХрд┐рд╕реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдХрдВрдЯреЗрдирд░реЛрдВ рдореЗрдВ рдкреИрдХреЗрдЬрд┐рдВрдЧ рдХрд░рдирд╛

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

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

рдЙрджрд╛рд╣рд░рдг рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдореМрдЬреВрдж рд╣реИ Dockerfile рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡рд░ ╨╕ рд▓реЛрдбрдЬреЗрди рдЫрд╡рд┐рдпрд╛рдБ рдПрдХрддреНрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдЖрджреЗрд╢реЛрдВ рдХреЗ рд╕рд╛рдеред рдиреАрдЪреЗ - 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 рдЫрд╡рд┐ рдЖрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ.
  • рдЯреАрдо рдкреНрд░рддрд┐рд▓рд┐рдкрд┐. . рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдпрд╢реАрд▓ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдХреЙрдкреА рдХрд░рддрд╛ рд╣реИ (рдХреЗрд╡рд▓ рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ)ред рд╕рд░реНрд╡рд░.py) рдХрдВрдЯреЗрдирд░ рдХреЗ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВред
  • рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ рдЙрд╕ рдХрдорд╛рдВрдб рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдВрдЯреЗрдирд░ рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдХрдорд╛рдВрдб рд▓рдЧрднрдЧ рд╡реИрд╕рд╛ рд╣реА рд╣реИ рдЬреИрд╕рд╛ рдЖрдк рдЪрд▓рд╛рддреЗ рдереЗ рд╕рд░реНрд╡рд░.py рд╕реНрд░реЛрдд рдХреЛрдб рд╕реЗ.
  • рдЯреАрдо рдЕрдирд╛рд╡реГрдд рдХрд░рдирд╛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рд╕рд░реНрд╡рд░ рдкреЛрд░реНрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбреЗрдЯрд╛ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИ 8080. рдпрд╣ рдЯреАрдо рдирд╣реАрдВ рд╣реИ рдмрдВрджрд░рдЧрд╛рд╣ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ. рдпрд╣ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд╣реИ рдЬрд┐рд╕рдХреА рдкреЛрд░реНрдЯ рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ 8080 рдХрдВрдЯреЗрдирд░ рд╢реБрд░реВ рдХрд░рддреЗ рд╕рдордп.

рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдХрдВрдЯреЗрдирд░реАрдХреГрдд рдХрд░рдиреЗ рдХреА рддреИрдпрд╛рд░реА рдХреА рдЬрд╛ рд░рд╣реА рд╣реИ

1) рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рд╕реЗрдЯ рдХрд░реЗрдВред рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ_рдЖрдИрдбреА рдЖрдкрдХреЗ GCP рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЖрдИрдбреА рдкрд░ред

export PROJECT_ID="PROJECT_ID"

export GCR_REPO="preparing-istio"

рдореВрд▓реНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ_рдЖрдИрдбреА ╨╕ рдЬреАрд╕реАрдЖрд░_рдЖрд░рдИрдкреАрдУ рдЬрдм рдЖрдк рдЗрд╕реЗ рдмрдирд╛рддреЗ рд╣реИрдВ рддреЛ рдЖрдк рдбреЙрдХрд░ рдЫрд╡рд┐ рдХреЛ рдЯреИрдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдПрдХ рдирд┐рдЬреА рдХрдВрдЯреЗрдирд░ рд░рдЬрд┐рд╕реНрдЯреНрд░реА рдореЗрдВ рдзрдХреЗрд▓рддреЗ рд╣реИрдВред

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. рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЫрд╡рд┐ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░реЗрдВ Dockerfile рдФрд░ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдкрд╣рд▓реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░:

    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

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 рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдФрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЬрд╝реЛрди рдореЗрдВ рдПрдХ рддреИрдпрд╛рд░ рдХреНрд▓рд╕реНрдЯрд░ рдмрдирд╛рддрд╛ рд╣реИред рдЗрд╕реНрддрд┐рдпреЛ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдХрдо рд╕реЗ рдХрдо 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 рдкрд░ рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рджрд┐рдЦрд╛рддрд╛ рд╣реИ:

рдЗрд╕реНрддрд┐рдпреЛ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрд╡реЗрджрди рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ

рдЬреАрдХреЗрдИ рдореЗрдВ рдХрдВрдЯреЗрдирд░ рддреИрдирд╛рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреА рдкреНрд░рдореБрдЦ рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдХреЛ рд╕реАрдЦреЗрдВред рдпрджрд┐ рдЖрдк рдЕрдзрд┐рдХ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рд╕рдмрд╕реЗ рдЕрдВрдд рдореЗрдВ рд▓рд┐рдВрдХ рд╣реИрдВред

  • рдиреЛрдбреНрд╕ рдФрд░ рдХреНрд▓рд╕реНрдЯрд░. GKE рдореЗрдВ, рдиреЛрдб рдПрдХ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рд╣реИред рдЕрдиреНрдп рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдкрд░, рдПрдХ рдиреЛрдб рдПрдХ рдХрдВрдкреНрдпреВрдЯрд░ рдпрд╛ рдПрдХ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдХреНрд▓рд╕реНрдЯрд░ рдиреЛрдбреНрд╕ рдХрд╛ рдПрдХ рд╕рдВрдЧреНрд░рд╣ рд╣реИ рдЬрд┐рд╕реЗ рдПрдХ рдПрдХрд▓ рдЗрдХрд╛рдИ рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдЖрдк рдПрдХ рдХрдВрдЯреЗрдирд░реАрдХреГрдд рдПрдкреНрд▓рд┐рдХреЗрд╢рди рддреИрдирд╛рдд рдХрд░рддреЗ рд╣реИрдВред
  • рдлрд▓реА. рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ, рдХрдВрдЯреЗрдирд░ рдкреЙрдбреНрд╕ рдореЗрдВ рдЪрд▓рддреЗ рд╣реИрдВред рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ рдПрдХ рдкреЙрдб рдПрдХ рдЕрд╡рд┐рднрд╛рдЬреНрдп рдЗрдХрд╛рдИ рд╣реИред рдПрдХ рдкреЙрдб рдореЗрдВ рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рдХрдВрдЯреЗрдирд░ рд╣реЛрддреЗ рд╣реИрдВред рдЖрдк рд╕рд░реНрд╡рд░ рдХрдВрдЯреЗрдирд░ рддреИрдирд╛рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд▓реЛрдбрдЬреЗрди рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреЙрдбреНрд╕ рдореЗрдВ. рдЬрдм рдПрдХ рдкреЙрдб рдореЗрдВ рдХрдИ рдХрдВрдЯреЗрдирд░ рд╣реЛрддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡рд░ рдФрд░ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рд╕рд░реНрд╡рд░), рдХрдВрдЯреЗрдирд░реЛрдВ рдХреЛ рдПрдХ рдЗрдХрд╛рдИ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдкреЙрдб рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
  • рддреИрдирд╛рддреА. рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ, рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИ рдЬреЛ рд╕рдорд╛рди рдкреЙрдбреНрд╕ рдХрд╛ рдПрдХ рд╕рдВрдЧреНрд░рд╣ рд╣реИред рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХреНрд▓рд╕реНрдЯрд░ рдиреЛрдбреНрд╕ рдореЗрдВ рд╡рд┐рддрд░рд┐рдд рдкреЙрдбреНрд╕ рдХреА рдХрдИ рдкреНрд░рддрд┐рдХреГрддрд┐рдпрд╛рдВ рд▓реЙрдиреНрдЪ рдХрд░рддрд╛ рд╣реИред рдкрд░рд┐рдирд┐рдпреЛрдЬрди рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрди рдкреЙрдбреНрд╕ рдХреЛ рдмрджрд▓ рджреЗрддрд╛ рд╣реИ рдЬреЛ рд╡рд┐рдлрд▓ рд╣реЛ рдЧрдП рд╣реИрдВ рдпрд╛ рдЕрдиреБрддреНрддрд░рджрд╛рдпреА рд╣реИрдВред
  • рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд╕реЗрд╡рд╛. GKE рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдб рдЪрд▓рд╛рддреЗ рд╕рдордп, рдХреЗ рдмреАрдЪ рдХрдиреЗрдХреНрд╢рди рд▓реЛрдбрдЬреЗрди ╨╕ рд╕рд░реНрд╡рд░. рдЬрдм рдЖрдкрдиреЗ рдХреНрд▓рд╛рдЙрдб рд╢реЗрд▓ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдпрд╛ рдбреЗрд╕реНрдХрдЯреЙрдк рдкрд░ рд╕реЗрд╡рд╛рдПрдБ рд╢реБрд░реВ рдХреАрдВ, рддреЛ рдЖрдкрдиреЗ рдЕрдиреБрд░реЛрдз рднреЗрдЬреЗ рд╕рд░реНрд╡рд░ рдкрд░ рд╕реНрдерд╛рдиреАрдп рд╣реЛрд╕реНрдЯ: 8080. рдПрдХ рдмрд╛рд░ рдЬреАрдХреЗрдИ рдореЗрдВ рддреИрдирд╛рдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдкреЙрдбреНрд╕ рдХреЛ рдЙрдкрд▓рдмреНрдз рдиреЛрдбреНрд╕ рдкрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдЖрдкрдХрд╛ рдЗрд╕ рдкрд░ рдХреЛрдИ рдирд┐рдпрдВрддреНрд░рдг рдирд╣реАрдВ рд╣реИ рдХрд┐ рдкреЙрдб рдХрд┐рд╕ рдиреЛрдб рдкрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдк рдлрд▓реА рдХреЛрдИ рд╕реНрдерд╛рдпреА рдЖрдИрдкреА рдкрддрд╛ рдирд╣реАрдВ.
    рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрдИрдкреА рдкрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡рд░, рдЖрдкрдХреЛ рдкреЙрдбреНрд╕ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдПрдХ рдиреЗрдЯрд╡рд░реНрдХ рдПрдмреНрд╕реНрдЯреНрд░реИрдХреНрд╢рди рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рд╡рд╣реА рд╣реИ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд╕реЗрд╡рд╛. рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд╕реЗрд╡рд╛ рдкреЙрдбреНрд╕ рдХреЗ рдПрдХ рд╕реЗрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рддрдд рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИред рдХреБрдЫ рд╣реИрдВ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдкреНрд░рдХрд╛рд░. рд╕рд░реНрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рднрд╛рд░ рд╕рдВрддреБрд▓рди, рдЬреЛ рд╕рдВрдкрд░реНрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╛рд╣рд░реА рдЖрдИрдкреА рдкрддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рд╕рд░реНрд╡рд░ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рдмрд╛рд╣рд░ рд╕реЗ.
    рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ рдПрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд DNS рд╕рд┐рд╕реНрдЯрдо рднреА рд╣реИ рдЬреЛ DNS рдирд╛рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, helloserver.default.cluster.local) рд╕реЗрд╡рд╛рдПрдБред рдЗрд╕рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рднреАрддрд░ рдкреЙрдбреНрд╕ рдПрдХ рд╕реНрдерд╛рдпреА рдкрддреЗ рдкрд░ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдЕрдиреНрдп рдкреЙрдбреНрд╕ рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред DNS рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рдмрд╛рд╣рд░, рдЬреИрд╕реЗ рдХреНрд▓рд╛рдЙрдб рд╢реЗрд▓ рдпрд╛ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

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

рдЬрдм рдЖрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╕реНрд░реЛрдд рд╕реЗ рдЪрд▓рд╛рдпрд╛, рддреЛ рдЖрдкрдиреЗ рдЕрдирд┐рд╡рд╛рд░реНрдп рдЖрджреЗрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ python3

рд╕рд░реНрд╡рд░.py

рдЕрдирд┐рд╡рд╛рд░реНрдп рдХрд╛ рддрд╛рддреНрдкрд░реНрдп рдПрдХ рдХреНрд░рд┐рдпрд╛ рд╕реЗ рд╣реИ: "рдРрд╕рд╛ рдХрд░реЛред"

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

рдЖрдк рдореЗрдирд┐рдлрд╝реЗрд╕реНрдЯ рдпрд╛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╡рд╛рдВрдЫрд┐рдд рд╕реНрдерд┐рддрд┐ рджрд░реНрд╢рд╛рддреЗ рд╣реИрдВ рдпрдорд▓. рдПрдХ 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

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

рд╕реЗрд╡рд╛ рдХреЛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

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

  • рднрд╛рд░ рд╕рдВрддреБрд▓рди: рдЧреНрд░рд╛рд╣рдХ рд▓реЛрдб рдмреИрд▓реЗрдВрд╕рд░ рдХреЗ рдЖрдИрдкреА рдкрддреЗ рдкрд░ рдЕрдиреБрд░реЛрдз рднреЗрдЬрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рдПрдХ рд╕реНрдерд╛рдпреА рдЖрдИрдкреА рдкрддрд╛ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рдмрд╛рд╣рд░ рд╕реЗ рдкрд╣реБрдВрдЪ рдпреЛрдЧреНрдп рд╣реЛрддрд╛ рд╣реИред
  • рд▓рдХреНрд╖реНрдп рдкреЛрд░реНрдЯ: рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдХреЛ рдпрд╛рдж рд╣реИ, рдЯреАрдо рдПрдХреНрд╕рдкреЛрдЬрд╝ 8080 ╨▓ Dockerfile рдмрдВрджрд░рдЧрд╛рд╣ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рдХрд░рд╛рдПред рдЖрдк рдкреЛрд░реНрдЯ рдкреНрд░рджрд╛рди рдХрд░реЗрдВ 8080рддрд╛рдХрд┐ рдЖрдк рдХрдВрдЯреЗрдирд░ рд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд░ рд╕рдХреЗрдВ рд╕рд░реНрд╡рд░ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рдмрд╛рд╣рд░. рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ hellosvc.default.cluster.local:80 (рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдирд╛рдо: hellosvc) рдкреЛрд░реНрдЯ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ 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

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

apiVersion: v1
kind: Service
metadata:
  name: loadgensvc
spec:
  type: ClusterIP
  selector:
    app: loadgenerator
  ports:
  - name: http
    port: 80
    targetPort: 8080

рдЬреАрдХреЗрдИ рдореЗрдВ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреА рддреИрдирд╛рддреА

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

рдмрджрд▓рдиреЗ рдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ_рдЖрдИрдбреА рдЖрдкрдХреЗ GCP рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЖрдИрдбреА рдкрд░.
4) рд╕рд╣реЗрдЬреЗрдВ рдФрд░ рдмрдВрдж рдХрд░реЗрдВ рд╕рд░реНрд╡рд░.yaml.
5) YAML рдлрд╝рд╛рдЗрд▓ рдХреЛ Kubernetes рдкрд░ рдкрд░рд┐рдирд┐рдпреЛрдЬрд┐рдд рдХрд░реЗрдВ:

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

рдмрджрд▓рдиреЗ рдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ_рдЖрдИрдбреА рдЖрдкрдХреЗ GCP рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЖрдИрдбреА рдкрд░.
9) рд╕рд╣реЗрдЬреЗрдВ рдФрд░ рдмрдВрдж рдХрд░реЗрдВ Loadgen.yaml, рдЯреЗрдХреНрд╕реНрдЯ рдПрдбрд┐рдЯрд░ рдмрдВрдж рдХрд░реЗрдВред
10) YAML рдлрд╝рд╛рдЗрд▓ рдХреЛ Kubernetes рдкрд░ рдкрд░рд┐рдирд┐рдпреЛрдЬрд┐рдд рдХрд░реЗрдВ:

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) рдмрд╛рд╣рд░реА рдЖрдИрдкреА рдкрддреЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ hellosvc:

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) рдХреЛ рдПрдХ рдЕрдиреБрд░реЛрдз рднреЗрдЬреЗрдВ hellosvc: рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ рдмрд╛рд╣рд░реА_рдЖрдИрдкреА рдмрд╛рд╣рд░реА рдЖрдИрдкреА рдкрддреЗ рдкрд░ hellosvc.

curl http://EXTERNAL_IP

рдЖрдЗрдП рдЗрд╕реНрддрд┐рдпреЛ рд╕реЗ рдореБрдХрд╛рдмрд▓рд╛ рдХрд░реЗрдВ

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

  • рд╕реЗрд╡рд╛рдПрдБ рдХреИрд╕реЗ рдкрд░рд╕реНрдкрд░ рдХреНрд░рд┐рдпрд╛ рдХрд░рддреА рд╣реИрдВ? рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдмреАрдЪ рдХреНрдпрд╛ рд╕рдВрдмрдВрдз рд╣реИрдВ? рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдмреАрдЪ рдпрд╛рддрд╛рдпрд╛рдд рдХреИрд╕реЗ рдкреНрд░рд╡рд╛рд╣рд┐рдд рд╣реЛрддрд╛ рд╣реИ? рдХреНрдпрд╛ рдЖрдкрдХреЛ рдЗрд╕рдХреА рдЬрд╛рдирдХрд╛рд░реА рд╣реИ рд▓реЛрдбрдЬреЗрди рдХреЛ рдЕрдиреБрд░реЛрдз рднреЗрдЬрддрд╛ рд╣реИ рд╕рд░реНрд╡рд░, рд▓реЗрдХрд┐рди рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рдЖрдк рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВред рдЗрди рд╕рд╡рд╛рд▓реЛрдВ рдХрд╛ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП GKE рдореЗрдВ рд░рдирд┐рдВрдЧ рдкреЙрдбреНрд╕ рдХреА рд╕реВрдЪреА рджреЗрдЦреЗрдВред
  • рдореЗрдЯреНрд░рд┐рдХреНрд╕. рдХрд┐рддрдиреА рджреЗрд░ рд╕рд░реНрд╡рд░ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдЕрдиреБрд░реЛрдз рдХрд╛ рдЬрд╡рд╛рдм рджреЗрддрд╛ рд╣реИ? рд╕рд░реНрд╡рд░ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рдХрд┐рддрдиреЗ рдЕрдиреБрд░реЛрдз рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреЗ рд╣реИрдВ? рдХреНрдпрд╛ рдпрд╣ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рджреЗрддрд╛ рд╣реИ?
  • рд╕реБрд░рдХреНрд╖рд╛ рдЬрд╛рдирдХрд╛рд░реА. рдХреЗ рдмреАрдЪ рдпрд╛рддрд╛рдпрд╛рдд рд▓реЛрдбрдЬреЗрди ╨╕ рд╕рд░реНрд╡рд░ рдмрд╕ рдЧреБрдЬрд░ рдЬрд╛рддрд╛ рд╣реИ HTTP рдпрд╛ рджреНрд╡рд╛рд░рд╛ рдПрдордЯреАрдПрд▓рдПрд╕?

рдЗрд╕реНрддрд┐рдпреЛ рдЗрди рд╕рднреА рд╕рд╡рд╛рд▓реЛрдВ рдХрд╛ рдЬрд╡рд╛рдм рджреЗрддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕реНрддрд┐рдпреЛ рдПрдХ рд╕рд╛рдЗрдбрдХрд╛рд░ рдкреНрд░реЙрдХреНрд╕реА рд░рдЦрддрд╛ рд╣реИ рджреВрдд рдкреНрд░рддреНрдпреЗрдХ рдлрд▓реА рдореЗрдВ. рдПрдиреНрд╡реЙрдп рдкреНрд░реЙрдХреНрд╕реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрдВрдЯреЗрдирд░реЛрдВ рдореЗрдВ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдФрд░ рдмрд╛рд╣рд░ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рд░реЛрдХрддрд╛ рд╣реИред рдпрд╣ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╕рд░реНрд╡рд░ ╨╕ рд▓реЛрдбрдЬреЗрди рд╕рд╛рдЗрдбрдХрд╛рд░ рдкреНрд░реЙрдХреНрд╕реА рджреВрдд рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ, рдФрд░ рд╕рднреА рдЯреНрд░реИрдлрд╝рд┐рдХ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рд▓реЛрдбрдЬреЗрди ╨║ рд╕рд░реНрд╡рд░ рджреВрдд рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рддрд╛ рд╣реИред

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

рдЗрд╕реНрддрд┐рдпреЛ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрд╡реЗрджрди рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ

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

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

рдЗрдВрд╕реНрдЯрд╛рд▓реЗрд╢рди

рдЗрд╕реНрддрд┐рдпреЛ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рджреЛ рддрд░реАрдХреЗ рд╣реИрдВред рдХрд░ рд╕рдХрдирд╛ GKE рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдкрд░ рдЗрд╕реНрддрд┐рдпреЛ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░реЗрдВ рдпрд╛ рдЗрд╕реНрддрд┐рдпреЛ рдХрд╛ рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рд╕рдВрд╕реНрдХрд░рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ рдХреНрд▓рд╕реНрдЯрд░ рдкрд░. рдЬреАрдХреЗрдИ рдкрд░ рдЗрд╕реНрддрд┐рдпреЛ рдХреЗ рд╕рд╛рде, рдЖрдк рдкреВрд░реЗ рдЬреАрдХреЗрдИ рдХреНрд▓рд╕реНрдЯрд░ рдЬреАрд╡рдирдЪрдХреНрд░ рдореЗрдВ рдЗрд╕реНрддрд┐рдпреЛ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдФрд░ рдЕрдкрдЧреНрд░реЗрдб рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдЗрд╕реНрддрд┐рдпреЛ рдХрд╛ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдпрд╛ рдЕрдкрдиреЗ рдЗрд╕реНрддрд┐рдпреЛ рдирд┐рдпрдВрддреНрд░рдг рдХрдХреНрд╖ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкрд░ рдЕрдзрд┐рдХ рдирд┐рдпрдВрддреНрд░рдг рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ GKE рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдкрд░ рдЗрд╕реНрддрд┐рдпреЛ рдХреЗ рдмрдЬрд╛рдп рдУрдкрди рд╕реЛрд░реНрд╕ рд╕рдВрд╕реНрдХрд░рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВред рджреГрд╖реНрдЯрд┐рдХреЛрдг рдкрд░ рдирд┐рд░реНрдгрдп рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП, рд▓реЗрдЦ рдкрдврд╝реЗрдВ рдХреНрдпрд╛ рдореБрдЭреЗ GKE рдкрд░ рдЗрд╕реНрддрд┐рдпреЛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ?.

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

рд╕рдлрд╛рдИ

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

рдЖрдЧреЗ рдХреНрдпрд╛ рд╣реИ?

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ