Istio เชฎเชพเชŸเซ‡ เช…เชฐเชœเซ€ เชคเซˆเชฏเชพเชฐ เช•เชฐเซ€ เชฐเชนเซเชฏเชพ เช›เซ€เช

Istio เชฎเชพเชŸเซ‡ เช…เชฐเชœเซ€ เชคเซˆเชฏเชพเชฐ เช•เชฐเซ€ เชฐเชนเซเชฏเชพ เช›เซ€เช

Istio เช เชตเชฟเชคเชฐเชฟเชค เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเชจเซ‡ เช•เชจเซ‡เช•เซเชŸ เช•เชฐเชตเชพ, เชธเซเชฐเช•เซเชทเชฟเชค เช•เชฐเชตเชพ เช…เชจเซ‡ เชฎเซ‹เชจเชฟเชŸเชฐ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡เชจเซเช‚ เชเช• เช…เชจเซเช•เซ‚เชณ เชธเชพเชงเชจ เช›เซ‡. Istio เชธเซเช•เซ‡เชฒ เชชเชฐ เชธเซ‹เชซเซเชŸเชตเซ‡เชฐ เชšเชฒเชพเชตเชตเชพ เช…เชจเซ‡ เชฎเซ‡เชจเซ‡เชœ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชตเชฟเชตเชฟเชง เชคเช•เชจเซ€เช•เซ‹เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‡ เช›เซ‡, เชœเซ‡เชฎเชพเช‚ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เช•เซ‹เชกเชจเซ‡ เชชเซ‡เช•เซ‡เชœ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช•เชจเซเชŸเซ‡เชจเชฐ เช…เชจเซ‡ เชœเชฎเชพเชตเชŸ เชฎเชพเชŸเซ‡ เชจเชฟเชฐเซเชญเชฐเชคเชพเช“ เช…เชจเซ‡ เชคเซ‡ เช•เชจเซเชŸเซ‡เชจเชฐเชจเซเช‚ เชธเช‚เชšเชพเชฒเชจ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธเชจเซ‹ เชธเชฎเชพเชตเซ‡เชถ เชฅเชพเชฏ เช›เซ‡. เชคเซ‡เชฅเซ€, Istio เชธเชพเชฅเซ‡ เช•เชพเชฎ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชคเชฎเชพเชฐเซ‡ เชœเชพเชฃเชตเซเช‚ เชœเซ‹เชˆเช เช•เซ‡ เช† เชคเช•เชจเซ€เช•เซ‹ เชชเชฐ เช†เชงเชพเชฐเชฟเชค เชฌเชนเซเชตเชฟเชง เชธเซ‡เชตเชพเช“ เชธเชพเชฅเซ‡เชจเซ€ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช•เชพเชฐเซเชฏ เช•เชฐเซ‡ เช›เซ‡ เชตเชฟเชจเชพ เช‡เชธเซเชŸเชฟเช“. เชœเซ‹ เช† เชธเชพเชงเชจเซ‹ เช…เชจเซ‡ เชตเชฟเชญเชพเชตเชจเชพเช“ เชคเชฎเชจเซ‡ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เชชเชฐเชฟเชšเชฟเชค เช›เซ‡, เชคเซ‹ เช† เชŸเซเชฏเซเชŸเซ‹เชฐเซ€เชฏเชฒเชจเซ‡ เช…เชตเช—เชฃเซ‹ เช…เชจเซ‡ เชธเซ€เชงเชพ เชตเชฟเชญเชพเช— เชชเชฐ เชœเชพเช“ Google Kubernetes Engine (GKE) เชชเชฐ Istio เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซ€ เชฐเชนเซเชฏเซเช‚ เช›เซ‡ เช…เชฅเชตเชพ เชเช•เซเชธเซเชŸเซ‡เช‚เชถเชจ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซ€ เชฐเชนเซเชฏเซเช‚ เช›เซ‡ GKE เชชเชฐ Istio.

เช† เชเช• เชชเช—เชฒเซเช‚-เชฆเชฐ-เชชเช—เชฒเชพเชจเซ€ เชฎเชพเชฐเซเช—เชฆเชฐเซเชถเชฟเช•เชพ เช›เซ‡ เชœเซเชฏเชพเช‚ เช…เชฎเซ‡ เชคเชฎเชจเซ‡ เชเช• เช‰เชฆเชพเชนเชฐเชฃ เชฆเซเชตเชพเชฐเชพ เช† เชคเช•เชจเซ€เช•เซ‹เชจเซ€ เชฎเซ‚เชณเชญเซ‚เชค เชธเชฎเชœ เช†เชชเชตเชพ เชฎเชพเชŸเซ‡ เชธเซเชฐเซ‹เชค เช•เซ‹เชกเชฅเซ€ GKE เช•เชจเซเชŸเซ‡เชจเชฐ เชธเซเชงเซ€เชจเซ€ เชธเชฎเช—เซเชฐ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเชฎเชพเช‚เชฅเซ€ เชชเชธเชพเชฐ เชฅเชˆเชถเซเช‚. เชคเชฎเซ‡ เช เชชเชฃ เชœเซ‹เชถเซ‹ เช•เซ‡ Istio เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช† เชŸเซ‡เช•เซเชจเซ‹เชฒเซ‹เชœเซ€เชจเซ€ เชถเช•เซเชคเชฟเชจเซ‹ เชฒเชพเชญ เชฒเซ‡ เช›เซ‡. เช† เชงเชพเชฐเซ‡ เช›เซ‡ เช•เซ‡ เชคเชฎเซ‡ เช•เชจเซเชŸเซ‡เชจเชฐ, เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ, เชธเชฐเซเชตเชฟเชธ เชฎเซ‡เชถ เช…เชฅเชตเชพ เช‡เชธเซเชŸเชฟเช“ เชตเชฟเชถเซ‡ เช•เช‚เชˆเชชเชฃ เชœเชพเชฃเชคเชพ เชจเชฅเซ€.

เช•เชพเชฐเซเชฏเซ‹

เช† เชŸเซเชฏเซเชŸเซ‹เชฐเซ€เชฏเชฒเชฎเชพเช‚, เชคเชฎเซ‡ เชจเซ€เชšเซ‡เชจเชพ เช•เชพเชฐเซเชฏเซ‹ เชชเซ‚เชฐเซเชฃ เช•เชฐเชถเซ‹:

  1. เชฌเชนเซเชตเชฟเชง เชธเซ‡เชตเชพเช“ เชธเชพเชฅเซ‡ เชเช• เชธเชฐเชณ เชนเซ‡เชฒเซ‹ เชตเชฐเซเชฒเซเชก เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชถเซ€เช–เชตเซ€.
  2. เชธเซ‹เชฐเซเชธ เช•เซ‹เชกเชฅเซ€ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชšเชฒเชพเชตเซ‹.
  3. เช•เชจเซเชŸเซ‡เชจเชฐเชฎเชพเช‚ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเชจเซเช‚ เชชเซ‡เช•เซ‡เชœเชฟเช‚เช—.
  4. เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เช•เซเชฒเชธเซเชŸเชฐ เชฌเชจเชพเชตเชตเซเช‚.
  5. เช•เชจเซเชŸเซ‡เชจเชฐเชจเซ‡ เช•เซเชฒเชธเซเชŸเชฐเชฎเชพเช‚ เชœเชฎเชพเชตเชตเซเช‚.

เชคเชฎเซ‡ เชถเชฐเซ‚ เช•เชฐเซ‹ เชคเซ‡ เชชเชนเซ‡เชฒเชพเช‚

Kubernetes Engine API เชจเซ‡ เชธเช•เซเชทเชฎ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชธเซ‚เชšเชจเชพเช“เชจเซ‡ เช…เชจเซเชธเชฐเซ‹:

  1. เชชเชฐ เชœเชพเช“ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชเชจเซเชœเชฟเชจ เชชเซƒเชทเซเช  Google Cloud Platform เช•เชจเซเชธเซ‹เชฒเชฎเชพเช‚.
  2. เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชฌเชจเชพเชตเซ‹ เช…เชฅเชตเชพ เชชเชธเช‚เชฆ เช•เชฐเซ‹.
  3. API เช…เชจเซ‡ เชธเช‚เชฌเช‚เชงเชฟเชค เชธเซ‡เชตเชพเช“ เชธเช•เซเชทเชฎ เชจ เชฅเชพเชฏ เชคเซเชฏเชพเช‚ เชธเซเชงเซ€ เชฐเชพเชน เชœเซเช“. เช†เชฎเชพเช‚ เชฅเซ‹เชกเซ‹ เชธเชฎเชฏ เชฒเชพเช—เซ€ เชถเช•เซ‡ เช›เซ‡.
  4. เช–เชพเชคเชฐเซ€ เช•เชฐเซ‹ เช•เซ‡ เชคเชฎเชพเชฐเชพ Google Cloud Platform เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชฎเชพเชŸเซ‡ เชฌเชฟเชฒเชฟเช‚เช— เชธเซ‡เชŸ เช•เชฐเซ‡เชฒ เช›เซ‡. เชฌเชฟเชฒเชฟเช‚เช— เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชธเช•เซเชทเชฎ เช•เชฐเชตเซเช‚ เชคเซ‡ เชœเชพเชฃเซ‹.

