Istio рдХреЛ рд▓рд╛рдЧреА рдЖрд╡реЗрджрди рддрдпрд╛рд░ рдЧрд░реНрджреИ

Istio рдХреЛ рд▓рд╛рдЧреА рдЖрд╡реЗрджрди рддрдпрд╛рд░ рдЧрд░реНрджреИ

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

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

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

рдпрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓рдорд╛, рддрдкрд╛рдИрдВрд▓реЗ рдирд┐рдореНрди рдХрд╛рд░реНрдпрд╣рд░реВ рдкреВрд░рд╛ рдЧрд░реНрдиреБрд╣реБрдиреЗрдЫ:

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

рд╕реБрд░реБ рдЧрд░реНрдиреБ рднрдиреНрджрд╛ рдкрд╣рд┐рд▓реЗ

Kubernetes рдЗрдиреНрдЬрд┐рди API рд╕рдХреНрд╖рдо рдЧрд░реНрди рдирд┐рд░реНрджреЗрд╢рдирд╣рд░реВ рдкрд╛рд▓рдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН:

  1. рдЬрд╛рдиреБрд╣реЛрд╕реН Kubernetes рдЗрдиреНрдЬрд┐рди рдкреГрд╖реНрда рдЧреБрдЧрд▓ рдХреНрд▓рд╛рдЙрдб рдкреНрд▓реЗрдЯрдлрд░реНрдо рдХрдиреНрд╕реЛрд▓рдорд╛ред
  2. рдПрдЙрдЯрд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН рд╡рд╛ рдЪрдпрди рдЧрд░реНрдиреБрд╣реЛрд╕реНред
  3. API рд░ рд╕рдореНрдмрдиреНрдзрд┐рдд рд╕реЗрд╡рд╛рд╣рд░реВ рд╕рдХреНрд╖рдо рдирднрдПрд╕рдореНрдо рдкрд░реНрдЦрдиреБрд╣реЛрд╕реНред рдпрд╕рд▓реЗ рдХреЗрд╣реА рдорд┐рдиреЗрдЯ рд▓рд┐рди рд╕рдХреНрдЫред
  4. рддрдкрд╛рдИрдВрдХреЛ Google рдХреНрд▓рд╛рдЙрдб рдкреНрд▓реЗрдЯрдлрд░реНрдо рдкрд░рд┐рдпреЛрдЬрдирд╛рдХреЛ рд▓рд╛рдЧрд┐ рдмрд┐рд▓рд┐рдЩ рд╕реЗрдЯ рдЕрдк рдЧрд░рд┐рдПрдХреЛ рдЫ рднрдиреА рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрдиреБрд╣реЛрд╕реНред рдмрд┐рд▓рд┐рдЩ рд╕рдХреНрд╖рдо рдЧрд░реНрдиреЗ рддрд░рд┐рдХрд╛ рдЬрд╛рдиреНрдиреБрд╣реЛрд╕реН.

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

рд╡рд┐рдХрд▓реНрдк A: рдХреНрд▓рд╛рдЙрдб рд╢реЗрд▓ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИ

рдХреНрд▓рд╛рдЙрдб рд╢реЗрд▓ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рдлрд╛рдЗрджрд╛рд╣рд░реВ:

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

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

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

Istio рдХреЛ рд▓рд╛рдЧреА рдЖрд╡реЗрджрди рддрдпрд╛рд░ рдЧрд░реНрджреИ

рддрд▓реНрд▓реЛ рднрд╛рдЧрдорд╛ GCP рдХрдиреНрд╕реЛрд▓ рдХрдорд╛рдВрдб рд▓рд╛рдЗрдирдХреЛ рд╕рд╛рде рдХреНрд▓рд╛рдЙрдб рд╢реЗрд▓ рд╕рддреНрд░ рдирдпрд╛рдБ рд╡рд┐рдиреНрдбреЛрдорд╛ рдЦреБрд▓реНрдиреЗрдЫред

Istio рдХреЛ рд▓рд╛рдЧреА рдЖрд╡реЗрджрди рддрдпрд╛рд░ рдЧрд░реНрджреИ

