เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เช•เชจเซเชŸเซ‡เชจเชฐ เชฎเชพเชŸเซ‡ เชถเซเชฐเซ‡เชทเซเช  เชชเชฆเซเชงเชคเชฟเช“: เช†เชฐเซ‹เช—เซเชฏ เชคเชชเชพเชธเซ‹

เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เช•เชจเซเชŸเซ‡เชจเชฐ เชฎเชพเชŸเซ‡ เชถเซเชฐเซ‡เชทเซเช  เชชเชฆเซเชงเชคเชฟเช“: เช†เชฐเซ‹เช—เซเชฏ เชคเชชเชพเชธเซ‹

TL; DR

  • เช•เชจเซเชŸเซ‡เชจเชฐ เช…เชจเซ‡ เชฎเชพเช‡เช•เซเชฐเซ‹เชธเชฐเซเชตเชฟเชธเชฟเชธเชจเซ€ เช‰เชšเซเชš เช…เชตเชฒเซ‹เช•เชจเช•เซเชทเชฎเชคเชพ เชชเซเชฐเชพเชชเซเชค เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เชฒเซ‹เช— เช…เชจเซ‡ เชชเซเชฐเชพเชฅเชฎเชฟเช• เชฎเซ‡เชŸเซเชฐเชฟเช•เซเชธ เชชเซ‚เชฐเชคเชพ เชจเชฅเซ€.
  • เชเชกเชชเซ€ เชชเซเชจเชƒเชชเซเชฐเชพเชชเซเชคเชฟ เช…เชจเซ‡ เชตเชงเซ‡เชฒเซ€ เชธเซเชฅเชฟเชคเชฟเชธเซเชฅเชพเชชเช•เชคเชพ เชฎเชพเชŸเซ‡, เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเซ‹เช เช‰เชšเซเชš เช…เชตเชฒเซ‹เช•เชจเช•เซเชทเชฎเชคเชพ เชธเชฟเชฆเซเชงเชพเช‚เชค (HOP) เชฒเชพเช—เซ เช•เชฐเชตเซ‹ เชœเซ‹เชˆเช.
  • เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชธเซเชคเชฐเซ‡, NOP เชฎเชพเชŸเซ‡ เชœเชฐเซ‚เชฐเซ€ เช›เซ‡: เชฏเซ‹เช—เซเชฏ เชฒเซ‹เช—เซ€เช‚เช—, เช•เซเชฒเซ‹เช เชฎเซ‹เชจเชฟเชŸเชฐเชฟเช‚เช—, เชธเซ‡เชจเชฟเชŸเซ€ เชšเซ‡เช•เซเชธ เช…เชจเซ‡ เชชเชฐเชซเซ‹เชฐเซเชฎเชจเซเชธ/เชŸเซเชฐเชพเชจเซเชเซ€เชถเชจ เชŸเซเชฐเซ‡เชธเชฟเช‚เช—.
  • NOR เชจเชพ เชคเชคเซเชต เชคเชฐเซ€เช•เซ‡ เชšเซ‡เช•เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‹ เชคเซˆเชฏเชพเชฐเซ€ เชคเชชเชพเชธ ะธ เชœเซ€เชตเช‚เชคเชคเชพเชชเซเชฐเซ‹เชฌ เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ.

เชนเซ‡เชฒเซเชฅ เชšเซ‡เช• เชŸเซ‡เชฎเซเชชเชฒเซ‡เชŸ เชถเซเช‚ เช›เซ‡?

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

เช‰เชšเซเชš เช…เชตเชฒเซ‹เช•เชจเช•เซเชทเชฎเชคเชพ เชธเชฟเชฆเซเชงเชพเช‚เชค (HOP)