เช† เชŸเซเชฏเซเชŸเซ‹เชฐเซ€เชฏเชฒเชฎเชพเช‚, เชคเชฎเซ‡ เช•เซเชฒเชพเช‰เชก เชถเซ‡เชฒเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹, เชœเซ‡ เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชฎเชถเซ€เชจ เชคเซˆเชฏเชพเชฐ เช•เชฐเซ‡ เช›เซ‡ Google เช•เซ‹เชฎเซเชชเซเชฏเซเชŸ เชเชจเซเชœเชฟเชจเชฎเชพเช‚ g1-เชธเซเชฎเซ‹เชฒ เชกเซ‡เชฌเชฟเชฏเชจ-เช†เชงเชพเชฐเชฟเชค Linux, เช…เชฅเชตเชพ Linux เช…เชฅเชตเชพ macOS เช•เชฎเซเชชเซเชฏเซเชŸเชฐ เชธเชพเชฅเซ‡.

เชตเชฟเช•เชฒเซเชช A: เช•เซเชฒเชพเช‰เชก เชถเซ‡เชฒเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเซ‹

เช•เซเชฒเชพเช‰เชก เชถเซ‡เชฒเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชจเชพ เชซเชพเชฏเชฆเชพ:

  • Python 2 เช…เชจเซ‡ Python 3 เชตเชฟเช•เชพเชธ เชตเชพเชคเชพเชตเชฐเชฃ (เชธเชนเชฟเชค เชตเชฐเซเชšเซเชฏเซเชเชฒเซ‡เชจเชต) เชธเช‚เชชเซ‚เชฐเซเชฃเชชเชฃเซ‡ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชฟเชค เชฅเชฏเซ‡เชฒ เช›เซ‡.
  • เช•เชฎเชพเชจเซเชก เชฒเชพเช‡เชจ เชŸเซ‚เชฒเซเชธ gCloud, เช—เซ‹เชฆเซ€, เช—เชฟเชŸ ะธ kubectl, เชœเซ‡เชจเซ‹ เช†เชชเชฃเซ‡ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชถเซเช‚ เชคเซ‡ เชชเชนเซ‡เชฒเชพเชฅเซ€ เชœ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซ‡เชฒ เช›เซ‡.
  • เชคเชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เชชเชธเช‚เชฆ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช˜เชฃเชพ เช›เซ‡ เชŸเซ‡เช•เซเชธเซเชŸ เชธเช‚เชชเชพเชฆเช•เซ‹:
    1. เช•เซ‹เชก เชเชกเชฟเชŸเชฐ, เชœเซ‡ เช•เซเชฒเชพเช‰เชก เชถเซ‡เชฒ เชตเชฟเชจเซเชกเซ‹เชจเซ€ เชŸเซ‹เชš เชชเชฐ เชธเช‚เชชเชพเชฆเชจ เช†เชฏเช•เชจ เชธเชพเชฅเซ‡ เช–เซเชฒเซ‡ เช›เซ‡.
    2. Emacs, Vim เช…เชฅเชตเชพ Nano, เชœเซ‡ เช•เซเชฒเชพเช‰เชก เชถเซ‡เชฒเชฎเชพเช‚ เช•เชฎเชพเชจเซเชก เชฒเชพเช‡เชจเชฎเชพเช‚เชฅเซ€ เช–เซเชฒเซ‡ เช›เซ‡.

เชตเชพเชชเชฐเชตเชพ เชฎเชพเชŸเซ‡ เชฎเซ‡เช˜ เชถเซ‡เชฒ:

  1. GCP เช•เชจเซเชธเซ‹เชฒ เชชเชฐ เชœเชพเช“.
  2. เชชเซเชฐเซ‡เชธ เชฎเซ‡เช˜ เชถเซ‡เชฒ เชธเช•เซเชฐเชฟเชฏ เช•เชฐเซ‹ (เช•เซเชฒเชพเช‰เชก เชถเซ‡เชฒ เชธเช•เซเชฐเชฟเชฏ เช•เชฐเซ‹) GCP เช•เชจเซเชธเซ‹เชฒ เชตเชฟเชจเซเชกเซ‹เชจเซ€ เชŸเซ‹เชš เชชเชฐ.

Istio เชฎเชพเชŸเซ‡ เช…เชฐเชœเซ€ เชคเซˆเชฏเชพเชฐ เช•เชฐเซ€ เชฐเชนเซเชฏเชพ เช›เซ€เช

เชจเซ€เชšเซ‡เชจเชพ เชญเชพเช—เชฎเชพเช‚ GCP เช•เชจเซเชธเซ‹เชฒ เช•เชฎเชพเชจเซเชก เชฒเชพเช‡เชจ เชธเชพเชฅเซ‡เชจเซเช‚ เช•เซเชฒเชพเช‰เชก เชถเซ‡เชฒ เชธเชคเซเชฐ เชจเชตเซ€ เชตเชฟเชจเซเชกเซ‹เชฎเชพเช‚ เช–เซเชฒเชถเซ‡.

Istio เชฎเชพเชŸเซ‡ เช…เชฐเชœเซ€ เชคเซˆเชฏเชพเชฐ เช•เชฐเซ€ เชฐเชนเซเชฏเชพ เช›เซ€เช

เชตเชฟเช•เชฒเซเชช B: เช•เชฎเชพเชจเซเชก เชฒเชพเช‡เชจ เชŸเซ‚เชฒเซเชธเชจเซ‹ เชธเซเชฅเชพเชจเชฟเช• เชฐเซ€เชคเซ‡ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเซ‹

เชœเซ‹ เชคเชฎเซ‡ Linux เช…เชฅเชตเชพ macOS เชšเชฒเชพเชตเชคเชพ เช•เชฎเซเชชเซเชฏเซเชŸเชฐ เชชเชฐ เช•เชพเชฎ เช•เชฐเชถเซ‹, เชคเซ‹ เชคเชฎเชพเชฐเซ‡ เชจเซ€เชšเซ‡เชจเชพ เช˜เชŸเช•เซ‹เชจเซ‡ เช—เซ‹เช เชตเชตเชพ เช…เชจเซ‡ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เชชเชกเชถเซ‡:

  1. เช•เชธเซเชŸเชฎเชพเช‡เช เช•เชฐเซ‹ Python 3 เช…เชจเซ‡ Python 2 เชตเชฟเช•เชพเชธ เชชเชฐเซเชฏเชพเชตเชฐเชฃ.

  2. Cloud SDK เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซ‹ เช†เชฆเซ‡เชถ เชตเชพเช•เซเชฏ เชธเชพเชงเชจ เชธเชพเชฅเซ‡ gCloud.

  3. เชธเซ‡เชŸ เช•เชฐเซ‹ kubectl - เชธเชพเชฅเซ‡ เช•เชพเชฎ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช•เชฎเชพเชจเซเชก เชฒเชพเช‡เชจ เชŸเซ‚เชฒ เช•เซเชฏเซเชฌเชฐเซเชจเซ‡เชŸเชฟเชธ.

    gcloud components install kubectl

  4. เชธเซ‡เชŸ เช•เชฐเซ‹ เชกเซ‹เช•เชฐ เช•เซ‹เชฎเซเชฏเซเชจเชฟเชŸเซ€ เชเชกเชฟเชถเชจ (CE). เชคเชฎเซ‡ เช•เชฎเชพเชจเซเชก เชฒเชพเช‡เชจ เชŸเซ‚เชฒเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชถเซ‹ เช—เซ‹เชฆเซ€เชจเชฎเซ‚เชจเชพ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชฎเชพเชŸเซ‡ เช•เชจเซเชŸเซ‡เชจเชฐ เช›เชฌเซ€เช“ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡.

  5. เชŸเซ‚เชฒ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซ‹ เช—เชฟเชŸ เชธเช‚เชธเซเช•เชฐเชฃ เชจเชฟเชฏเช‚เชคเซเชฐเชฃ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-เชฌเซ‡เช เชคเชฐเซ€เช•เซ‡ เชชเชพเชคเชณเซ‹ เชกเซ‹เช•เชฐเชจเซ‡ เชจเชตเซ€เชจเชคเชฎ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพ เช•เชนเซ‡ เช›เซ‡ เชชเชพเชฏเชฅเซ‹เชจ 3 เช›เชฌเซ€ เช†เชงเชพเชฐ เชคเชฐเซ€เช•เซ‡.
  • เชŸเซ€เชฎ เช•เซ‹เชชเซ€. . เชตเชฐเซเชคเชฎเชพเชจ เช•เชพเชฐเซเชฏเช•เชพเชฐเซ€ เชจเชฟเชฐเซเชฆเซ‡เชถเชฟเช•เชพเชฎเชพเช‚ เชธเซเชฐเซ‹เชค เชซเชพเช‡เชฒเซ‹เชจเซ€ เชจเช•เชฒ เช•เชฐเซ‡ เช›เซ‡ (เชซเช•เซเชค เช…เชฎเชพเชฐเชพ เช•เชฟเชธเซเชธเชพเชฎเชพเช‚ server.py) เช•เชจเซเชŸเซ‡เชจเชฐเชจเซ€ เชซเชพเช‡เชฒ เชธเชฟเชธเซเชŸเชฎเชฎเชพเช‚.
  • เชชเซเชฐเชตเซ‡เชถ เชฌเชฟเช‚เชฆเซ เช•เชจเซเชŸเซ‡เชจเชฐ เชถเชฐเซ‚ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชตเชชเชฐเชพเชฏเซ‡เชฒ เช†เชฆเซ‡เชถเชจเซ‡ เชตเซเชฏเชพเช–เซเชฏเชพเชฏเชฟเชค เช•เชฐเซ‡ เช›เซ‡. เช…เชฎเชพเชฐเชพ เช•เชฟเชธเซเชธเชพเชฎเชพเช‚, เช† เช†เชฆเซ‡เชถ เชฒเช—เชญเช— เชคเชฎเซ‡ เชšเชฒเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เช‰เชชเชฏเซ‹เช—เชฎเชพเช‚ เชฒเซ‡เชตเชพเชคเชพ เชธเชฎเชพเชจ เช›เซ‡ server.py เชธเซเชคเซเชฐเซ‹เชค เช•เซ‹เชกเชฎเชพเช‚เชฅเซ€.
  • เชŸเซ€เชฎ เชเช•เซเชธเชชเซ‹เช เชคเซ‡ เชฆเชฐเซเชถเชพเชตเซ‡ เช›เซ‡ เชธเชฐเซเชตเชฐ เชชเซ‹เชฐเซเชŸ เชฆเซเชตเชพเชฐเชพ เชกเซ‡เชŸเชพเชจเซ€ เชฐเชพเชน เชœเซเช เช›เซ‡ 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