рд╡рд┐рдХрд▓реНрдк B: рд╕реНрдерд╛рдиреАрдп рд░реВрдкрдорд╛ рдХрдорд╛рдгреНрдб рд▓рд╛рдЗрди рдЙрдкрдХрд░рдгрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджреИ

рдпрджрд┐ рддрдкрд╛рдЗрдБ рд▓рд┐рдирдХреНрд╕ рд╡рд╛ 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

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

рдирдореВрдирд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдкрд╛рдЗрдердирдорд╛ рд▓реЗрдЦрд┐рдПрдХреЛ рдЫ рд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реА рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛ рдЧрд░реНрдиреЗ рджреБрдИрд╡рдЯрд╛ рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЫрдиреН REST:

  • рд╕рд░реНрднрд░: рдПрдХ рдЕрдиреНрдд рдмрд┐рдиреНрджреБ рд╕рдВрдЧ рд╕рд░рд▓ рд╕рд░реНрднрд░ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреБрд╣реЛрд╕реН, /, рдЬрд╕рд▓реЗ рдХрдиреНрд╕реЛрд▓рдорд╛ "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: */*

рдиреЗрдЯрд╡рд░реНрдХрд┐рдЩ рдкрд░рд┐рдкреНрд░реЗрдХреНрд╖реНрдпрдмрд╛рдЯ, рд╕рдореНрдкреВрд░реНрдг рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдПрдХрд▓ рд╣реЛрд╕реНрдЯ (рд╕реНрдерд╛рдиреАрдп рдХрдореНрдкреНрдпреБрдЯрд░ рд╡рд╛ рдХреНрд▓рд╛рдЙрдб рд╢реЗрд▓ рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рди) рдорд╛ рдЪрд▓реНрдЫред рддреНрдпрд╕реИрд▓реЗ рддрдкрд╛рдИрдВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯрдорд╛ рдЕрдиреБрд░реЛрдз рдкрдард╛рдЙрди рд╕рд░реНрднрд░.
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" ]

  • рдЯреЛрд▓реА рдкрд╛рдЗрдердирдмрд╛рдЯ: рдЖрдзрд╛рд░рдХреЛ рд░реВрдкрдорд╛ рей-рдкрд╛рддрд▓реЛ рдбрдХрд░рд▓рд╛рдИ рдирд╡реАрдирддрдо рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдмрддрд╛рдЙрдБрдЫ Python 3 рдЫрд╡рд┐ рдЖрдзрд╛рд░рдХреЛ рд░реВрдкрдорд╛ред
  • рдЯреЛрд▓реА рдХрд╛рдкреАред ред рд╣рд╛рд▓рдХреЛ рдХрд╛рд░реНрдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛рдорд╛ рд╕реНрд░реЛрдд рдлрд╛рдЗрд▓рд╣рд░реВ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдЧрд░реНрджрдЫ (рд╣рд╛рдореНрд░реЛ рдЕрд╡рд╕реНрдерд╛рдорд╛ рдорд╛рддреНрд░ server.py) рдХрдиреНрдЯреЗрдирд░рдХреЛ рдлрд╛рдЗрд▓ рдкреНрд░рдгрд╛рд▓реАрдорд╛ред
  • ENTRYPOINT рдХрдиреНрдЯреЗрдирд░ рд╕реБрд░реБ рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреЗ рдЖрджреЗрд╢ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░реНрджрдЫред рд╣рд╛рдореНрд░реЛ рдХреЗрд╕рдорд╛, рдпреЛ рдЖрджреЗрд╢ рд▓рдЧрднрдЧ рддрдкрд╛рдИрд▓реЗ рдЪрд▓рд╛рдЙрдиреБ рднрдПрдХреЛ рдЬрд╕реНрддреИ рд╣реЛ server.py рд╕реНрд░реЛрдд рдХреЛрдбрдмрд╛рдЯред
  • рдЯреЛрд▓реА ExposE рднрдиреНрдиреЗ рд╕рдВрдХреЗрдд рдЧрд░реНрдЫ рд╕рд░реНрднрд░ рдкреЛрд░реНрдЯ рдорд╛рд░реНрдлрдд рдбрд╛рдЯрд╛рдХреЛ рд▓рд╛рдЧрд┐ рдкрд░реНрдЦрдиреНрдЫ 8080ред рдпреЛ рдЯреЛрд▓реА рд╣реЛрдЗрди рдкреЛрд░реНрдЯрд╣рд░реВ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫред рдпреЛ рдХреЗрд╣рд┐ рдкреНрд░рдХрд╛рд░рдХреЛ рдХрд╛рдЧрдЬрд╛рдд рд╣реЛ рдЬреБрди рдкреЛрд░реНрдЯ рдЦреЛрд▓реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ 8080 рдХрдиреНрдЯреЗрдирд░ рд╕реБрд░реБ рдЧрд░реНрджрд╛ред