เช‰เชšเซเชš เช…เชตเชฒเซ‹เช•เชจเช•เซเชทเชฎเชคเชพเชจเซ‹ เชธเชฟเชฆเซเชงเชพเช‚เชค เชคเซ‡เชฎเชพเช‚เชจเซ‹ เชเช• เช›เซ‡ เช•เชจเซเชŸเซ‡เชจเชฐเชพเช‡เชเซเชก เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชกเชฟเชเชพเช‡เชจ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡เชจเชพ เชธเชฟเชฆเซเชงเชพเช‚เชคเซ‹. เชฎเชพเช‡เช•เซเชฐเซ‹เชธเชฐเซเชตเชฟเชธเซ€เชธ เช†เชฐเซเช•เชฟเชŸเซ‡เช•เซเชšเชฐเชฎเชพเช‚, เชธเซ‡เชตเชพเช“ เชคเซ‡เชฎเชจเซ€ เชตเชฟเชจเช‚เชคเซ€ เชชเชฐ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ เชคเซ‡เชจเซ€ เช•เชพเชณเชœเซ€ เชฒเซ‡เชคเซ€ เชจเชฅเซ€ (เช…เชจเซ‡ เชฏเซ‹เช—เซเชฏ เชฐเซ€เชคเซ‡), เชชเชฐเช‚เชคเซ เชœเซ‡ เชฎเชนเชคเซเชตเชจเซเช‚ เช›เซ‡ เชคเซ‡ เช›เซ‡ เช•เซ‡ เชคเซ‡เช“ เชชเซเชฐเชพเชชเซเชค เชธเซ‡เชตเชพเช“ เชคเชฐเชซเชฅเซ€ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชชเซเชฐเชคเชฟเชธเชพเชฆ เชฎเซ‡เชณเชตเซ‡ เช›เซ‡. เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเชจเซ‡ เชชเซเชฐเชฎเชพเชฃเชฟเชค เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เชเช• เช•เชจเซเชŸเซ‡เชจเชฐ เชšเซ‹เช•เซเช•เชธ เชซเซ‹เชฐเซเชฎเซ‡เชŸเชฎเชพเช‚ เชชเซเชฐเชคเชฟเชธเชพเชฆเชจเซ€ เช…เชชเซ‡เช•เซเชทเชพ เชฐเชพเช–เซ€เชจเซ‡ เชฌเซ€เชœเชพเชจเซ‡ HTTP เชตเชฟเชจเช‚เชคเซ€ เชฎเซ‹เช•เชฒเซ‡ เช›เซ‡ - เชฌเชธ. PythonJS เชตเชฟเชจเช‚เชคเซ€ เชชเชฐ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เชชเชฃ เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡, เช…เชจเซ‡ Python Flask เชชเซเชฐเชคเชฟเชธเชพเชฆ เช†เชชเซ€ เชถเช•เซ‡ เช›เซ‡. เช•เชจเซเชŸเซ‡เชจเชฐ เชเช•เชฌเซ€เชœเชพ เชธเชพเชฅเซ‡ เช›เซเชชเชพเชฏเซ‡เชฒเชพ เชธเชฎเชพเชตเชฟเชทเซเชŸเซ‹ เชธเชพเชฅเซ‡ เชฌเซเชฒเซ‡เช• เชฌเซ‹เช•เซเชธ เชœเซ‡เชตเชพ เช›เซ‡. เชœเซ‹ เช•เซ‡, NOP เชธเชฟเชฆเซเชงเชพเช‚เชค เชฎเชพเชŸเซ‡ เชฆเชฐเซ‡เช• เชธเซ‡เชตเชพเชจเซ‡ เชฌเชนเซเชตเชฟเชง API เชเชจเซเชกเชชเซ‹เช‡เชจเซเชŸเซเชธเชจเซ‹ เชชเชฐเซเชฆเชพเชซเชพเชถ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ เชœเซ‡ เชฆเชฐเซเชถเชพเชตเซ‡ เช›เซ‡ เช•เซ‡ เชคเซ‡ เช•เซ‡เชŸเชฒเซเช‚ เชธเซเชตเชธเซเชฅ เช›เซ‡, เชคเซ‡เชฎเชœ เชคเซ‡เชจเซ€ เชคเซˆเชฏเชพเชฐเซ€ เช…เชจเซ‡ เช–เชพเชฎเซ€ เชธเชนเชจเชถเซ€เชฒเชคเชพ เชธเซเชฅเชฟเชคเชฟ. เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชฐเซ‚เชŸเซ€เช‚เช— เช…เชจเซ‡ เชฒเซ‹เชก เชฌเซ‡เชฒเซ‡เชจเซเชธเชฟเช‚เช— เชฎเชพเชŸเซ‡เชจเชพ เช†เช—เชณเชจเชพ เชชเช—เชฒเชพเช“ เชชเชฐ เชตเชฟเชšเชพเชฐ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช† เชธเซ‚เชšเช•เชพเช‚เช•เซ‹เชจเซ€ เชตเชฟเชจเช‚เชคเซ€ เช•เชฐเซ‡ เช›เซ‡.

เชธเชพเชฐเซ€ เชฐเซ€เชคเซ‡ เชกเชฟเชเชพเช‡เชจ เช•เชฐเซ‡เชฒ เช•เซเชฒเชพเช‰เชก เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชชเซเชฐเชฎเชพเชฃเชญเซ‚เชค I/O เชธเซเชŸเซเชฐเซ€เชฎเซเชธ STDERR เช…เชจเซ‡ STDOUT เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชคเซ‡เชจเซ€ เชฎเซเช–เซเชฏ เช‡เชตเซ‡เชจเซเชŸเซเชธเชจเซ‡ เชฒเซ‰เช— เช•เชฐเซ‡ เช›เซ‡. เช†เช—เชณ เชเช• เชธเชนเชพเชฏเช• เชธเซ‡เชตเชพ เช†เชตเซ‡ เช›เซ‡, เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡ เชซเชพเช‡เชฒเชฌเซ€เชŸ, เชฒเซ‹เช—เชธเซเชŸเซ‡เชถ เช…เชฅเชตเชพ เชซเซเชฒเซเชเชจเซเชŸเชก, เช•เซ‡เชจเซเชฆเซเชฐเชฟเชฏ เชฎเซ‹เชจเชฟเชŸเชฐเชฟเช‚เช— เชธเชฟเชธเซเชŸเชฎ (เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡ เชชเซเชฐเซ‹เชฎเชฟเชฅเชฟเชฏเชธ) เช…เชจเซ‡ เชฒเซ‹เช— เช•เชฒเซ‡เช•เซเชถเชจ เชธเชฟเชธเซเชŸเชฎ (ELK เชธเซ‹เชซเซเชŸเชตเซ‡เชฐ เชธเซเชฏเซเชŸ) เชชเชฐ เชฒเซ‹เช— เชชเชนเซ‹เช‚เชšเชพเชกเซ‡ เช›เซ‡. เชจเซ€เชšเซ‡เชจเซ‹ เช†เช•เซƒเชคเชฟ เชฌเชคเชพเชตเซ‡ เช›เซ‡ เช•เซ‡ เช†เชฐเซ‹เช—เซเชฏ เชชเชฐเซ€เช•เซเชทเชฃ เชชเซ‡เชŸเชฐเซเชจ เช…เชจเซ‡ เช‰เชšเซเชš เช…เชตเชฒเซ‹เช•เชจเช•เซเชทเชฎเชคเชพ เชธเชฟเชฆเซเชงเชพเช‚เชค เช…เชจเซเชธเชพเชฐ เช•เซเชฒเชพเช‰เชก เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช•เชพเชฐเซเชฏ เช•เชฐเซ‡ เช›เซ‡.

เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เช•เชจเซเชŸเซ‡เชจเชฐ เชฎเชพเชŸเซ‡ เชถเซเชฐเซ‡เชทเซเช  เชชเชฆเซเชงเชคเชฟเช“: เช†เชฐเซ‹เช—เซเชฏ เชคเชชเชพเชธเซ‹

เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธเชฎเชพเช‚ เชนเซ‡เชฒเซเชฅ เชšเซ‡เช• เชชเซ‡เชŸเชฐเซเชจ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชฒเชพเช—เซ เช•เชฐเชตเซ€?

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

เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เช•เชจเซเชŸเซ‡เชจเชฐ เชฎเชพเชŸเซ‡ เชถเซเชฐเซ‡เชทเซเช  เชชเชฆเซเชงเชคเชฟเช“: เช†เชฐเซ‹เช—เซเชฏ เชคเชชเชพเชธเซ‹

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

LivenessProbe

เชฆเชฐเชฎเชฟเชฏเชพเชจ เชœเซ€เชตเช‚เชคเชคเชพเชชเซเชฐเซ‹เชฌ เช•เซเชฌเซ‡เชฒเซ‡เชŸ 3 เชชเซเชฐเช•เชพเชฐเชจเซ€ เชคเชชเชพเชธ เช•เชฐเซ‡ เช›เซ‡: เชฎเชพเชคเซเชฐ เชชเซ‹เชก เชšเชพเชฒเซ€ เชฐเชนเซเชฏเซเช‚ เช›เซ‡ เช•เซ‡ เช•เซ‡เชฎ เชคเซ‡ เชจเช•เซเช•เซ€ เช•เชฐเชคเซเช‚ เชจเชฅเซ€, เชชเชฃ เชคเซ‡ เชตเชฟเชจเช‚เชคเซ€เช“ เชชเซเชฐเชพเชชเซเชค เช•เชฐเชตเชพ เช…เชจเซ‡ เชชเชฐเซเชฏเชพเชชเซเชค เชฐเซ€เชคเซ‡ เชชเซเชฐเชคเชฟเชธเชพเชฆ เช†เชชเชตเชพ เชฎเชพเชŸเซ‡ เชคเซˆเชฏเชพเชฐ เช›เซ‡ เช•เซ‡ เช•เซ‡เชฎ เชคเซ‡ เชชเชฃ เชจเช•เซเช•เซ€ เช•เชฐเซ‡ เช›เซ‡:

  • เชชเซ‹เชก เชชเชฐ HTTP เชตเชฟเชจเช‚เชคเซ€ เชธเซ‡เชŸ เช•เชฐเซ‹. เชชเซเชฐเชคเชฟเชญเชพเชตเชฎเชพเช‚ 200 เชฅเซ€ 399 เชจเซ€ เชฐเซ‡เชจเซเชœเชฎเชพเช‚ HTTP เชชเซเชฐเชคเชฟเชธเชพเชฆ เช•เซ‹เชก เชนเซ‹เชตเซ‹ เช†เชตเชถเซเชฏเช• เช›เซ‡. เช†เชฎ, 5xx เช…เชจเซ‡ 4xx เช•เซ‹เชก เชธเช‚เช•เซ‡เชค เช†เชชเซ‡ เช›เซ‡ เช•เซ‡ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เชšเชพเชฒเซ€ เชฐเชนเซ€ เชนเซ‹เชตเชพ เช›เชคเชพเช‚ เชชเซ‹เชกเชฎเชพเช‚ เชธเชฎเชธเซเชฏเชพ เช†เชตเซ€ เชฐเชนเซ€ เช›เซ‡.
  • เชฌเชฟเชจ-HTTP เชธเซ‡เชตเชพเช“ (เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชชเซ‹เชธเซเชŸเชซเชฟเช•เซเชธ เชฎเซ‡เช‡เชฒ เชธเชฐเซเชตเชฐ) เชธเชพเชฅเซ‡ เชชเซ‹เชกเซเชธเชจเซเช‚ เชชเชฐเซ€เช•เซเชทเชฃ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เชคเชฎเชพเชฐเซ‡ TCP เช•เชจเซ‡เช•เซเชถเชจ เชธเซเชฅเชพเชชเชฟเชค เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡.
  • เชชเซ‹เชก (เช†เช‚เชคเชฐเชฟเช• เชฐเซ€เชคเซ‡) เชฎเชพเชŸเซ‡ เชฎเชจเชธเซเชตเซ€ เช†เชฆเซ‡เชถ เชšเชฒเชพเชตเซ‹. เชœเซ‹ เช†เชฆเซ‡เชถ เชชเซ‚เชฐเซเชฃเชคเชพ เช•เซ‹เชก 0 เชนเซ‹เชฏ เชคเซ‹ เชšเซ‡เช• เชธเชซเชณ เช—เชฃเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡.