เชฒเซ‹เชกเชœเชจเชจเซเช‚ เช•เชจเซเชŸเซ‡เชจเชฐเชพเช‡เชเซ‡เชถเชจ

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 เช•เซเชฒเชธเซเชŸเชฐ เชฌเชจเชพเชตเชตเซเช‚:

1) เช•เซเชฒเชธเซเชŸเชฐ เชฌเชจเชพเชตเซ‹:

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

เชŸเซ€เชฎ gCloud เชคเชฎเซ‡ เช‰เชฒเซเชฒเซ‡เช–เชฟเชค เช•เชฐเซ‡เชฒ GCP เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เช…เชจเซ‡ เชกเชฟเชซเซ‹เชฒเซเชŸ เชเซ‹เชจเชฎเชพเช‚ เชเช• istioready เช•เซเชฒเชธเซเชŸเชฐ เชฌเชจเชพเชตเซ‡ เช›เซ‡. Istio เชšเชฒเชพเชตเชตเชพ เชฎเชพเชŸเซ‡, เช…เชฎเซ‡ เช“เช›เชพเชฎเชพเช‚ เช“เช›เชพ 4 เชจเซ‹เชกเซเชธ เช…เชจเซ‡ เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชฎเชถเซ€เชจ เชฐเชพเช–เชตเชพเชจเซ€ เชญเชฒเชพเชฎเชฃ เช•เชฐเซ€เช เช›เซ€เช n1-เชงเซ‹เชฐเชฃ-2.

เชŸเซ€เชฎ เชฅเซ‹เชกเซ€เชตเชพเชฐเชฎเชพเช‚ เช•เซเชฒเชธเซเชŸเชฐ เชฌเชจเชพเชตเซ‡ เช›เซ‡. เชœเซเชฏเชพเชฐเซ‡ เช•เซเชฒเชธเซเชŸเชฐ เชคเซˆเชฏเชพเชฐ เชฅเชพเชฏ เช›เซ‡, เชคเซเชฏเชพเชฐเซ‡ เช†เชฆเซ‡เชถ เช•เช‚เชˆเช• เช†เชจเชพ เชœเซ‡เชตเซเช‚ เช†เช‰เชŸเชชเซเชŸ เช•เชฐเซ‡ เช›เซ‡ ะกะพะพะฑั‰ะตะฝะธะต.

2) เช•เชฎเชพเชจเซเชก เชฒเชพเช‡เชจ เชŸเซ‚เชฒเชฎเชพเช‚ เช“เชณเช–เชชเชคเซเชฐเซ‹ เชชเซเชฐเชฆเชพเชจ เช•เชฐเซ‹ kubectlเช•เซเชฒเชธเซเชŸเชฐเชจเซเช‚ เชธเช‚เชšเชพเชฒเชจ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชคเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡:

gcloud container clusters get-credentials istioready

3) เชนเชตเซ‡ เชคเชฎเซ‡ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชธเชพเชฅเซ‡ เชฎเชพเชฐเชซเชคเซ‡ เชตเชพเชคเชšเซ€เชค เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹ kubectl. เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชจเซ€เชšเซ‡เชจเซ‹ เช†เชฆเซ‡เชถ เชจเซ‹เชกเซเชธเชจเซ€ เชธเซเชฅเชฟเชคเชฟ เชถเซ‹เชงเซ€ เชถเช•เซ‡ เช›เซ‡:

kubectl get nodes

เช†เชฆเซ‡เชถ เชจเซ‹เชกเซเชธเชจเซ€ เชธเซ‚เชšเชฟ เชฌเชจเชพเชตเซ‡ เช›เซ‡:

NAME                                       STATUS   ROLES    AGE    VERSION
gke-istoready-default-pool-dbeb23dc-1vg0   Ready    <none>   99s    v1.13.6-gke.13
gke-istoready-default-pool-dbeb23dc-36z5   Ready    <none>   100s   v1.13.6-gke.13
gke-istoready-default-pool-dbeb23dc-fj7s   Ready    <none>   99s    v1.13.6-gke.13
gke-istoready-default-pool-dbeb23dc-wbjw   Ready    <none>   99s    v1.13.6-gke.13

เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เช•เซ€ เช–เซเชฏเชพเชฒเซ‹

เชกเชพเชฏเชพเช—เซเชฐเชพเชฎ GKE เชชเชฐ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชฌเชคเชพเชตเซ‡ เช›เซ‡:

Istio เชฎเชพเชŸเซ‡ เช…เชฐเชœเซ€ เชคเซˆเชฏเชพเชฐ เช•เชฐเซ€ เชฐเชนเซเชฏเชพ เช›เซ€เช

เชคเชฎเซ‡ GKE เชฎเชพเช‚ เช•เชจเซเชŸเซ‡เชจเชฐ เชœเชฎเชพเชตเชคเชพ เชชเชนเซ‡เชฒเชพ, เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธเชจเชพ เชฎเซเช–เซเชฏ เช–เซเชฏเชพเชฒเซ‹ เชœเชพเชฃเซ‹. เชœเซ‹ เชคเชฎเซ‡ เชตเชงเซ เชœเชพเชฃเชตเชพ เชฎเชพเช‚เช—เชคเชพ เชนเซ‹เชต เชคเซ‹ เช–เซ‚เชฌ เชœ เช…เช‚เชคเชฎเชพเช‚ เชฒเชฟเช‚เช•เซเชธ เช›เซ‡.

  • เช—เชพเช‚เช เซ‹ เช…เชจเซ‡ เช•เซเชฒเชธเซเชŸเชฐเซ‹. GKE เชฎเชพเช‚, เชจเซ‹เชก เช เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชฎเชถเซ€เชจ เช›เซ‡. เช…เชจเซเชฏ Kubernetes เชชเซเชฒเซ‡เชŸเชซเซ‹เชฐเซเชฎ เชชเชฐ, เชจเซ‹เชก เช•เชฎเซเชชเซเชฏเซเชŸเชฐ เช…เชฅเชตเชพ เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชฎเชถเซ€เชจ เชนเซ‹เชˆ เชถเช•เซ‡ เช›เซ‡. เช•เซเชฒเชธเซเชŸเชฐ เช เชจเซ‹เชกเซเชธเชจเซ‹ เชธเช‚เช—เซเชฐเชน เช›เซ‡ เชœเซ‡เชจเซ‡ เชเช• เชเช•เชฎ เช—เชฃเซ€ เชถเช•เชพเชฏ เชœเซเชฏเชพเช‚ เชคเชฎเซ‡ เช•เชจเซเชŸเซ‡เชจเชฐเชพเช‡เชเซเชก เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชœเชฎเชพเชตเชถเซ‹.
  • เชถเซ€เช‚เช—เซ‹. เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธเชฎเชพเช‚, เช•เชจเซเชŸเซ‡เชจเชฐ เชถเซ€เช‚เช—เซ‹เชฎเชพเช‚ เชšเชพเชฒเซ‡ เช›เซ‡. เช•เซเชฌเชฐเชจเซ‡เชŸเซ€เชธเชฎเชพเช‚ เชชเซ‹เชก เช เช…เชตเชฟเชญเชพเชœเซเชฏ เชเช•เชฎ เช›เซ‡. เชชเซ‹เชก เชเช• เช…เชฅเชตเชพ เชตเชงเซ เช•เชจเซเชŸเซ‡เชจเชฐ เชงเชฐเชพเชตเซ‡ เช›เซ‡. เชคเชฎเซ‡ เชธเชฐเซเชตเชฐ เช•เชจเซเชŸเซ‡เชจเชฐ เชœเชฎเชพเชตเชถเซ‹ เช…เชจเซ‡ เชฒเซ‹เชกเชœเชจ เช…เชฒเช— เชถเซ€เช‚เช—เซ‹ เชฎเชพเช‚. เชœเซเชฏเชพเชฐเซ‡ เชชเซ‹เชกเชฎเชพเช‚ เช˜เชฃเชพ เช•เชจเซเชŸเซ‡เชจเชฐ เชนเซ‹เชฏ เช›เซ‡ (เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชธเชฐเซเชตเชฐ เช…เชจเซ‡ เชชเซเชฐเซ‹เช•เซเชธเซ€ เชธเชฐเซเชตเชฐ), เช•เชจเซเชŸเซ‡เชจเชฐ เชเช• เชœ เชเชจเซเชŸเชฟเชŸเซ€ เชคเชฐเซ€เช•เซ‡ เชธเช‚เชšเชพเชฒเชฟเชค เชฅเชพเชฏ เช›เซ‡ เช…เชจเซ‡ เชชเซ‹เชก เชธเช‚เชธเชพเชงเชจเซ‹ เชถเซ‡เชฐ เช•เชฐเซ‡ เช›เซ‡.
  • เชœเชฎเชพเชตเชŸ. เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธเชฎเชพเช‚, เชœเชฎเชพเชตเชŸ เช เชเช• เชชเชฆเชพเชฐเซเชฅ เช›เซ‡ เชœเซ‡ เชธเชฎเชพเชจ เชชเซ‹เชกเซเชธเชจเซ‹ เชธเช‚เช—เซเชฐเชน เช›เซ‡. เชกเชฟเชชเซเชฒเซ‹เชฏเชฎเซ‡เชจเซเชŸ เช•เซเชฒเชธเซเชŸเชฐ เชจเซ‹เชกเซเชธเชฎเชพเช‚ เชตเชฟเชคเชฐเชฟเชค เชชเซ‹เชกเซเชธเชจเซ€ เชฌเชนเซเชตเชฟเชง เชชเซเชฐเชคเชฟเช•เซƒเชคเชฟเช“ เชฒเซ‹เชจเซเชš เช•เชฐเซ‡ เช›เซ‡. เชกเชฟเชชเซเชฒเซ‹เชฏเชฎเซ‡เชจเซเชŸ เช เชชเซ‹เชกเซเชธเชจเซ‡ เช†เชชเชฎเซ‡เชณเซ‡ เชฌเชฆเชฒเซ€ เชจเชพเช–เซ‡ เช›เซ‡ เชœเซ‡ เชจเชฟเชทเซเชซเชณ เช—เชˆ เชนเซ‹เชฏ เช…เชฅเชตเชพ เชชเซเชฐเชคเชฟเชญเชพเชตเชตเชฟเชนเซ€เชจ เชนเซ‹เชฏ.
  • เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชธเซ‡เชตเชพ. GKE เชฎเชพเช‚ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เช•เซ‹เชก เชšเชฒเชพเชตเชคเซ€ เชตเช–เชคเซ‡, เชตเชšเซเชšเซ‡เชจเซเช‚ เชœเซ‹เชกเชพเชฃ เชฒเซ‹เชกเชœเชจ ะธ เชธเชฐเซเชตเชฐ. เชœเซเชฏเชพเชฐเซ‡ เชคเชฎเซ‡ เช•เซเชฒเชพเช‰เชก เชถเซ‡เชฒ เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชฎเชถเซ€เชจ เช…เชฅเชตเชพ เชกเซ‡เชธเซเช•เชŸเซ‹เชช เชชเชฐ เชธเซ‡เชตเชพเช“ เชถเชฐเซ‚ เช•เชฐเซ€, เชคเซเชฏเชพเชฐเซ‡ เชคเชฎเซ‡ เชตเชฟเชจเช‚เชคเซ€เช“ เชฎเซ‹เช•เชฒเซ€ เชธเชฐเซเชตเชฐ เชชเชฐ เชฒเซ‹เช•เชฒเชนเซ‹เชธเซเชŸ: 8080. เชเช•เชตเชพเชฐ GKE เชฎเชพเช‚ เชœเชฎเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเชพ เชชเช›เซ€, เชชเซ‹เชกเซเชธ เช‰เชชเชฒเชฌเซเชง เชจเซ‹เชกเซเชธ เชชเชฐ เชเช•เซเชเชฟเช•เซเชฏเซเชŸ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เชฎเซ‚เชณเชญเซ‚เชค เชฐเซ€เชคเซ‡, เชชเซ‹เชก เช•เชฏเชพ เชจเซ‹เชก เชชเชฐ เชšเชพเชฒเซ€ เชฐเชนเซเชฏเซเช‚ เช›เซ‡ เชคเซ‡เชจเชพ เชชเชฐ เชคเชฎเชพเชฐเซเช‚ เช•เซ‹เชˆ เชจเชฟเชฏเช‚เชคเซเชฐเชฃ เชจเชฅเซ€, เชคเซ‡เชฅเซ€ เชคเชฎเซ‡ เชถเซ€เช‚เช—เซ‹ เช•เซ‹เชˆ เช•เชพเชฏเชฎเซ€ IP เชธเชฐเชจเชพเชฎเชพเช‚ เชจเชฅเซ€.
    เชฎเชพเชŸเซ‡ IP เชธเชฐเชจเชพเชฎเซเช‚ เชฎเซ‡เชณเชตเชตเชพ เชฎเชพเชŸเซ‡ เชธเชฐเซเชตเชฐ, เชคเชฎเชพเชฐเซ‡ เชชเซ‹เชกเซเชธเชจเซ€ เชŸเซ‹เชš เชชเชฐ เชจเซ‡เชŸเชตเชฐเซเช• เชเชฌเซเชธเซเชŸเซเชฐเซ‡เช•เซเชถเชจ เชตเซเชฏเชพเช–เซเชฏเชพเชฏเชฟเชค เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡. เชคเซ‡ เชถเซเช‚ เช›เซ‡ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชธเซ‡เชตเชพ. เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชธเซ‡เชตเชพ เชชเซ‹เชกเซเชธเชจเชพ เชธเชฎเซ‚เชน เชฎเชพเชŸเซ‡ เชธเชคเชค เช…เช‚เชคเชฟเชฎ เชฌเชฟเช‚เชฆเซ เชชเซเชฐเชฆเชพเชจ เช•เชฐเซ‡ เช›เซ‡. เชคเซเชฏเชพเช‚ เชฅเซ‹เชกเชพ เช›เซ‡ เชธเซ‡เชตเชพเช“เชจเชพ เชชเซเชฐเช•เชพเชฐเซ‹. เชธเชฐเซเชตเชฐ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‡ เช›เซ‡ เชฒเซ‹เชกเชฌเซ‡เชฒเซ‡เชจเซเชธเชฐ, เชœเซ‡ เชธเช‚เชชเชฐเซเช• เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชฌเชพเชนเซเชฏ IP เชธเชฐเชจเชพเชฎเซเช‚ เชชเซเชฐเชฆเชพเชจ เช•เชฐเซ‡ เช›เซ‡ เชธเชฐเซเชตเชฐ เช•เซเชฒเชธเซเชŸเชฐเชจเซ€ เชฌเชนเชพเชฐเชฅเซ€.
    เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธเชฎเชพเช‚ เชฌเชฟเชฒเซเชŸ-เช‡เชจ DNS เชธเชฟเชธเซเชŸเชฎ เชชเชฃ เช›เซ‡ เชœเซ‡ DNS เชจเชพเชฎเซ‹ เชธเซ‹เช‚เชชเซ‡ เช›เซ‡ (เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, helloserver.default.cluster.local) เชธเซ‡เชตเชพเช“. เช†เชจเซ‹ เช†เชญเชพเชฐ, เช•เซเชฒเชธเซเชŸเชฐเชจเซ€ เช…เช‚เชฆเชฐเชจเซ€ เชถเซ€เช‚เช—เซ‹ เช•เชพเชฏเชฎเซ€ เชธเชฐเชจเชพเชฎเชพ เชชเชฐ เช•เซเชฒเชธเซเชŸเชฐเชฎเชพเช‚ เช…เชจเซเชฏ เชถเซ€เช‚เช—เซ‹ เชธเชพเชฅเซ‡ เชตเชพเชคเชšเซ€เชค เช•เชฐเซ‡ เช›เซ‡. DNS เชจเชพเชฎเชจเซ‹ เช•เซเชฒเชธเซเชŸเชฐเชจเซ€ เชฌเชนเชพเชฐ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เชพเชคเซ‹ เชจเชฅเซ€, เชœเซ‡เชฎ เช•เซ‡ เช•เซเชฒเชพเช‰เชก เชถเซ‡เชฒเชฎเชพเช‚ เช…เชฅเชตเชพ เช•เชฎเซเชชเซเชฏเซเชŸเชฐ เชชเชฐ.

เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชฎเซ‡เชจเซ€เชซเซ‡เชธเซเชŸ เช•เชฐเซ‡ เช›เซ‡

เชœเซเชฏเชพเชฐเซ‡ เชคเชฎเซ‡ เชธเซเชคเซเชฐเซ‹เชคเชฎเชพเช‚เชฅเซ€ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชšเชฒเชพเชตเซ‹ เช›เซ‹, เชคเซเชฏเชพเชฐเซ‡ เชคเชฎเซ‡ เช†เชตเชถเซเชฏเช• เช†เชฆเซ‡เชถเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซเชฏเซ‹ เชนเชคเซ‹ python3

server.py

เช†เชตเชถเซเชฏเช• เช•เซเชฐเชฟเชฏเชพเชชเชฆ เชธเซ‚เชšเชตเซ‡ เช›เซ‡: "เช† เช•เชฐเซ‹."

เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‡ เช›เซ‡ เช˜เซ‹เชทเชฃเชพเชคเซเชฎเช• เชฎเซ‹เชกเซ‡เชฒ. เช†เชจเซ‹ เช…เชฐเซเชฅ เช เช›เซ‡ เช•เซ‡ เช…เชฎเซ‡ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธเชจเซ‡ เชฌเชฐเชพเชฌเชฐ เชถเซเช‚ เช•เชฐเชตเซเช‚ เชคเซ‡ เช•เชนเซ€ เชฐเชนเซเชฏเชพ เชจเชฅเซ€, เชชเชฐเช‚เชคเซ เช‡เชšเซเช›เชฟเชค เชธเซเชฅเชฟเชคเชฟเชจเซเช‚ เชตเชฐเซเชฃเชจ เช•เชฐเซ€ เชฐเชนเซเชฏเชพ เช›เซ€เช. เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชธเชฟเชธเซเชŸเชฎเชจเซ€ เชตเชพเชธเซเชคเชตเชฟเช• เชธเซเชฅเชฟเชคเชฟ เช‡เชšเซเช›เชฟเชค เชธเซเชฅเชฟเชคเชฟ เชธเชพเชฅเซ‡ เชฎเซ‡เชณ เช–เชพเชฏ เช›เซ‡ เชคเซ‡เชจเซ€ เช–เชพเชคเชฐเซ€ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชœเชฐเซ‚เชฐ เชฎเซเชœเชฌ เชถเซ€เช‚เช—เซ‹ เชถเชฐเซ‚ เช•เชฐเซ‡ เช›เซ‡ เช…เชจเซ‡ เชฌเช‚เชง เช•เชฐเซ‡ เช›เซ‡.

เชคเชฎเซ‡ เชฎเซ‡เชจเชฟเชซเซ‡เชธเซเชŸ เช…เชฅเชตเชพ เชซเชพเช‡เชฒเซ‹เชฎเชพเช‚ เช‡เชšเซเช›เชฟเชค เชธเซเชฅเชฟเชคเชฟ เชธเซ‚เชšเชตเซ‹ เช›เซ‹ YAML. YAML เชซเชพเช‡เชฒเชฎเชพเช‚ เชเช• เช…เชฅเชตเชพ เชตเชงเซ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เช‘เชฌเซเชœเซ‡เช•เซเชŸ เชฎเชพเชŸเซ‡ เชตเชฟเชถเชฟเชทเซเชŸเชคเชพเช“ เชถเชพเชฎเซ‡เชฒ เช›เซ‡.

เช‰เชฆเชพเชนเชฐเชฃเชฎเชพเช‚ เชฎเชพเชŸเซ‡ YAML เชซเชพเช‡เชฒ เช›เซ‡ เชธเชฐเซเชตเชฐ ะธ เชฒเซ‹เชกเชœเชจ. เชฆเชฐเซ‡เช• YAML เชซเชพเช‡เชฒ เชกเชฟเชชเซเชฒเซ‹เชฏเชฎเซ‡เชจเซเชŸ เช‘เชฌเซเชœเซ‡เช•เซเชŸ เช…เชจเซ‡ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชธเซ‡เชตเชพเชจเซ€ เช‡เชšเซเช›เชฟเชค เชธเซเชฅเชฟเชคเชฟเชจเซ‹ เช‰เชฒเซเชฒเซ‡เช– เช•เชฐเซ‡ เช›เซ‡.

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 เชเชกเซเชฐเซ‡เชธ เชงเชฐเชพเชตเซ‡ เช›เซ‡ เช…เชจเซ‡ เช•เซเชฒเชธเซเชŸเชฐเชจเซ€ เชฌเชนเชพเชฐเชฅเซ€ เชเช•เซเชธเซ‡เชธ เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡.
  • เชฒเช•เซเชทเซเชฏเชชเซ‹เชฐเซเชŸ: เชœเซ‡เชฎ เชคเชฎเชจเซ‡ เชฏเชพเชฆ เช›เซ‡, เชŸเซ€เชฎ 8080 เชเช•เซเชธเชชเซ‹เช เช•เชฐเซ‹ ะฒ เชกเซ‹เช•เชฐเชซเชพเช‡เชฒ เชฌเช‚เชฆเชฐเซ‹ เช†เชชเซเชฏเชพ เชจเชฅเซ€. เชคเชฎเซ‡ เชชเซ‹เชฐเซเชŸ เชชเซเชฐเชฆเชพเชจ เช•เชฐเซ‹ 8080เชœเซ‡เชฅเซ€ เชคเชฎเซ‡ เช•เชจเซเชŸเซ‡เชจเชฐเชจเซ‹ เชธเช‚เชชเชฐเซเช• เช•เชฐเซ€ เชถเช•เซ‹ เชธเชฐเซเชตเชฐ เช•เซเชฒเชธเซเชŸเชฐเชจเซ€ เชฌเชนเชพเชฐ. เช…เชฎเชพเชฐเชพ เช•เชฟเชธเซเชธเชพเชฎเชพเช‚ hellosvc.default.cluster.local:80 (เชŸเซเช•เซ เชจเชพเชฎ: เชนเซ‡เชฒเซ‹เชธเชตเซ€เชธเซ€) เชชเซ‹เชฐเซเชŸเชจเซ‡ เช…เชจเซเชฒเช•เซเชทเซ‡ เช›เซ‡ 8080 เชชเซ‹เชก IP เชธเชฐเชจเชพเชฎเชพเช‚ เชนเซ‡เชฒเซ‹เชธเชฐเซเชตเชฐ.
  • เชชเซ‹เชฐเซเชŸ: เช† เชคเซ‡ เชชเซ‹เชฐเซเชŸ เชจเช‚เชฌเชฐ เช›เซ‡ เชœเซเชฏเชพเช‚ เช•เซเชฒเชธเซเชŸเชฐเชจเซ€ เช…เชจเซเชฏ เชธเซ‡เชตเชพเช“ เชตเชฟเชจเช‚เชคเซ€เช“ เชฎเซ‹เช•เชฒเชถเซ‡.

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

เชเช•เชตเชพเชฐ เชฒเซ‹เชกเชœเชจ เช•เซเชทเซ‡เชคเซเชฐ เชฎเชพเชŸเซ‡, เช†เชตเชจเชพเชฐเซ€ เชตเชฟเชจเช‚เชคเซ€เช“ เชธเซเชตเซ€เช•เชพเชฐเชคเซเช‚ เชจเชฅเซ€ เชชเซเชฐเช•เชพเชฐ เชธเช‚เช•เซ‡เชค เช•เซเชฒเชธเซเชŸเชฐเช†เชˆเชชเซ€. เช† เชชเซเชฐเช•เชพเชฐ เชธเชคเชค IP เชธเชฐเชจเชพเชฎเซเช‚ เชชเซเชฐเชฆเชพเชจ เช•เชฐเซ‡ เช›เซ‡ เชœเซ‡เชจเซ‹ เช•เซเชฒเชธเซเชŸเชฐเชฎเชพเช‚ เชธเซ‡เชตเชพเช“ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡, เชชเชฐเช‚เชคเซ เช† IP เชธเชฐเชจเชพเชฎเซเช‚ เชฌเชพเชนเซเชฏ เช•เซเชฒเชพเชฏเชจเซเชŸเซเชธ เชฎเชพเชŸเซ‡ เช–เซเชฒเซเชฒเซเช‚ เชจเชฅเซ€.

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

GKE เชฎเชพเช‚ เช•เชจเซเชŸเซ‡เชจเชฐ เชœเชฎเชพเชตเชตเซเช‚

1) เชกเชฟเชฐเซ‡เช•เซเชŸเชฐเซ€ เชชเชฐ เชœเชพเช“ เชœเซเชฏเชพเช‚ เช‰เชฆเชพเชนเชฐเชฃ เชธเซเชฅเชฟเชค เช›เซ‡ เชธเชฐเซเชตเชฐ:

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

2) เช–เซ‹เชฒเซ‹ server.yaml เชŸเซ‡เช•เซเชธเซเชŸ เชเชกเชฟเชŸเชฐเชฎเชพเช‚.
3) เช•เซเชทเซ‡เชคเซเชฐเชฎเชพเช‚ เชจเชพเชฎ เชฌเชฆเชฒเซ‹ เช›เชฌเซ€ เชคเชฎเชพเชฐเซ€ เชกเซ‹เช•เชฐ เช‡เชฎเซ‡เชœเชจเชพ เชจเชพเชฎ เชชเชฐ.

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

เชฌเชฆเชฒเซ‹ PROJECT_ID เชคเชฎเชพเชฐเชพ GCP เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ ID เชชเชฐ.
4) เชธเชพเชšเชตเซ‹ เช…เชจเซ‡ เชฌเช‚เชง เช•เชฐเซ‹ server.yaml.
5) YAML เชซเชพเช‡เชฒเชจเซ‡ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชชเชฐ เชœเชฎเชพเชตเซ‹:

kubectl apply -f server.yaml

เชธเชซเชณ เชธเชฎเชพเชชเซเชคเชฟ เชชเชฐ, เช†เชฆเซ‡เชถ เชจเซ€เชšเซ‡เชจเซ‹ เช•เซ‹เชก เชฌเชจเชพเชตเซ‡ เช›เซ‡:

deployment.apps/helloserver created
service/hellosvc created

6) เชกเชฟเชฐเซ‡เช•เซเชŸเชฐเซ€ เชชเชฐ เชœเชพเช“ เชœเซเชฏเชพเช‚ เชฒเซ‹เชกเชœเชจ:

cd ../loadgen

7) เช–เซ‹เชฒเซ‹ loadgen.yaml เชŸเซ‡เช•เซเชธเซเชŸ เชเชกเชฟเชŸเชฐเชฎเชพเช‚.
8) เช•เซเชทเซ‡เชคเซเชฐเชฎเชพเช‚ เชจเชพเชฎ เชฌเชฆเชฒเซ‹ เช›เชฌเซ€ เชคเชฎเชพเชฐเซ€ เชกเซ‹เช•เชฐ เช‡เชฎเซ‡เชœเชจเชพ เชจเชพเชฎ เชชเชฐ.

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

เชฌเชฆเชฒเซ‹ PROJECT_ID เชคเชฎเชพเชฐเชพ GCP เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ ID เชชเชฐ.
9) เชธเชพเชšเชตเซ‹ เช…เชจเซ‡ เชฌเช‚เชง เช•เชฐเซ‹ loadgen.yaml, เชŸเซ‡เช•เซเชธเซเชŸ เชเชกเชฟเชŸเชฐ เชฌเช‚เชง เช•เชฐเซ‹.
10) YAML เชซเชพเช‡เชฒเชจเซ‡ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชชเชฐ เชœเชฎเชพเชตเซ‹:

kubectl apply -f loadgen.yaml

เชธเชซเชณ เชธเชฎเชพเชชเซเชคเชฟ เชชเชฐ, เช†เชฆเซ‡เชถ เชจเซ€เชšเซ‡เชจเซ‹ เช•เซ‹เชก เชฌเชจเชพเชตเซ‡ เช›เซ‡:

deployment.apps/loadgenerator created
service/loadgensvc created

11) เชถเซ€เช‚เช—เซ‹เชจเซ€ เชธเซเชฅเชฟเชคเชฟ เชคเชชเชพเชธเซ‹:

kubectl get pods

เช†เชฆเซ‡เชถ เชธเซเชฅเชฟเชคเชฟ เชฌเชคเชพเชตเซ‡ เช›เซ‡:

NAME                             READY   STATUS    RESTARTS   AGE
helloserver-69b9576d96-mwtcj     1/1     Running   0          58s
loadgenerator-774dbc46fb-gpbrz   1/1     Running   0          57s

12) เชชเซ‹เชกเชฎเชพเช‚เชฅเซ€ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชฒเซ‹เช— เชฌเชนเชพเชฐ เช•เชพเชขเซ‹ เชฒเซ‹เชกเชœเชจ. เชฌเชฆเชฒเซ‹ POD_ID เช…เช—เชพเช‰เชจเชพ เชœเชตเชพเชฌเชฎเชพเช‚เชฅเซ€ เช“เชณเช–เช•เชฐเซเชคเชพเชจเซ‡.

kubectl logs loadgenerator-POD_ID

13) เชฌเชพเชนเซเชฏ IP เชธเชฐเชจเชพเชฎเชพเช“ เชฎเซ‡เชณเชตเซ‹ เชนเซ‡เชฒเซ‹เชธเชตเซ€เชธเซ€:

kubectl get service

เช†เชฆเซ‡เชถ เชชเซเชฐเชคเชฟเชธเชพเชฆ เช†เชจเชพ เชœเซ‡เชตเซ‹ เชฆเซ‡เช–เชพเชฏ เช›เซ‡:

NAME         TYPE           CLUSTER-IP     EXTERNAL-IP     PORT(S)        AGE
hellosvc     LoadBalancer   10.81.15.158   192.0.2.1       80:31127/TCP   33m
kubernetes   ClusterIP      10.81.0.1      <none>          443/TCP        93m
loadgensvc   ClusterIP      10.81.15.155   <none>          80/TCP         4m52s

14) เชจเซ‡ เชตเชฟเชจเช‚เชคเซ€ เชฎเซ‹เช•เชฒเซ‹ เชนเซ‡เชฒเซ‹เชธเชตเซ€เชธเซ€: เชฌเชฆเชฒเซ‹ EXTERNAL_IP เชฌเชพเชนเซเชฏ IP เชธเชฐเชจเชพเชฎเชพ เชชเชฐ เชนเซ‡เชฒเซ‹เชธเชตเซ€เชธเซ€.

curl http://EXTERNAL_IP

เชšเชพเชฒเซ‹ Istio เชชเชฐ เชฒเชˆเช

เชคเชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ GKE เชชเชฐ เชเช• เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชœเชฎเชพเชตเชพเชฏเซ‡เชฒเซ€ เช›เซ‡. เชฒเซ‹เชกเชœเชจ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ DNS เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡ (hellosvc:80) เชจเซ‡ เชตเชฟเชจเช‚เชคเซ€เช“ เชฎเซ‹เช•เชฒเชตเชพ เชฎเชพเชŸเซ‡ เชธเชฐเซเชตเชฐเช…เชจเซ‡ เชคเชฎเซ‡ เชตเชฟเชจเช‚เชคเซ€เช“ เชฎเซ‹เช•เชฒเซ€ เชถเช•เซ‹ เช›เซ‹ เชธเชฐเซเชตเชฐ เชฌเชพเชนเซเชฏ IP เชธเชฐเชจเชพเชฎเชพ เชฆเซเชตเชพเชฐเชพ. เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธเชฎเชพเช‚ เช˜เชฃเซ€ เชธเซเชตเชฟเชงเชพเช“ เชนเซ‹เชตเชพ เช›เชคเชพเช‚, เชธเซ‡เชตเชพเช“ เชตเชฟเชถเซ‡ เช•เซ‡เชŸเชฒเซ€เช• เชฎเชพเชนเชฟเชคเซ€ เช–เซ‚เชŸเซ‡ เช›เซ‡:

  • เชธเซ‡เชตเชพเช“ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช•เซเชฐเชฟเชฏเชพเชชเซเชฐเชคเชฟเช•เซเชฐเชฟเชฏเชพ เช•เชฐเซ‡ เช›เซ‡? เชธเซ‡เชตเชพเช“ เชตเชšเซเชšเซ‡เชจเชพ เชธเช‚เชฌเช‚เชงเซ‹ เชถเซเช‚ เช›เซ‡? เชธเซ‡เชตเชพเช“ เชตเชšเซเชšเซ‡ เชŸเซเชฐเชพเชซเชฟเช• เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชตเชนเซ‡ เช›เซ‡? เชถเซเช‚ เชคเชฎเซ‡ เชคเซ‡เชจเชพเชฅเซ€ เชตเชพเช•เซ‡เชซ เช›เซ‹ เชฒเซ‹เชกเชœเชจ เชจเซ‡ เชตเชฟเชจเช‚เชคเซ€เช“ เชฎเซ‹เช•เชฒเซ‡ เช›เซ‡ เชธเชฐเซเชตเชฐ, เชชเชฐเช‚เชคเซ เช•เชฒเซเชชเชจเชพ เช•เชฐเซ‹ เช•เซ‡ เชคเชฎเซ‡ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชตเชฟเชถเซ‡ เช•เช‚เชˆเชชเชฃ เชœเชพเชฃเชคเชพ เชจเชฅเซ€. เช† เชชเซเชฐเชถเซเชจเซ‹เชจเชพ เชœเชตเชพเชฌ เช†เชชเชตเชพ เชฎเชพเชŸเซ‡, เชšเชพเชฒเซ‹ GKE เชฎเชพเช‚ เชšเชพเชฒเซ€ เชฐเชนเซ‡เชฒเชพ เชชเซ‹เชกเซเชธเชจเซ€ เชธเซ‚เชšเชฟ เชœเซ‹เชˆเช.
  • เชฎเซ‡เชŸเซเชฐเชฟเช•เซเชธ. เช•เซ‡เชŸเชฒเซ เชฒเชพเช‚เชฌเซ เชธเชฐเซเชตเชฐ เช†เชตเชจเชพเชฐเซ€ เชตเชฟเชจเช‚เชคเซ€เชจเซ‹ เชœเชตเชพเชฌ เช†เชชเซ‡ เช›เซ‡? เชธเชฐเซเชตเชฐ เชฆเซเชตเชพเชฐเชพ เชชเซเชฐเชคเชฟ เชธเซ‡เช•เชจเซเชก เช•เซ‡เชŸเชฒเซ€ เชตเชฟเชจเช‚เชคเซ€เช“ เชชเซเชฐเชพเชชเซเชค เชฅเชพเชฏ เช›เซ‡? เชถเซเช‚ เชคเซ‡ เชญเซ‚เชฒ เชธเช‚เชฆเซ‡เชถเชพเช“ เช†เชชเซ‡ เช›เซ‡?
  • เชธเซเชฐเช•เซเชทเชพ เชฎเชพเชนเชฟเชคเซ€. เชตเชšเซเชšเซ‡ เชŸเซเชฐเชพเชซเชฟเช• เชฒเซ‹เชกเชœเชจ ะธ เชธเชฐเซเชตเชฐ เชฎเชพเชคเซเชฐ เชชเชธเชพเชฐ เชฅเชพเชฏ เช›เซ‡ HTTP เช…เชฅเชตเชพ เชฆเซเชตเชพเชฐเชพ mTLS?

Istio เช† เชฌเชงเชพ เชชเซเชฐเชถเซเชจเซ‹เชจเชพ เชœเชตเชพเชฌ เช†เชชเซ‡ เช›เซ‡. เช† เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, Istio เชธเชพเช‡เชกเช•เชพเชฐ เชชเซเชฐเซ‹เช•เซเชธเซ€ เชฎเซ‚เช•เซ‡ เช›เซ‡ เชฆเซ‚เชค เชฆเชฐเซ‡เช• เชชเซ‹เชก เชฎเชพเช‚. เชเชจเซเชตเซ‹เชฏ เชชเซเชฐเซ‹เช•เซเชธเซ€ เชเชชเซเชฒเซ€เช•เซ‡เชถเชจ เช•เชจเซเชŸเซ‡เชจเชฐเชฎเชพเช‚ เช†เชตเชคเชพ เช…เชจเซ‡ เชœเชคเชพ เชคเชฎเชพเชฎ เชŸเซเชฐเชพเชซเชฟเช•เชจเซ‡ เช…เชŸเช•เชพเชตเซ‡ เช›เซ‡. เชคเซ‡เชจเซ‹ เช…เชฐเซเชฅ เช เช›เซ‡ เช•เซ‡ เชธเชฐเซเชตเชฐ ะธ เชฒเซ‹เชกเชœเชจ เชธเชพเช‡เชกเช•เชพเชฐ เชชเซเชฐเซ‹เช•เซเชธเซ€ เชเชจเซเชตเซ‹เชฏ เชฆเซเชตเชพเชฐเชพ เชชเซเชฐเชพเชชเซเชค เช•เชฐเซ‹, เช…เชจเซ‡ เชคเชฎเชพเชฎ เชŸเซเชฐเชพเชซเชฟเช• เชฒเซ‹เชกเชœเชจ ะบ เชธเชฐเซเชตเชฐ เชฆเซ‚เชค เชชเซเชฐเซ‹เช•เซเชธเซ€เชฎเชพเช‚เชฅเซ€ เชชเชธเชพเชฐ เชฅเชพเชฏ เช›เซ‡.

เชฆเซ‚เชค เชชเซเชฐเซ‹เช•เซเชธเซ€เช“ เชตเชšเซเชšเซ‡เชจเชพ เชœเซ‹เชกเชพเชฃเซ‹ เชธเซ‡เชตเชพ เชฎเซ‡เชถ เชฌเชจเชพเชตเซ‡ เช›เซ‡. เชธเชฐเซเชตเชฟเชธ เชฎเซ‡เชถ เช†เชฐเซเช•เชฟเชŸเซ‡เช•เซเชšเชฐ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธเชจเซ€ เชŸเซ‹เชš เชชเชฐ เชจเชฟเชฏเช‚เชคเซเชฐเชฃเชจเซเช‚ เชธเซเชคเชฐ เชชเซ‚เชฐเซเช‚ เชชเชพเชกเซ‡ เช›เซ‡.

Istio เชฎเชพเชŸเซ‡ เช…เชฐเชœเซ€ เชคเซˆเชฏเชพเชฐ เช•เชฐเซ€ เชฐเชนเซเชฏเชพ เช›เซ€เช

เชเชจเซเชตเซ‹เชฏ เชชเซเชฐเซ‹เช•เซเชธเซ€เช“ เชคเซ‡เชฎเชจเชพ เชชเซ‹เชคเชพเชจเชพ เช•เชจเซเชŸเซ‡เชจเชฐเชฎเชพเช‚ เชšเชพเชฒเชคเซ€ เชนเซ‹เชตเชพเชฅเซ€, เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เช•เซ‹เชกเชฎเชพเช‚ เชฒเช—เชญเช— เช•เซ‹เชˆ เชซเซ‡เชฐเชซเชพเชฐ เช•เชฐเซเชฏเชพ เชตเชฟเชจเชพ Istio GKE เช•เซเชฒเชธเซเชŸเชฐเชจเซ€ เชŸเซ‹เชš เชชเชฐ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡. เชชเชฐเช‚เชคเซ เชคเชฎเซ‡ เชคเชฎเชพเชฐเซ€ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเชจเซ‡ Istio เชฆเซเชตเชพเชฐเชพ เชธเช‚เชšเชพเชฒเชฟเชค เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชคเซˆเชฏเชพเชฐ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชฅเซ‹เชกเซเช‚ เช•เชพเชฎ เช•เชฐเซเชฏเซเช‚ เช›เซ‡:

  • เชฌเชงเชพ เช•เชจเซเชŸเซ‡เชจเชฐ เชฎเชพเชŸเซ‡ เชธเซ‡เชตเชพเช“. เชœเชฎเชพเชตเชŸ เชฎเชพเชŸเซ‡ เชธเชฐเซเชตเชฐ ะธ เชฒเซ‹เชกเชœเชจ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชธเซ‡เชตเชพ เชธเชพเชฅเซ‡ เชœเซ‹เชกเชพเชฏเซ‡เชฒ เช›เซ‡. เชธเชฎ เชฒเซ‹เชกเชœเชจ, เชœเซ‡ เช†เชตเชจเชพเชฐเซ€ เชตเชฟเชจเช‚เชคเซ€เช“ เชชเซเชฐเชพเชชเซเชค เช•เชฐเชคเซ€ เชจเชฅเซ€, เชคเซเชฏเชพเช‚ เชเช• เชธเซ‡เชตเชพ เช›เซ‡.
  • เชธเซ‡เชตเชพเช“เชฎเชพเช‚ เชฌเช‚เชฆเชฐเซ‹เชจเชพ เชจเชพเชฎ เชนเซ‹เชตเชพ เช†เชตเชถเซเชฏเช• เช›เซ‡. เชœเซ‹ เช•เซ‡ GKE เชฎเชพเช‚ เชธเชฐเซเชตเชฟเชธ เชชเซ‹เชฐเซเชŸเชจเซเช‚ เชจเชพเชฎ เชตเช—เชฐ เช›เซ‹เชกเซ€ เชถเช•เชพเชฏ เช›เซ‡, Istio เชฎเชพเชŸเซ‡ เชคเชฎเชพเชฐเซ‡ เชธเซเชชเชทเซเชŸ เช•เชฐเชตเซเช‚ เชœเชฐเซ‚เชฐเซ€ เช›เซ‡ เชชเซ‹เชฐเซเชŸ เชจเชพเชฎ เชคเซ‡เชจเชพ เชชเซเชฐเซ‹เชŸเซ‹เช•เซ‹เชฒ เช…เชจเซเชธเชพเชฐ. YAML เชซเชพเช‡เชฒเชฎเชพเช‚ เชฎเชพเชŸเซ‡ เชชเซ‹เชฐเซเชŸ เชธเชฐเซเชตเชฐ เช•เชนเซ‡เชตเชพเชฏ เช›เซ‡ httpเช•เชพเชฐเชฃ เช•เซ‡ เชธเชฐเซเชตเชฐ เชชเซเชฐเซ‹เชŸเซ‹เช•เซ‹เชฒ เชตเชพเชชเชฐเซ‡ เช›เซ‡ HTTP. เชœเซ‹ เชธเซ‡เชตเชพ เชตเชชเชฐเชพเชฏเซ‡เชฒ gRPC, เชคเชฎเซ‡ เชชเซ‹เชฐเซเชŸเชจเซเช‚ เชจเชพเชฎ เช†เชชเชถเซ‹ grpc.
  • เชœเชฎเชพเชตเชŸ เชงเซเชตเชœเชพเช‚เช•เชฟเชค เช›เซ‡. เชคเซ‡เชฅเซ€, เชคเชฎเซ‡ Istio เชจเซ€ เชŸเซเชฐเชพเชซเชฟเช• เชฎเซ‡เชจเซ‡เชœเชฎเซ‡เชจเซเชŸ เชธเซเชตเชฟเชงเชพเช“เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹, เชœเซ‡เชฎ เช•เซ‡ เชธเชฎเชพเชจ เชธเซ‡เชตเชพเชจเชพ เชธเช‚เชธเซเช•เชฐเชฃเซ‹ เชตเชšเซเชšเซ‡ เชŸเซเชฐเชพเชซเชฟเช•เชจเซเช‚ เชตเชฟเชญเชพเชœเชจ.

เชธเซเชฅเชพเชชเชจ

Istio เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเชตเชพเชจเซ€ เชฌเซ‡ เชฐเซ€เชค เช›เซ‡. เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡ GKE เชเช•เซเชธเซเชŸเซ‡เช‚เชถเชจ เชชเชฐ Istio เชธเช•เซเชทเชฎ เช•เชฐเซ‹ เช…เชฅเชตเชพ Istio เชจเซเช‚ เช“เชชเชจ เชธเซ‹เชฐเซเชธ เชตเชฐเซเชเชจ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซ‹ เช•เซเชฒเชธเซเชŸเชฐ เชชเชฐ. GKE เชชเชฐ Istio เชธเชพเชฅเซ‡, เชคเชฎเซ‡ เชธเชฎเช—เซเชฐ GKE เช•เซเชฒเชธเซเชŸเชฐ เชœเซ€เชตเชจเชšเช•เซเชฐ เชฆเชฐเชฎเซเชฏเชพเชจ Istio เช‡เชจเซเชธเซเชŸเซ‹เชฒเซ‡เชถเชจ เช…เชจเซ‡ เช…เชชเช—เซเชฐเซ‡เชกเชจเซ‡ เชธเชฐเชณเชคเชพเชฅเซ€ เชฎเซ‡เชจเซ‡เชœ เช•เชฐเซ€ เชถเช•เซ‹ เช›เซ‹. เชœเซ‹ เชคเชฎเชจเซ‡ Istio เชจเซเช‚ เชจเชตเซ€เชจเชคเชฎ เชธเช‚เชธเซเช•เชฐเชฃ เช…เชฅเชตเชพ เชคเชฎเชพเชฐเชพ Istio เชจเชฟเชฏเช‚เชคเซเชฐเชฃ เชชเซ‡เชจเชฒ เช—เซ‹เช เชตเชฃเซ€ เชชเชฐ เชตเชงเซ เชจเชฟเชฏเช‚เชคเซเชฐเชฃ เชœเซ‹เชˆเช เช›เซ‡, เชคเซ‹ GKE เชเช•เซเชธเซเชŸเซ‡เช‚เชถเชจ เชชเชฐ Istio เชจเซ‡ เชฌเชฆเชฒเซ‡ เช“เชชเชจ เชธเซ‹เชฐเซเชธ เชธเช‚เชธเซเช•เชฐเชฃ เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซ‹. เช…เชญเชฟเช—เชฎ เชจเช•เซเช•เซ€ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เชฒเซ‡เช– เชตเชพเช‚เชšเซ‹ เชถเซเช‚ เชฎเชพเชฐเซ‡ GKE เชชเชฐ Istio เชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡?.

เชเช• เชตเชฟเช•เชฒเซเชช เชชเชธเช‚เชฆ เช•เชฐเซ‹, เชฏเซ‹เช—เซเชฏ เชฎเชพเชฐเซเช—เชฆเชฐเซเชถเชฟเช•เชพเชจเซ€ เชธเชฎเซ€เช•เซเชทเชพ เช•เชฐเซ‹ เช…เชจเซ‡ เชคเชฎเชพเชฐเชพ เช•เซเชฒเชธเซเชŸเชฐ เชชเชฐ Istio เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡เชจเซ€ เชธเซ‚เชšเชจเชพเช“เชจเซ‡ เช…เชจเซเชธเชฐเซ‹. เชœเซ‹ เชคเชฎเซ‡ เชคเชฎเชพเชฐเซ€ เชจเชตเซ€ เชœเชฎเชพเชตเชŸ เช•เชฐเซ‡เชฒ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชธเชพเชฅเซ‡ Istio เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพ เชฎเชพเช‚เช—เชคเชพ เชนเซ‹, เชธเชพเช‡เชกเช•เชพเชฐ เช…เชฎเชฒเซ€เช•เชฐเชฃเชจเซ‡ เชธเช•เซเชทเชฎ เช•เชฐเซ‹ เชจเซ‡เชฎเชธเซเชชเซ‡เชธ เชฎเชพเชŸเซ‡ เชฎเซ‚เชณเชญเซ‚เชค.

เช“เช•เชฟเชธเซเช•เซเช•เช•

เชคเชฎเซ‡ เช† เชŸเซเชฏเซเชŸเซ‹เชฐเซ€เชฏเชฒเชฎเชพเช‚ เช‰เชชเชฏเซ‹เช—เชฎเชพเช‚ เชฒเซ€เชงเซ‡เชฒเชพ เชธเช‚เชธเชพเชงเชจเซ‹ เชฎเชพเชŸเซ‡ เชคเชฎเชพเชฐเชพ Google Cloud Platform เชเช•เชพเช‰เชจเซเชŸ เชชเชฐ เชถเซเชฒเซเช• เชฒเซ‡เชตเชพเชจเซเช‚ เชŸเชพเชณเชตเชพ เชฎเชพเชŸเซ‡, เชเช•เชตเชพเชฐ เชคเชฎเซ‡ Istio เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซ€ เชฒเซ‹ เช…เชจเซ‡ เชจเชฎเซ‚เชจเชพ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชธเชพเชฅเซ‡ เชฐเชฎเซ€ เชฒเซ‹ เชคเซ‡ เชชเช›เซ€ เช•เชจเซเชŸเซ‡เชจเชฐ เช•เซเชฒเชธเซเชŸเชฐเชจเซ‡ เช•เชพเชขเซ€ เชจเชพเช–เซ‹. เช† เชคเชฎเชพเชฎ เช•เซเชฒเชธเซเชŸเชฐ เชธเช‚เชธเชพเชงเชจเซ‹ เชฆเซ‚เชฐ เช•เชฐเชถเซ‡, เชœเซ‡เชฎ เช•เซ‡ เช—เชฃเชคเชฐเซ€เชจเชพ เชฆเชพเช–เชฒเชพเช“, เชกเชฟเชธเซเช• เช…เชจเซ‡ เชจเซ‡เชŸเชตเชฐเซเช• เชธเช‚เชธเชพเชงเชจเซ‹.

เชถเซเช‚ เช†เช—เชพเชฎเซ€ เช›เซ‡?

เชธเซ‹เชฐเซเชธ: www.habr.com

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