рддрдкрд╛рдИрдВрдХреЛ рдЖрд╡реЗрджрди рдХрдиреНрдЯреЗрдирд░рд╛рдЗрдЬ рдЧрд░реНрдиреЗ рддрдпрд╛рд░реА рдЧрд░реНрджреИ

1) рдирд┐рдореНрди рд╡рд╛рддрд╛рд╡рд░рдг рдЪрд░ рд╕реЗрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реНред рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдЧрд░реНрдиреБрд╣реЛрд╕реН PROJECT_ID рддрдкрд╛рдИрдВрдХреЛ GCP рдкрд░рд┐рдпреЛрдЬрдирд╛ ID рдорд╛ред

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

рд▓реЛрдбрдЬреЗрдирдХреЛ рдХрдиреНрдЯреЗрдирд░рд╛рдЗрдЬреЗрд╢рди

рез) рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реАрдорд╛ рдЬрд╛рдиреБрд╣реЛрд╕реН рдЬрд╣рд╛рдБ рдЙрджрд╛рд╣рд░рдг рдЕрд╡рд╕реНрдерд┐рдд рдЫ рд▓реЛрдбрдЬрди:

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 рдПрдЙрдЯрд╛ рдХрдиреНрдЯреЗрдирд░ рдЕрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрд╢рди рдкреНрд▓реЗрдЯрдлрд░реНрдо рд╣реЛ рдЬрд╕рд▓реЗ рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рдирд╣рд░реВрд▓рд╛рдИ рдХреНрд▓рд╕реНрдЯрд░рдорд╛ рдЬрдореНрдорд╛ рдЧрд░реНрдЫред рдкреНрд░рддреНрдпреЗрдХ рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╕рд┐рдирд▓рд╛рдИ рдиреЛрдб рднрдирд┐рдиреНрдЫред GKE рдХреНрд▓рд╕реНрдЯрд░рд╣рд░реВ рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд Kubernetes рдХреНрд▓рд╕реНрдЯрд░ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдкреНрд░рдгрд╛рд▓реАрдорд╛ рдЖрдзрд╛рд░рд┐рдд рдЫрдиреНред Kubernetes рдХреНрд▓рд╕реНрдЯрд░ рд╕рдВрдЧ рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд▓рд╛рдЧреА рд╕рдВрдпрдиреНрддреНрд░ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫред

GKE рдХреНрд▓рд╕реНрдЯрд░ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджреИ:

рез) рдХреНрд▓рд╕реНрдЯрд░ рдмрдирд╛рдЙрдиреБрд╣реЛрд╕реН:

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) рдЕрдм рддрдкрд╛рдИрдВ Kubernetes рдорд╛рд░реНрдлрдд рдХреБрд░рд╛рдХрд╛рдиреА рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ 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

Kubernetes рдкреНрд░рдореБрдЦ рдЕрд╡рдзрд╛рд░рдгрд╛рд╣рд░реВ

рд░реЗрдЦрд╛рдЪрд┐рддреНрд░рд▓реЗ GKE рдорд╛ рдПрдЙрдЯрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рджреЗрдЦрд╛рдЙрдБрдЫ:

Istio рдХреЛ рд▓рд╛рдЧреА рдЖрд╡реЗрджрди рддрдпрд╛рд░ рдЧрд░реНрджреИ

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

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

Kubernetes рдкреНрд░рдХрдЯ рд╣реБрдиреНрдЫ

рдЬрдм рддрдкрд╛рдИрдВрд▓реЗ рд╕реНрд░реЛрддрдмрд╛рдЯ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЪрд▓рд╛рдЙрдиреБрднрдпреЛ, рддрдкрд╛рдИрдВрд▓реЗ рдЕрдирд┐рд╡рд╛рд░реНрдп рдЖрджреЗрд╢ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрднрдпреЛ рдкрд╛рдЗрдерди реи