เช† เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช•เชพเชฐเซเชฏ เช•เชฐเซ‡ เช›เซ‡ เชคเซ‡เชจเซเช‚ เช‰เชฆเชพเชนเชฐเชฃ. เช†เช—เชณเชจเซ€ เชชเซ‹เชก เชตเซเชฏเชพเช–เซเชฏเชพเชฎเชพเช‚ เชจเซ‹เชกเชœเซ‡เชเชธ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เช›เซ‡ เชœเซ‡ HTTP เชตเชฟเชจเช‚เชคเซ€เช“ เชชเชฐ 500 เชญเซ‚เชฒ เชซเซ‡เช‚เช•เซ‡ เช›เซ‡. เช†เชตเซ€ เชญเซ‚เชฒ เชชเซเชฐเชพเชชเซเชค เช•เชฐเชคเซ€ เชตเช–เชคเซ‡ เช•เชจเซเชŸเซ‡เชจเชฐ เชชเซเชจเชƒเชชเซเชฐเชพเชฐเช‚เชญ เชฅเชพเชฏ เช›เซ‡ เชคเซ‡เชจเซ€ เช–เชพเชคเชฐเซ€ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เช…เชฎเซ‡ livenessProbe เชชเชฐเชฟเชฎเชพเชฃเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เช เช›เซ€เช:

apiVersion: v1
kind: Pod
metadata:
 name: node500
spec:
 containers:
   - image: magalix/node500
     name: node500
     ports:
       - containerPort: 3000
         protocol: TCP
     livenessProbe:
       httpGet:
         path: /
         port: 3000
       initialDelaySeconds: 5

เช† เช…เชจเซเชฏ เช•เซ‹เชˆเชชเชฃ เชชเซ‹เชก เชตเซเชฏเชพเช–เซเชฏเชพเชฅเซ€ เช…เชฒเช— เชจเชฅเซ€, เชชเชฐเช‚เชคเซ เช…เชฎเซ‡ เชเช• เช‘เชฌเซเชœเซ‡เช•เซเชŸ เช‰เชฎเซ‡เชฐเซ€ เชฐเชนเซเชฏเชพ เช›เซ€เช .spec.containers.livenessProbe. เชชเชฐเชฟเชฎเชพเชฃ httpGet เชœเซ‡ เชชเชพเชฅ เชชเชฐ HTTP GET เชตเชฟเชจเช‚เชคเซ€ เชฎเซ‹เช•เชฒเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ เชคเซ‡ เชธเซเชตเซ€เช•เชพเชฐเซ‡ เช›เซ‡ (เช…เชฎเชพเชฐเชพ เช‰เชฆเชพเชนเชฐเชฃเชฎเชพเช‚ เช† เช›เซ‡ /, เชชเชฐเช‚เชคเซ เชฒเชกเชพเช‡เชจเชพ เชธเช‚เชœเซ‹เช—เซ‹เชฎเชพเช‚ เชเชตเซเช‚ เช•เช‚เชˆเช• เชนเซ‹เชˆ เชถเช•เซ‡ เช›เซ‡ /api/v1/status). เช…เชจเซเชฏ livenessProbe เชชเชฐเชฟเชฎเชพเชฃ เชธเซเชตเซ€เช•เชพเชฐเซ‡ เช›เซ‡ initialDelaySeconds, เชœเซ‡ เชตเซ‡เชฐเชฟเชซเชฟเช•เซ‡เชถเชจ เช‘เชชเชฐเซ‡เชถเชจเชจเซ‡ เชจเชฟเชฐเซเชฆเชฟเชทเซเชŸ เชธเช‚เช–เซเชฏเชพเชฎเชพเช‚ เชธเซ‡เช•เช‚เชก เชฐเชพเชน เชœเซ‹เชตเชพเชจเซ€ เชธเซ‚เชšเชจเชพ เช†เชชเซ‡ เช›เซ‡. เชตเชฟเชฒเช‚เชฌ เชœเชฐเซ‚เชฐเซ€ เช›เซ‡ เช•เชพเชฐเชฃ เช•เซ‡ เช•เชจเซเชŸเซ‡เชจเชฐเชจเซ‡ เชถเชฐเซ‚ เชฅเชตเชพ เชฎเชพเชŸเซ‡ เชธเชฎเชฏเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡, เช…เชจเซ‡ เชœเซเชฏเชพเชฐเซ‡ เชชเซเชจเชƒเชชเซเชฐเชพเชฐเช‚เชญ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เชคเซเชฏเชพเชฐเซ‡ เชคเซ‡ เชฅเซ‹เชกเชพ เชธเชฎเชฏ เชฎเชพเชŸเซ‡ เช…เชจเซเชชเชฒเชฌเซเชง เชฐเชนเซ‡เชถเซ‡.

เช† เชธเซ‡เชŸเชฟเช‚เช—เชจเซ‡ เช•เซเชฒเชธเซเชŸเชฐ เชชเชฐ เชฒเชพเช—เซ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เช†เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‹:

kubectl apply -f pod.yaml

เชฅเซ‹เชกเซ€เช• เชธเซ‡เช•เชจเซเชกเซ‹ เชชเช›เซ€, เชคเชฎเซ‡ เชจเซ€เชšเซ‡เชจเชพ เช†เชฆเซ‡เชถเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชชเซ‹เชกเชจเซ€ เชธเชพเชฎเช—เซเชฐเซ€เชจเซ‡ เชšเช•เชพเชธเซ€ เชถเช•เซ‹ เช›เซ‹:

kubectl describe pods node500

เช†เช‰เชŸเชชเซเชŸเชจเชพ เช…เช‚เชคเซ‡, เชถเซ‹เชงเซ‹ เชคเซ‡ เชถเซเช‚ เช›เซ‡.

เชœเซ‡เชฎ เชคเชฎเซ‡ เชœเซ‹เชˆ เชถเช•เซ‹ เช›เซ‹, livenessProbe เช HTTP GET เชตเชฟเชจเช‚เชคเซ€ เชถเชฐเซ‚ เช•เชฐเซ€, เช•เชจเซเชŸเซ‡เชจเชฐ เช เชญเซ‚เชฒ 500 เชœเชจเชฐเซ‡เชŸ เช•เชฐเซ€ (เชœเซ‡ เชคเซ‡ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เชนเชคเซเช‚), เช…เชจเซ‡ เช•เซเชฌเซ‡เชฒเซ‡เชŸเซ‡ เชคเซ‡เชจเซ‡ เชชเซเชจเชƒเชถเชฐเซ‚ เช•เชฐเซเชฏเซเช‚.

เชœเซ‹ เชคเชฎเซ‡ เช†เชถเซเชšเชฐเซเชฏ เชชเชพเชฎเซ€ เชฐเชนเซเชฏเชพเช‚ เช›เซ‹ เช•เซ‡ NideJS เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชนเชคเซ€, เชคเซ‹ เช…เชนเซ€เช‚ app.js เช…เชจเซ‡ Dockerfile เช›เซ‡ เชœเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซ‹ เชนเชคเซ‹:

app.js

var http = require('http');

var server = http.createServer(function(req, res) {
    res.writeHead(500, { "Content-type": "text/plain" });
    res.end("We have run into an errorn");
});

server.listen(3000, function() {
    console.log('Server is running at 3000')
})

เชกเซ‹เช•เชฐเชซเชพเช‡เชฒ

FROM node
COPY app.js /
EXPOSE 3000
ENTRYPOINT [ "node","/app.js" ]

เช† เชจเซ‹เช‚เชงเชตเซเช‚ เช…เช—เชคเซเชฏเชจเซเช‚ เช›เซ‡: livenessProbe เชฎเชพเชคเซเชฐ เช•เชจเซเชŸเซ‡เชจเชฐเชจเซ‡ เชซเชฐเซ€เชฅเซ€ เชถเชฐเซ‚ เช•เชฐเชถเซ‡ เชœเซ‹ เชคเซ‡ เชจเชฟเชทเซเชซเชณ เชœเชพเชฏ. เชœเซ‹ เชชเซเชจเชƒเชชเซเชฐเชพเชฐเช‚เชญ เช เชญเซ‚เชฒเชจเซ‡ เชธเซเชงเชพเชฐเชคเซเช‚ เชจเชฅเซ€ เช•เซ‡ เชœเซ‡ เช•เชจเซเชŸเซ‡เชจเชฐเชจเซ‡ เชšเชพเชฒเชคเชพ เช…เชŸเช•เชพเชตเซ‡ เช›เซ‡, เชคเซ‹ เช•เซเชฌเซ‡เชฒเซ‡เชŸ เชธเชฎเชธเซเชฏเชพเชจเซ‡ เชธเซเชงเชพเชฐเชตเชพ เชฎเชพเชŸเซ‡ เชชเช—เชฒเชพเช‚ เชฒเซ‡เชตเชพ เชฎเชพเชŸเซ‡ เชธเชฎเชฐเซเชฅ เชนเชถเซ‡ เชจเชนเซ€เช‚.

เชคเซˆเชฏเชพเชฐเซ€ เชคเชชเชพเชธ

เชฐเซ‡เชกเซ€เชจเซ‡เชธเชชเซเชฐเซ‹เชฌ เชฎเซเชถเซเช•เซ‡เชฒเซ€เชจเชฟเชตเชพเชฐเชฃ เช•เซเชฐเชฟเชฏเชพเช“ เชธเชฟเชตเชพเชฏ, livenessProbes (GET เชตเชฟเชจเช‚เชคเซ€เช“, TCP เชธเช‚เชšเชพเชฐ เช…เชจเซ‡ เช†เชฆเซ‡เชถ เช…เชฎเชฒเซ€เช•เชฐเชฃ) เชจเซ€ เชœเซ‡เชฎ เชœ เช•เชพเชฎ เช•เชฐเซ‡ เช›เซ‡. เช•เชจเซเชŸเซ‡เชจเชฐ เช•เซ‡ เชœเซ‡เชฎเชพเช‚ เชจเชฟเชทเซเชซเชณเชคเชพ เชฎเชณเซ€ เช›เซ‡ เชคเซ‡ เชชเซเชจเชƒเชชเซเชฐเชพเชฐเช‚เชญ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเชคเซเช‚ เชจเชฅเซ€, เชชเชฐเช‚เชคเซ เช†เชตเชจเชพเชฐเชพ เชŸเซเชฐเชพเชซเชฟเช•เชฅเซ€ เช…เชฒเช— เช›เซ‡. เช•เชฒเซเชชเชจเชพ เช•เชฐเซ‹ เช•เซ‡ เชเช• เช•เชจเซเชŸเซ‡เชจเชฐ เช˜เชฃเซ€ เชฌเชงเซ€ เช—เชฃเชคเชฐเซ€เช“ เช•เชฐเซ€ เชฐเชนเซเชฏเซเช‚ เช›เซ‡ เช…เชฅเชตเชพ เชญเชพเชฐเซ‡ เชญเชพเชฐ เชนเซ‡เช เชณ เช›เซ‡, เชœเซ‡เชจเชพ เช•เชพเชฐเชฃเซ‡ เชชเซเชฐเชคเชฟเชธเชพเชฆเชจเซ‹ เชธเชฎเชฏ เชตเชงเซ€ เชฐเชนเซเชฏเซ‹ เช›เซ‡. livenessProbe เชจเชพ เช•เชฟเชธเซเชธเชพเชฎเชพเช‚, เชชเซเชฐเชคเชฟเชญเชพเชต เช‰เชชเชฒเชฌเซเชงเชคเชพ เชคเชชเชพเชธ เชŸเซเชฐเชฟเช—เชฐ เชฅเชพเชฏ เช›เซ‡ (เชธเชฎเชฏเช†เช‰เชŸ เชธเซ‡เช•เชจเซเชก เชšเซ‡เช• เชชเซ‡เชฐเชพเชฎเซ€เชŸเชฐ เชฆเซเชตเชพเชฐเชพ), เชœเซ‡ เชชเช›เซ€ เช•เซเชฏเซเชฌเซ‡เชฒเซ‡เชŸ เช•เชจเซเชŸเซ‡เชจเชฐเชจเซ‡ เชชเซเชจเชƒเชชเซเชฐเชพเชฐเช‚เชญ เช•เชฐเซ‡ เช›เซ‡. เชœเซเชฏเชพเชฐเซ‡ เชถเชฐเซ‚ เชฅเชพเชฏ เช›เซ‡, เชคเซเชฏเชพเชฐเซ‡ เช•เชจเซเชŸเซ‡เชจเชฐ เชธเช‚เชธเชพเชงเชจ-เชธเช˜เชจ เช•เชพเชฐเซเชฏเซ‹ เช•เชฐเชตเชพเชจเซเช‚ เชถเชฐเซ‚ เช•เชฐเซ‡ เช›เซ‡ เช…เชจเซ‡ เชซเชฐเซ€เชฅเซ€ เชถเชฐเซ‚ เชฅเชพเชฏ เช›เซ‡. เช† เชเชชเซเชฒเซ€เช•เซ‡เชถเชจเซ‹ เชฎเชพเชŸเซ‡ เชฎเชนเชคเซเชตเชชเซ‚เชฐเซเชฃ เชนเซ‹เชˆ เชถเช•เซ‡ เช›เซ‡ เชœเซ‡เชจเซ‡ เชชเซเชฐเชคเชฟเชญเชพเชต เช—เชคเชฟเชจเซ€ เชœเชฐเซ‚เชฐ เชนเซ‹เชฏ เช›เซ‡. เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชœเซเชฏเชพเชฐเซ‡ เช•เชพเชฐ เชฐเชธเซเชคเชพ เชชเชฐ เชธเชฐเซเชตเชฐ เชคเชฐเชซเชฅเซ€ เชชเซเชฐเชคเชฟเชธเชพเชฆเชจเซ€ เชฐเชพเชน เชœเซ‹เชˆ เชฐเชนเซ€ เช›เซ‡, เชชเซเชฐเชคเชฟเชธเชพเชฆเชฎเชพเช‚ เชตเชฟเชฒเช‚เชฌ เชฅเชพเชฏ เช›เซ‡ - เช…เชจเซ‡ เช•เชพเชฐ เช…เช•เชธเซเชฎเชพเชคเชฎเชพเช‚ เชชเชกเซ‡ เช›เซ‡.

เชšเชพเชฒเซ‹ เชเช• เชฐเซ‡เชกเซ€เชจเซ‡เชธเชชเซเชฐเซ‹เชฌ เชตเซเชฏเชพเช–เซเชฏเชพ เชฒเช–เซ€เช เชœเซ‡ GET เชตเชฟเชจเช‚เชคเซ€เชจเชพ เชชเซเชฐเชคเชฟเชญเชพเชต เชธเชฎเชฏเชจเซ‡ เชฌเซ‡ เชธเซ‡เช•เชจเซเชกเชฅเซ€ เชตเชงเซ เชจเชนเซ€เช‚ เชธเซ‡เชŸ เช•เชฐเชถเซ‡, เช…เชจเซ‡ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ 5 เชธเซ‡เช•เชจเซเชก เชชเช›เซ€ GET เชตเชฟเชจเช‚เชคเซ€เชจเซ‹ เชชเซเชฐเชคเชฟเชธเชพเชฆ เช†เชชเชถเซ‡. pod.yaml เชซเชพเช‡เชฒ เช†เชจเชพ เชœเซ‡เชตเซ€ เชนเซ‹เชตเซ€ เชœเซ‹เชˆเช:

apiVersion: v1
kind: Pod
metadata:
 name: nodedelayed
spec:
 containers:
   - image: afakharany/node_delayed
     name: nodedelayed
     ports:
       - containerPort: 3000
         protocol: TCP
     readinessProbe:
       httpGet:
         path: /
         port: 3000
       timeoutSeconds: 2

เชšเชพเชฒเซ‹ kubectl เชธเชพเชฅเซ‡ เชชเซ‹เชก เช—เซ‹เช เชตเซ€เช:

kubectl apply -f pod.yaml

เชšเชพเชฒเซ‹ เชฅเซ‹เชกเซ€ เชธเซ‡เช•เช‚เชก เชฐเชพเชน เชœเซ‹เชˆเช เช…เชจเซ‡ เชชเช›เซ€ เชœเซ‹เชˆเช เช•เซ‡ เชฐเซ‡เชกเซ€เชจเซ‡เชธเชชเซเชฐเซ‹เชฌ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช•เชพเชฎ เช•เชฐเซ‡ เช›เซ‡:

kubectl describe pods nodedelayed

เช†เช‰เชŸเชชเซเชŸเชจเชพ เช…เช‚เชคเซ‡ เชคเชฎเซ‡ เชœเซ‹เชˆ เชถเช•เซ‹ เช›เซ‹ เช•เซ‡ เช•เซ‡เชŸเชฒเซ€เช• เช˜เชŸเชจเชพเช“ เชธเชฎเชพเชจ เช›เซ‡ เช† เชเช•.

เชœเซ‡เชฎ เชคเชฎเซ‡ เชœเซ‹เชˆ เชถเช•เซ‹ เช›เซ‹, เชœเซเชฏเชพเชฐเซ‡ เชšเซ‡เช•เชจเซ‹ เชธเชฎเชฏ 2 เชธเซ‡เช•เชจเซเชกเชฅเซ€ เชตเชงเซ€ เช—เชฏเซ‹ เชคเซเชฏเชพเชฐเซ‡ kubectl เชชเซ‹เชกเชจเซ‡ เชชเซเชจเชƒเชชเซเชฐเชพเชฐเช‚เชญ เช•เชฐเชคเซเช‚ เชจเชฅเซ€. เชคเซ‡เชจเชพ เชฌเชฆเชฒเซ‡, เชคเซ‡เชฃเซ‡ เชตเชฟเชจเช‚เชคเซ€ เชฐเชฆ เช•เชฐเซ€. เช‡เชจเช•เชฎเชฟเช‚เช— เช•เซ‹เชฎเซเชฏเซเชจเชฟเช•เซ‡เชถเชจเซเชธ เช…เชจเซเชฏ, เชตเชฐเซเช•เชฟเช‚เช— เชชเซ‹เชกเซเชธ เชชเชฐ เชฐเซ€เชกเชพเชฏเชฐเซ‡เช•เซเชŸ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡.

เชจเซ‹เช‚เชง เช•เชฐเซ‹ เช•เซ‡ เชนเชตเซ‡ เชœเซเชฏเชพเชฐเซ‡ เชชเซ‹เชก เช“เชซเชฒเซ‹เชก เชฅเชˆ เช—เชฏเซเช‚ เช›เซ‡, เชคเซเชฏเชพเชฐเซ‡ kubectl เชคเซ‡เชจเซ‡ เชซเชฐเซ€เชฅเซ€ เชตเชฟเชจเช‚เชคเซ€ เช•เชฐเซ‡ เช›เซ‡: GET เชตเชฟเชจเช‚เชคเซ€เช“เชจเชพ เชœเชตเชพเชฌเซ‹เชฎเชพเช‚ เชนเชตเซ‡ เชตเชฟเชฒเช‚เชฌ เชฅเชคเซ‹ เชจเชฅเซ€.

เชธเชฐเช–เชพเชฎเชฃเซ€ เชฎเชพเชŸเซ‡, เชจเซ€เชšเซ‡ เชธเช‚เชถเซ‹เชงเชฟเชค app.js เชซเชพเช‡เชฒ เช›เซ‡:

var http = require('http');

var server = http.createServer(function(req, res) {
   const sleep = (milliseconds) => {
       return new Promise(resolve => setTimeout(resolve, milliseconds))
   }
   sleep(5000).then(() => {
       res.writeHead(200, { "Content-type": "text/plain" });
       res.end("Hellon");
   })
});

server.listen(3000, function() {
   console.log('Server is running at 3000')
})

TL; DR
เช•เซเชฒเชพเช‰เชก เชเชชเซเชฒเซ€เช•เซ‡เชถเชจเชจเชพ เช†เช—เชฎเชจ เชชเชนเซ‡เชฒเชพ, เชฒเซ‰เช— เช เชเชชเซเชฒเซ€เช•เซ‡เชถเชจเชจเชพ เช†เชฐเซ‹เช—เซเชฏเชจเซ€ เชฆเซ‡เช–เชฐเซ‡เช– เช…เชจเซ‡ เชคเชชเชพเชธเชจเซเช‚ เชชเซเชฐเชพเชฅเชฎเชฟเช• เชฎเชพเชงเซเชฏเชฎ เชนเชคเซเช‚. เชœเซ‹ เช•เซ‡, เช•เซ‹เชˆ เชธเซเชงเชพเชฐเชพเชคเซเชฎเช• เชชเช—เชฒเชพเช‚ เชฒเซ‡เชตเชพเชจเซเช‚ เช•เซ‹เชˆ เชธเชพเชงเชจ เชจเชนเซ‹เชคเซเช‚. เชฒเซ‰เช—เซเชธ เช†เชœเซ‡ เชชเชฃ เช‰เชชเชฏเซ‹เช—เซ€ เช›เซ‡; เช•เชŸเซ‹เช•เชŸเซ€เชจเซ€ เชชเชฐเชฟเชธเซเชฅเชฟเชคเชฟเช“เชจเซเช‚ เชชเซƒเชฅเซเชฅเช•เชฐเชฃ เช•เชฐเชตเชพ เช…เชจเซ‡ เชจเชฟเชฐเซเชฃเชฏเซ‹ เชฒเซ‡เชตเชพ เชฎเชพเชŸเซ‡ เชคเซ‡เชจเซ‡ เชเช•เชคเซเชฐเชฟเชค เช•เชฐเซ€เชจเซ‡ เชฒเซ‹เช— เช•เชฒเซ‡เช•เซเชถเชจ เชธเชฟเชธเซเชŸเชฎเชฎเชพเช‚ เชฎเซ‹เช•เชฒเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡. [เช† เชฌเชงเซเช‚ เชฎเซ‹เชจเชฟเชŸเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เช•เซเชฒเชพเช‰เชก เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชตเชฟเชจเชพ เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡, เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชชเชฐเช‚เชคเซ k8s เชธเชพเชฅเซ‡ เชคเซ‡ เช–เซ‚เชฌ เชธเชฐเชณ เชฌเชจเซเชฏเซเช‚ :) - เชธเช‚เชชเชพเชฆเช•เชจเซ€ เชจเซ‹เช‚เชง. ]

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

เช•เซเชฌเชฐเชจเซ‡เชŸเซเชธ เชฎเซ‚เชณเชญเซ‚เชค เชฐเซ€เชคเซ‡ 2 เชชเซเชฐเช•เชพเชฐเชจเซ€ เช†เชฐเซ‹เช—เซเชฏ เชคเชชเชพเชธเซ‹ เช“เชซเชฐ เช•เชฐเซ‡ เช›เซ‡: เชฐเซ‡เชกเซ€เชจเซ‡เชธเชชเซเชฐเซ‹เชฌ เช…เชจเซ‡ เชฒเชพเช‡เชตเชจเซ‡เชธเชชเซเชฐเซ‹เชฌ. เชฌเช‚เชจเซ‡ เชเช• เชœ เชชเซเชฐเช•เชพเชฐเชจเชพ เชšเซ‡เช•เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‡ เช›เซ‡ (HTTP GET เชตเชฟเชจเช‚เชคเซ€เช“, TCP เชธเช‚เชšเชพเชฐ เช…เชจเซ‡ เช†เชฆเซ‡เชถ เช…เชฎเชฒ). เชถเซ€เช‚เช—เซ‹เชฎเชพเช‚ เชธเชฎเชธเซเชฏเชพเช“เชจเชพ เชœเชตเชพเชฌเชฎเชพเช‚ เชคเซ‡เช“ เช•เชฏเชพ เชจเชฟเชฐเซเชฃเชฏเซ‹ เชฒเซ‡ เช›เซ‡ เชคเซ‡เชฎเชพเช‚ เชคเซ‡เช“ เช…เชฒเช— เชชเชกเซ‡ เช›เซ‡. livenessProbe เช เช†เชถเชพ เชธเชพเชฅเซ‡ เช•เชจเซเชŸเซ‡เชจเชฐเชจเซ‡ เชชเซเชจเชƒเชชเซเชฐเชพเชฐเช‚เชญ เช•เชฐเซ‡ เช›เซ‡ เช•เซ‡ เชญเซ‚เชฒ เชซเชฐเซ€เชฅเซ€ เชฅเชถเซ‡ เชจเชนเซ€เช‚, เช…เชจเซ‡ เชฐเซ‡เชกเซ€เชจเซ‡เชธเชชเซเชฐเซ‹เชฌ เชธเชฎเชธเซเชฏเชพเชจเซเช‚ เช•เชพเชฐเชฃ เช‰เช•เซ‡เชฒเชพเชฏ เชคเซเชฏเชพเช‚ เชธเซเชงเซ€ เชชเซ‹เชกเชจเซ‡ เช‡เชจเช•เชฎเชฟเช‚เช— เชŸเซเชฐเชพเชซเชฟเช•เชฅเซ€ เช…เชฒเช— เชฐเชพเช–เซ‡ เช›เซ‡.

เชฏเซ‹เช—เซเชฏ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชกเชฟเชเชพเช‡เชจเชฎเชพเช‚ เชฌเช‚เชจเซ‡ เชชเซเชฐเช•เชพเชฐเชจเซ€ เชšเช•เชพเชธเชฃเซ€เชจเซ‹ เชธเชฎเชพเชตเซ‡เชถ เชฅเชตเซ‹ เชœเซ‹เชˆเช เช…เชจเซ‡ เช–เชพเชคเชฐเซ€ เช•เชฐเซ‹ เช•เซ‡ เชคเซ‡เช“ เชชเซ‚เชฐเชคเซ‹ เชกเซ‡เชŸเชพ เชเช•เชคเซเชฐเชฟเชค เช•เชฐเซ‡ เช›เซ‡, เช–เชพเชธ เช•เชฐเซ€เชจเซ‡ เชœเซเชฏเชพเชฐเซ‡ เช…เชชเชตเชพเชฆ เชซเซ‡เช‚เช•เชตเชพเชฎเชพเช‚ เช†เชตเซ‡. เชคเซ‡ เชœเชฐเซ‚เชฐเซ€ เชเชชเซ€เช†เชˆ เชเชจเซเชกเชชเซ‹เชˆเชจเซเชŸเซเชธ เชชเชฃ เชฆเชฐเซเชถเชพเชตเชตเชพ เชœเซ‹เชˆเช เชœเซ‡ เชฎเชนเชคเซเชตเชชเซ‚เชฐเซเชฃ เช†เชฐเซ‹เช—เซเชฏ เชฎเซ‡เชŸเซเชฐเชฟเช•เซเชธ เชธเชพเชฅเซ‡ เชฎเซ‹เชจเชฟเชŸเชฐเชฟเช‚เช— เชธเชฟเชธเซเชŸเชฎ (เชชเซเชฐเซ‹เชฎเชฟเชฅเชฟเชฏเชธ) เชชเซเชฐเชฆเชพเชจ เช•เชฐเซ‡ เช›เซ‡.

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

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