server.py

Imperative рд▓реЗ рдПрдЙрдЯрд╛ рдХреНрд░рд┐рдпрд╛рд▓рд╛рдИ рдмреБрдЭрд╛рдЙрдБрдЫ: "рдпреЛ рдЧрд░реНрдиреБрд╣реЛрд╕реНред"

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

рддрдкрд╛рдИрдВрд▓реЗ manifests рд╡рд╛ рдлрд╛рдЗрд▓рд╣рд░реВрдорд╛ рдЗрдЪреНрдЫрд┐рдд рдЕрд╡рд╕реНрдерд╛ рд╕рдВрдХреЗрдд рдЧрд░реНрдиреБрд╣реБрдиреНрдЫ YAMLред YAML рдлрд╛рдЗрд▓рд▓реЗ рдПрдХ рд╡рд╛ рдмрдвреА Kubernetes рд╡рд╕реНрддреБрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдирд┐рд░реНрджрд┐рд╖реНрдЯреАрдХрд░рдгрд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫред

рдЙрджрд╛рд╣рд░рдгрдХреЛ рд▓рд╛рдЧрд┐ YAML рдлрд╛рдЗрд▓ рд╕рдорд╛рд╡реЗрд╢ рдЫ рд╕рд░реНрднрд░ ╨╕ рд▓реЛрдбрдЬрдиред рдкреНрд░рддреНрдпреЗрдХ YAML рдлрд╛рдЗрд▓рд▓реЗ рдбрд┐рдкреНрд▓реЛрдЗрдореЗрдиреНрдЯ рд╡рд╕реНрддреБ рд░ Kubernetes рд╕реЗрд╡рд╛рдХреЛ рдЗрдЪреНрдЫрд┐рдд рдЕрд╡рд╕реНрдерд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрджрдЫред

server.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: helloserver
spec:
  selector:
    matchLabels:
      app: helloserver
  replicas: 1
  template:
    metadata:
      labels:
        app: helloserver
    spec:
      terminationGracePeriodSeconds: 5
      restartPolicy: Always
      containers:
      - name: main
        image: gcr.io/google-samples/istio/helloserver:v0.0.1
        imagePullPolicy: Always

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

loadgen.yaml

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

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

GKE рдорд╛ рдХрдиреНрдЯреЗрдирд░рд╣рд░реВ рддреИрдирд╛рде рдЧрд░реНрджреИ

рез) рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реАрдорд╛ рдЬрд╛рдиреБрд╣реЛрд╕реН рдЬрд╣рд╛рдБ рдЙрджрд╛рд╣рд░рдг рдЕрд╡рд╕реНрдерд┐рдд рдЫ рд╕рд░реНрднрд░:

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

реи) рдЦреЛрд▓реНрдиреБрд╣реЛрд╕реН server.yaml рдкрд╛рда рд╕рдореНрдкрд╛рджрдХрдорд╛ред
3) рдлрд┐рд▓реНрдбрдорд╛ рдирд╛рдо рдмрджрд▓реНрдиреБрд╣реЛрд╕реН рдЫрд╡рд┐ рддрдкрд╛рдИрдВрдХреЛ рдбрдХрд░ рдЫрд╡рд┐рдХреЛ рдирд╛рдордорд╛ред

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

рдмрджрд▓реНрдиреБрд╣реЛрд╕реН PROJECT_ID рддрдкрд╛рдИрдВрдХреЛ GCP рдкрд░рд┐рдпреЛрдЬрдирд╛ ID рдорд╛ред
4) рдмрдЪрдд рдЧрд░реНрдиреБрд╣реЛрд╕реН рд░ рдмрдиреНрдж рдЧрд░реНрдиреБрд╣реЛрд╕реН server.yaml.
5) YAML рдлрд╛рдЗрд▓ Kubernetes рдорд╛ рддреИрдирд╛рдд рдЧрд░реНрдиреБрд╣реЛрд╕реН:

kubectl apply -f server.yaml

рд╕рдлрд▓ рд╕рдорд╛рдкреНрддрд┐рдорд╛, рдЖрджреЗрд╢рд▓реЗ рдирд┐рдореНрди рдХреЛрдб рдЙрддреНрдкрд╛рджрди рдЧрд░реНрджрдЫ:

deployment.apps/helloserver created
service/hellosvc created

6) рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реАрдорд╛ рдЬрд╛рдиреБрд╣реЛрд╕реН рдЬрд╣рд╛рдБ рд▓реЛрдбрдЬрди:

cd ../loadgen

реи) рдЦреЛрд▓реНрдиреБрд╣реЛрд╕реН loadgen.yaml рдкрд╛рда рд╕рдореНрдкрд╛рджрдХрдорд╛ред
8) рдлрд┐рд▓реНрдбрдорд╛ рдирд╛рдо рдмрджрд▓реНрдиреБрд╣реЛрд╕реН рдЫрд╡рд┐ рддрдкрд╛рдИрдВрдХреЛ рдбрдХрд░ рдЫрд╡рд┐рдХреЛ рдирд╛рдордорд╛ред

image: gcr.io/PROJECT_ID/preparing-istio/loadgenv0.0.1

рдмрджрд▓реНрдиреБрд╣реЛрд╕реН PROJECT_ID рддрдкрд╛рдИрдВрдХреЛ GCP рдкрд░рд┐рдпреЛрдЬрдирд╛ ID рдорд╛ред
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) рдмрд╛рд╣реНрдп рдЖрдИрдкреА рдареЗрдЧрд╛рдирд╛рд╣рд░реВ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреБрд╣реЛрд╕реН hellovc:

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) рдЕрдиреБрд░реЛрдз рдкрдард╛рдЙрдиреБрд╣реЛрд╕реН hellovc: рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди EXTERNAL_IP рдмрд╛рд╣реНрдп рдЖрдИрдкреА рдареЗрдЧрд╛рдирд╛рдорд╛ hellovc.

curl http://EXTERNAL_IP

Istio рдорд╛ рд▓рд┐рдиреБрд╣реЛрд╕реН

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

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

Istio рдпреА рд╕рдмреИ рдкреНрд░рд╢реНрдирд╣рд░реВрдХреЛ рдЬрд╡рд╛рдл рджрд┐рдиреНрдЫред рдпреЛ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐, Istio рд▓реЗ рд╕рд╛рдЗрдбрдХрд╛рд░ рдкреНрд░реЛрдХреНрд╕реА рд░рд╛рдЦреНрдЫ рджреВрддрд╛рд╡рд╛рд╕ рдкреНрд░рддреНрдпреЗрдХ рдкреЛрдб рдорд╛ред рджреВрдд рдкреНрд░реЛрдХреНрд╕реАрд▓реЗ рдПрдкреНрд▓рд┐рдХреЗрд╕рди рдХрдиреНрдЯреЗрдирд░рд╣рд░реВрдорд╛ рд╕рдмреИ рдЖрдЧрдорди рд░ рдмрд╣рд┐рд░реНрдЧрдорди рдЯреНрд░рд╛рдлрд┐рдХрд▓рд╛рдИ рд░реЛрдХреНрдЫред рдпрд╕рдХреЛ рдЕрд░реНрде рд╣реБрдиреНрдЫ рд╕рд░реНрднрд░ ╨╕ рд▓реЛрдбрдЬрди рд╕рд╛рдЗрдбрдХрд╛рд░ рдкреНрд░реЛрдХреНрд╕реА рджреВрдд рдорд╛рд░реНрдлрдд рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреБрд╣реЛрд╕реН, рд░ рд╕рдмреИ рдЯреНрд░рд╛рдлрд┐рдХрдмрд╛рдЯ рд▓реЛрдбрдЬрди ╨║ рд╕рд░реНрднрд░ рд░рд╛рдЬрджреВрдд рдкреНрд░реЛрдХреНрд╕реА рдорд╛рд░реНрдлрдд рдЬрд╛рдиреНрдЫред

рджреВрдд рдкреНрд░реЛрдХреНрд╕реАрд╣рд░реВ рдмреАрдЪрдХреЛ рдЬрдбрд╛рдирд╣рд░реВрд▓реЗ рд╕реЗрд╡рд╛ рдЬрд╛рд▓ рдмрдирд╛рдЙрдБрдЫред рд╕реЗрд╡рд╛ рдЬрд╛рд▓ рд╡рд╛рд╕реНрддреБрдХрд▓рд╛рд▓реЗ Kubernetes рдХреЛ рдорд╛рдерд┐ рдирд┐рдпрдиреНрддреНрд░рдг рдХреЛ рдПрдХ рддрд╣ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫред

Istio рдХреЛ рд▓рд╛рдЧреА рдЖрд╡реЗрджрди рддрдпрд╛рд░ рдЧрд░реНрджреИ

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

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

Istio рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрджреИ

Istio рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди рджреБрдИ рддрд░рд┐рдХрд╛рд╣рд░реВ рдЫрдиреНред рд╕рдХреНрдЫ GKE рд╡рд┐рд╕реНрддрд╛рд░рдорд╛ Istio рд╕рдХреНрд╖рдо рдЧрд░реНрдиреБрд╣реЛрд╕реН рд╡рд╛ Istio рдХреЛ рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рд╕рдВрд╕реНрдХрд░рдг рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН рдХреНрд▓рд╕реНрдЯрд░ рдорд╛ред GKE рдорд╛ Istio рдХреЛ рд╕рд╛рде, рддрдкрд╛рдИрдВ GKE рдХреНрд▓рд╕реНрдЯрд░ рдЬреАрд╡рдирдЪрдХреНрд░ рднрд░ Istio рд╕реНрдерд╛рдкрдирд╛рд╣рд░реВ рд░ рдЕрдкрдЧреНрд░реЗрдбрд╣рд░реВ рд╕рдЬрд┐рд▓реИ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рдпрджрд┐ рддрдкрд╛рдИрдВ Istio рдХреЛ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рд╡рд╛ рдЖрдлреНрдиреЛ Istio рдирд┐рдпрдиреНрддреНрд░рдг рдкреНрдпрд╛рдирд▓ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рдирдорд╛ рдердк рдирд┐рдпрдиреНрддреНрд░рдг рдЪрд╛рд╣рдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, GKE рд╡рд┐рд╕реНрддрд╛рд░рдорд╛ Istio рдХреЛ рд╕рдЯреНрдЯрд╛ рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рд╕рдВрд╕реНрдХрд░рдг рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реНред рджреГрд╖реНрдЯрд┐рдХреЛрдг рдирд┐рд░реНрдгрдп рдЧрд░реНрди, рд▓реЗрдЦ рдкрдвреНрдиреБрд╣реЛрд╕реН рдХреЗ рдорд▓рд╛рдИ GKE рдорд╛ Istio рдЪрд╛рд╣рд┐рдиреНрдЫ?.

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

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

рддрдкрд╛рдИрдВрд▓реЗ рдпрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓рдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрднрдПрдХрд╛ рд╕реНрд░реЛрддрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рддрдкрд╛рдИрдВрдХреЛ Google рдХреНрд▓рд╛рдЙрдб рдкреНрд▓реЗрдЯрдлрд░реНрдо рдЦрд╛рддрд╛рдорд╛ рдЪрд╛рд░реНрдЬ рд╣реБрдирдмрд╛рдЯ рдЬреЛрдЧрд┐рди, рддрдкрд╛рдИрдВрд▓реЗ Istio рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реЗрдкрдЫрд┐ рд░ рдирдореВрдирд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╕рдБрдЧ рдЦреЗрд▓реНрдиреБрднрдПрдкрдЫрд┐ рдХрдиреНрдЯреЗрдирд░ рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдЯрд╛рдЙрдиреБрд╣реЛрд╕реНред рдпрд╕рд▓реЗ рд╕рдмреИ рдХреНрд▓рд╕реНрдЯрд░ рд╕реНрд░реЛрддрд╣рд░реВ рд╣рдЯрд╛рдЙрдиреЗрдЫ, рдЬрд╕реНрддреИ рдЧрдгрдирд╛ рдЙрджрд╛рд╣рд░рдгрд╣рд░реВ, рдбрд┐рд╕реНрдХрд╣рд░реВ, рд░ рдиреЗрдЯрд╡рд░реНрдХ рд╕реНрд░реЛрддрд╣рд░реВред

рдХреЗ рдЕрд░реНрдХреЛ рдЫ?

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди