เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจ•เฉฐเจŸเฉ‡เจจเจฐเจพเจ‚ เจฒเจˆ เจตเจงเฉ€เจ† เจ…เจญเจฟเจ†เจธ: เจธเจฟเจนเจค เจœเจพเจ‚เจš

เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจ•เฉฐเจŸเฉ‡เจจเจฐเจพเจ‚ เจฒเจˆ เจตเจงเฉ€เจ† เจ…เจญเจฟเจ†เจธ: เจธเจฟเจนเจค เจœเจพเจ‚เจš

TL; เจกเจพ

  • เจ•เฉฐเจŸเฉ‡เจจเจฐเจพเจ‚ เจ…เจคเฉ‡ เจฎเจพเจˆเจ•เฉเจฐเฉ‹ เจธเจฐเจตเจฟเจธเจฟเจœเจผ เจฆเฉ€ เจ‰เฉฑเจš เจจเจฟเจฐเฉ€เจ–เจฃเจฏเฉ‹เจ—เจคเจพ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจฒเจˆ, เจฒเจพเจ— เจ…เจคเฉ‡ เจชเฉเจฐเจพเจ‡เจฎเจฐเฉ€ เจฎเฉˆเจŸเฉเจฐเจฟเจ•เจธ เจ•เจพเจซเจผเฉ€ เจจเจนเฉ€เจ‚ เจนเจจเฅค
  • เจคเฉ‡เจœเจผเฉ€ เจจเจพเจฒ เจฐเจฟเจ•เจตเจฐเฉ€ เจ…เจคเฉ‡ เจตเจงเฉ€ เจนเฉ‹เจˆ เจฒเจšเจ•เจคเจพ เจฒเจˆ, เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚ เจจเฉ‚เฉฐ เจ‰เฉฑเจš เจจเจฟเจฐเฉ€เจ–เจฃเจฏเฉ‹เจ—เจคเจพ เจธเจฟเจงเจพเจ‚เจค (HOP) เจจเฉ‚เฉฐ เจฒเจพเจ—เฉ‚ เจ•เจฐเจจเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆเฅค
  • เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจชเฉฑเจงเจฐ 'เจคเฉ‡, NOP เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ: เจธเจนเฉ€ เจฒเจพเจ—เจฟเฉฐเจ—, เจจเจœเจผเจฆเฉ€เจ•เฉ€ เจจเจฟเจ—เจฐเจพเจจเฉ€, เจธเจตเฉฑเจ›เจคเจพ เจœเจพเจ‚เจš, เจ…เจคเฉ‡ เจชเฉเจฐเจฆเจฐเจธเจผเจจ/เจชเจฐเจฟเจตเจฐเจคเจจ เจŸเจฐเฉ‡เจธเจฟเฉฐเจ—เฅค
  • NOR เจฆเฉ‡ เจคเฉฑเจค เจฆเฉ‡ เจคเฉŒเจฐ 'เจคเฉ‡ เจšเฉˆเจ•เจพเจ‚ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเฉ‹ เจคเจฟเจ†เจฐเฉ€ เจชเฉœเจคเจพเจฒ ะธ livenessProbe เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธเฅค

เจนเฉˆเจฒเจฅ เจšเฉˆเฉฑเจ• เจŸเฉˆเจฎเจชเจฒเฉ‡เจŸ เจ•เฉ€ เจนเฉˆ?

เจ‡เฉฑเจ• เจฎเจฟเจธเจผเจจ-เจจเจพเจœเจผเฉเจ• เจ…เจคเฉ‡ เจ‰เฉฑเจš เจ‰เจชเจฒเจฌเจง เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจจเฉ‚เฉฐ เจกเจฟเจœเจผเจพเจˆเจจ เจ•เจฐเจฆเฉ‡ เจธเจฎเฉ‡เจ‚, เจจเฉเจ•เจธ เจธเจนเจฟเจฃเจธเจผเฉ€เจฒเจคเจพ เจตเจฐเจ—เฉ‡ เจชเจนเจฟเจฒเฉ‚ เจฌเจพเจฐเฉ‡ เจธเฉ‹เจšเจฃเจพ เจฌเจนเฉเจค เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจจ เจนเฉˆเฅค เจ‡เฉฑเจ• เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจจเฉ‚เฉฐ เจจเฉเจ•เจธ เจธเจนเจฟเจฃเจธเจผเฉ€เจฒ เจฎเฉฐเจจเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ เจœเฉ‡เจ•เจฐ เจ‡เจน เจ…เจธเจซเจฒเจคเจพ เจคเฉ‹เจ‚ เจœเจฒเจฆเฉ€ เจ เฉ€เจ• เจนเฉ‹ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆเฅค เจ‡เฉฑเจ• เจ†เจฎ เจ•เจฒเจพเจ‰เจก เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจ‡เฉฑเจ• เจฎเจพเจˆเจ•เฉเจฐเฉ‹เจธเจฐเจตเจฟเจธเจฟเจœเจผ เจ†เจฐเจ•เฉ€เจŸเฉˆเจ•เจšเจฐ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ€ เจนเฉˆ - เจœเจฟเฉฑเจฅเฉ‡ เจนเจฐเฉ‡เจ• เจนเจฟเฉฑเจธเฉ‡ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจตเฉฑเจ–เจฐเฉ‡ เจ•เฉฐเจŸเฉ‡เจจเจฐ เจตเจฟเฉฑเจš เจฐเฉฑเจ–เจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค เจ…เจคเฉ‡ เจ‡เจน เจฏเจ•เฉ€เจจเฉ€ เจฌเจฃเจพเจ‰เจฃ เจฒเจˆ เจ•เจฟ k8s 'เจคเฉ‡ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจฌเจนเฉเจค เจœเจผเจฟเจ†เจฆเจพ เจ‰เจชเจฒเจฌเจง เจนเฉˆ เจœเจฆเฉ‹เจ‚ เจคเฉเจธเฉ€เจ‚ เจ‡เฉฑเจ• เจ•เจฒเฉฑเจธเจŸเจฐ เจกเจฟเจœเจผเจพเจˆเจจ เจ•เจฐเจฆเฉ‡ เจนเฉ‹, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ•เฉเจ เจชเฉˆเจŸเจฐเจจเจพเจ‚ เจฆเฉ€ เจชเจพเจฒเจฃเจพ เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆเฅค เจ‰เจจเฉเจนเจพเจ‚ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจนเฉˆเจฒเจฅ เจšเฉˆเฉฑเจ• เจŸเฉˆเจ‚เจชเจฒเฉ‡เจŸ เจนเฉˆเฅค เจ‡เจน เจชเจฐเจฟเจญเจพเจธเจผเจฟเจค เจ•เจฐเจฆเจพ เจนเฉˆ เจ•เจฟ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ k8s เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจธเฉฐเจšเจพเจฐ เจ•เจฐเจฆเฉ€ เจนเฉˆ เจ•เจฟ เจ‡เจน เจธเจฟเจนเจคเจฎเฉฐเจฆ เจนเฉˆเฅค เจ‡เจน เจจเจพ เจธเจฟเจฐเจซเจผ เจ‡เจธ เจฌเจพเจฐเฉ‡ เจœเจพเจฃเจ•เจพเจฐเฉ€ เจนเฉˆ เจ•เจฟ เจ•เฉ€ เจชเฉ‹เจก เจšเฉฑเจฒ เจฐเจฟเจนเจพ เจนเฉˆ, เจธเจ—เฉ‹เจ‚ เจ‡เจน เจตเฉ€ เจ•เจฟ เจ‡เจน เจฌเฉ‡เจจเจคเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจœเจตเจพเจฌ เจฆเจฟเฉฐเจฆเจพ เจนเฉˆเฅค เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจชเฉŒเจก เจฆเฉ€ เจธเจฟเจนเจค เจฌเจพเจฐเฉ‡ เจœเจฟเฉฐเจจเจพ เจœเจผเจฟเจ†เจฆเจพ เจœเจพเจฃเจฆเจพ เจนเฉˆ, เจ‡เจน เจŸเฉเจฐเฉˆเจซเจฟเจ• เจฐเฉ‚เจŸเจฟเฉฐเจ— เจ…เจคเฉ‡ เจฒเฉ‹เจก เจธเฉฐเจคเฉเจฒเจจ เจฌเจพเจฐเฉ‡ เจ‰เจจเฉ‡ เจนเฉ€ เจšเฉเจธเจค เจซเฉˆเจธเจฒเฉ‡ เจฒเฉˆเจ‚เจฆเจพ เจนเฉˆเฅค เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚, เจ‰เฉฑเจš เจจเจฟเจฐเฉ€เจ–เจฃเจฏเฉ‹เจ—เจคเจพ เจธเจฟเจงเจพเจ‚เจค เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจจเฉ‚เฉฐ เจธเจฎเฉ‡เจ‚ เจธเจฟเจฐ เจฌเฉ‡เจจเจคเฉ€เจ†เจ‚ เจฆเจพ เจœเจตเจพเจฌ เจฆเฉ‡เจฃ เจฆเฉ€ เจ†เจ—เจฟเจ† เจฆเจฟเฉฐเจฆเจพ เจนเฉˆเฅค

เจ‰เฉฑเจš เจจเจฟเจฐเฉ€เจ–เจฃเจฏเฉ‹เจ—เจคเจพ เจธเจฟเจงเจพเจ‚เจค (HOP)

เจ‰เฉฑเจš เจจเจฟเจฐเฉ€เจ–เจฃเจฏเฉ‹เจ—เจคเจพ เจฆเจพ เจธเจฟเจงเจพเจ‚เจค เจ‡เฉฑเจ• เจนเฉˆ เจ•เฉฐเจŸเฉ‡เจจเจฐเจพเจˆเจœเจผเจก เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚ เจจเฉ‚เฉฐ เจกเจฟเจœเจผเจพเจˆเจจ เจ•เจฐเจจ เจฒเจˆ เจธเจฟเจงเจพเจ‚เจค. เจ‡เฉฑเจ• เจฎเจพเจˆเจ•เฉเจฐเฉ‹เจธเจฐเจตเจฟเจธเจฟเจœเจผ เจ†เจฐเจ•เฉ€เจŸเฉˆเจ•เจšเจฐ เจตเจฟเฉฑเจš, เจธเฉ‡เจตเจพเจตเจพเจ‚ เจ‡เจธ เจ—เฉฑเจฒ เจฆเฉ€ เจชเจฐเจตเจพเจน เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเฉ€เจ†เจ‚ เจ•เจฟ เจ‰เจนเจจเจพเจ‚ เจฆเฉ€ เจฌเฉ‡เจจเจคเฉ€ เจฆเฉ€ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจ•เจฟเจตเฉ‡เจ‚ เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆ (เจ…เจคเฉ‡ เจธเจนเฉ€ เจคเฉŒเจฐ 'เจคเฉ‡), เจชเจฐ เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจจ เจ—เฉฑเจฒ เจ‡เจน เจนเฉˆ เจ•เจฟ เจ‰เจน เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจตเจพเจฒเฉ€เจ†เจ‚ เจธเฉ‡เจตเจพเจตเจพเจ‚ เจคเฉ‹เจ‚ เจœเจตเจพเจฌ เจ•เจฟเจตเฉ‡เจ‚ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจฆเฉ‡ เจนเจจเฅค เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจ‡เฉฑเจ• เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจจเฉ‚เฉฐ เจชเฉเจฐเจฎเจพเจฃเจฟเจค เจ•เจฐเจจ เจฒเจˆ, เจ‡เฉฑเจ• เจ•เฉฐเจŸเฉ‡เจจเจฐ เจฆเฉ‚เจœเฉ‡ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• HTTP เจฌเฉ‡เจจเจคเฉ€ เจญเฉ‡เจœเจฆเจพ เจนเฉˆ, เจ‡เฉฑเจ• เจ–เจพเจธ เจซเจพเจฐเจฎเฉˆเจŸ เจตเจฟเฉฑเจš เจœเจตเจพเจฌ เจฆเฉ€ เจ‰เจฎเฉ€เจฆ เจ•เจฐเจฆเจพ เจนเฉˆ - เจฌเฉฑเจธ เจ‡เจนเฉ€ เจนเฉˆ. PythonJS เจฌเฉ‡เจจเจคเฉ€ เจฆเฉ€ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจตเฉ€ เจ•เจฐ เจธเจ•เจฆเจพ เจนเฉˆ, เจ…เจคเฉ‡ Python เจซเจฒเจพเจธเจ• เจœเจตเจพเจฌ เจฆเฉ‡ เจธเจ•เจฆเจพ เจนเฉˆเฅค เจ•เฉฐเจŸเฉ‡เจจเจฐ เจ•เจพเจฒเฉ‡ เจฌเจ•เจธเฉ‡ เจตเจฐเจ—เฉ‡ เจนเฉเฉฐเจฆเฉ‡ เจนเจจ เจœเจฟเจจเฉเจนเจพเจ‚ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจฆเฉ‚เจœเฉ‡ เจจเจพเจฒ เจฒเฉเจ•เฉ€ เจนเฉ‹เจˆ เจธเจฎเฉฑเจ—เจฐเฉ€ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆเฅค เจนเจพเจฒเจพเจ‚เจ•เจฟ, NOP เจธเจฟเจงเจพเจ‚เจค เจฒเจˆ เจนเจฐเฉ‡เจ• เจธเฉ‡เจตเจพ เจจเฉ‚เฉฐ เจ•เจˆ API เจ…เฉฐเจคเจฎ เจฌเจฟเฉฐเจฆเฉ‚เจ†เจ‚ เจฆเจพ เจชเจฐเจฆเจพเจซเจพเจธเจผ เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ เจœเฉ‹ เจ‡เจน เจฆเจฐเจธเจพเจ‰เจ‚เจฆเฉ‡ เจนเจจ เจ•เจฟ เจ‡เจน เจ•เจฟเฉฐเจจเฉ€ เจธเจฟเจนเจคเจฎเฉฐเจฆ เจนเฉˆ, เจจเจพเจฒ เจนเฉ€ เจ‡เจธเจฆเฉ€ เจคเจฟเจ†เจฐเฉ€ เจ…เจคเฉ‡ เจจเฉเจ•เจธ เจธเจนเจฟเจฃเจธเจผเฉ€เจฒเจคเจพ เจธเจฅเจฟเจคเฉ€เฅค เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจฐเฉ‚เจŸเจฟเฉฐเจ— เจ…เจคเฉ‡ เจฒเฉ‹เจก เจธเฉฐเจคเฉเจฒเจจ เจฒเจˆ เจ…เจ—เจฒเฉ‡ เจ•เจฆเจฎเจพเจ‚ เจฌเจพเจฐเฉ‡ เจธเฉ‹เจšเจฃ เจฒเจˆ เจ‡เจนเจจเจพเจ‚ เจธเฉ‚เจšเจ•เจพเจ‚ เจฆเฉ€ เจฌเฉ‡เจจเจคเฉ€ เจ•เจฐเจฆเจพ เจนเฉˆเฅค

เจ‡เฉฑเจ• เจšเฉฐเจ—เฉ€ เจคเจฐเฉเจนเจพเจ‚ เจกเจฟเจœเจผเจพเจˆเจจ เจ•เฉ€เจคเฉ€ เจ•เจฒเจพเจ‰เจก เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจธเจŸเฉˆเจ‚เจกเจฐเจก I/O เจธเจŸเฉเจฐเฉ€เจฎเจœเจผ STDERR เจ…เจคเฉ‡ STDOUT เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจ‡เจธเจฆเฉ‡ เจฎเฉเฉฑเจ– เจ‡เจตเฉˆเจ‚เจŸเจพเจ‚ เจจเฉ‚เฉฐ เจฒเฉŒเจ— เจ•เจฐเจฆเฉ€ เจนเฉˆเฅค เจ…เฉฑเจ—เฉ‡ เจ‡เฉฑเจ• เจธเจนเจพเจ‡เจ• เจธเฉ‡เจตเจพ เจ†เจ‰เจ‚เจฆเฉ€ เจนเฉˆ, เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ เจซเจพเจˆเจฒเจฌเฉ€เจŸ, เจฒเฉŒเจ—เจธเจŸเฉˆเจธเจผ เจœเจพเจ‚ fluentd, เจ‡เฉฑเจ• เจ•เฉ‡เจ‚เจฆเจฐเฉ€ เจจเจฟเจ—เจฐเจพเจจเฉ€ เจธเจฟเจธเจŸเจฎ (เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ เจชเฉเจฐเฉ‹เจฎเฉ€เจฅเฉ€เจ…เจธ) เจ…เจคเฉ‡ เจ‡เฉฑเจ• เจฒเฉŒเจ— เจ•เจฒเฉˆเจ•เจธเจผเจจ เจธเจฟเจธเจŸเจฎ (ELK เจธเฉŒเจซเจŸเจตเฉ‡เจ…เจฐ เจธเฉ‚เจŸ) เจจเฉ‚เฉฐ เจฒเจพเจ— เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเจจเจพเฅค เจนเฉ‡เจ เจพเจ‚ เจฆเจฟเฉฑเจคเจพ เจšเจฟเฉฑเจคเจฐ เจฆเจฟเจ–เจพเจ‰เจ‚เจฆเจพ เจนเฉˆ เจ•เจฟ เจ•เจฟเจตเฉ‡เจ‚ เจ‡เฉฑเจ• เจ•เจฒเจพเจ‰เจก เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจนเฉˆเจฒเจฅ เจŸเฉˆเจธเจŸ เจชเฉˆเจŸเจฐเจจ เจ…เจคเฉ‡ เจ‰เฉฑเจš เจจเจฟเจฐเฉ€เจ–เจฃเจฏเฉ‹เจ—เจคเจพ เจธเจฟเจงเจพเจ‚เจค เจฆเฉ‡ เจ…เจจเฉเจธเจพเจฐ เจ•เฉฐเจฎ เจ•เจฐเจฆเฉ€ เจนเฉˆเฅค

เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจ•เฉฐเจŸเฉ‡เจจเจฐเจพเจ‚ เจฒเจˆ เจตเจงเฉ€เจ† เจ…เจญเจฟเจ†เจธ: เจธเจฟเจนเจค เจœเจพเจ‚เจš

เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจตเจฟเฉฑเจš เจธเจฟเจนเจค เจœเจพเจ‚เจš เจชเฉˆเจŸเจฐเจจ เจจเฉ‚เฉฐ เจ•เจฟเจตเฉ‡เจ‚ เจฒเจพเจ—เฉ‚ เจ•เจฐเจจเจพ เจนเฉˆ?

เจฌเจพเจ•เจธ เจฆเฉ‡ เจฌเจพเจนเจฐ, k8s เจ‡เฉฑเจ• เจ•เฉฐเจŸเจฐเฉ‹เจฒเจฐ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจชเฉŒเจกเจพเจ‚ เจฆเฉ€ เจธเจฅเจฟเจคเฉ€ เจฆเฉ€ เจจเจฟเจ—เจฐเจพเจจเฉ€ เจ•เจฐเจฆเจพ เจนเฉˆ (เจคเจพเจ‡เจจเจพเจค, เจฐเจฟเจชเจฒเฉ€เจ•เจพเจธเฉˆเจŸเจธ, เจกเฉˆเจฎเจจเจธเฉˆเจŸเจธ, เจธเจŸเฉ‡เจŸเจซเฉเฉฑเจฒ เจธเฉˆเฉฑเจŸ เจ†เจฆเจฟ, เจ†เจฆเจฟ)เฅค เจ‡เจน เจชเจคเจพ เจฒเจ—เจพเจ‰เจฃ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ เจ•เจฟ เจชเฉŒเจก เจ•เจฟเจธเฉ‡ เจ•เจพเจฐเจจ เจ•เจฐเจ•เฉ‡ เจกเจฟเฉฑเจ— เจ—เจฟเจ† เจนเฉˆ, เจ•เฉฐเจŸเจฐเฉ‹เจฒเจฐ เจ‡เจธเจจเฉ‚เฉฐ เจฎเฉเฉœ เจšเจพเจฒเฉ‚ เจ•เจฐเจจ เจœเจพเจ‚ เจ•เจฟเจธเฉ‡ เจนเฉ‹เจฐ เจจเฉ‹เจก เจตเจฟเฉฑเจš เจฒเจฟเจœเจพเจฃ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจนเจพเจฒเจพเจ‚เจ•เจฟ, เจ‡เฉฑเจ• เจชเฉŒเจก เจฐเจฟเจชเฉ‹เจฐเจŸ เจ•เจฐ เจธเจ•เจฆเจพ เจนเฉˆ เจ•เจฟ เจ‡เจน เจšเจพเจฒเฉ‚ เจ…เจคเฉ‡ เจšเฉฑเจฒ เจฐเจฟเจนเจพ เจนเฉˆ, เจชเจฐ เจ‡เจน เจ†เจชเจฃเฉ‡ เจ†เจช เจ•เฉฐเจฎ เจจเจนเฉ€เจ‚ เจ•เจฐ เจฐเจฟเจนเจพ เจนเฉˆเฅค เจšเจฒเฉ‹ เจ‡เฉฑเจ• เจ‰เจฆเจพเจนเจฐเจจ เจฆเจฟเฉฐเจฆเฉ‡ เจนเจพเจ‚: เจคเฉเจนเจพเจกเฉ€ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจ…เจชเจพเจšเฉ‡ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจตเฉˆเฉฑเจฌ เจธเจฐเจตเจฐ เจตเจœเฉ‹เจ‚ เจตเจฐเจคเจฆเฉ€ เจนเฉˆ, เจคเฉเจธเฉ€เจ‚ เจ•เจˆ เจ•เจฒเฉฑเจธเจŸเจฐ เจชเฉŒเจกเจพเจ‚ 'เจคเฉ‡ เจ•เฉฐเจชเฉ‹เจจเฉˆเจ‚เจŸ เจธเจฅเจพเจชเจค เจ•เฉ€เจคเจพ เจนเฉˆเฅค เจ•เจฟเจ‰เจ‚เจ•เจฟ เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€ เจจเฉ‚เฉฐ เจ—เจฒเจค เจขเฉฐเจ— เจจเจพเจฒ เจ•เฉŒเจ‚เจซเจฟเจ—เจฐ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจธเฉ€, เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจฆเฉ€เจ†เจ‚ เจธเจพเจฐเฉ€เจ†เจ‚ เจฌเฉ‡เจจเจคเฉ€เจ†เจ‚ เจ•เฉ‹เจก 500 (เจ…เฉฐเจฆเจฐเฉ‚เจจเฉ€ เจธเจฐเจตเจฐ เจ—เจฒเจคเฉ€) เจจเจพเจฒ เจœเจตเจพเจฌ เจฆเจฟเฉฐเจฆเฉ€เจ†เจ‚ เจนเจจเฅค เจกเจฟเจฒเฉ€เจตเจฐเฉ€ เจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฐเจฆเฉ‡ เจธเจฎเฉ‡เจ‚, เจชเฉŒเจกเจธ เจฆเฉ€ เจธเจฅเจฟเจคเฉ€ เจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฐเจจเจพ เจ‡เฉฑเจ• เจธเจซเจฒ เจจเจคเฉ€เจœเจพ เจฆเจฟเฉฐเจฆเจพ เจนเฉˆ, เจชเจฐ เจ—เจพเจนเจ• เจตเฉฑเจ–เจฐเฉ‡ เจขเฉฐเจ— เจจเจพเจฒ เจธเฉ‹เจšเจฆเฉ‡ เจนเจจ. เจ…เจธเฉ€เจ‚ เจ‡เจธ เจ…เจฃเจšเจพเจนเฉ‡ เจธเจฅเจฟเจคเฉ€ เจฆเจพ เจตเจฐเจฃเจจ เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจ•เจฐเจพเจ‚เจ—เฉ‡:

เจ•เฉเจฌเจฐเจจเฉ‡เจŸเจธ เจ•เฉฐเจŸเฉ‡เจจเจฐเจพเจ‚ เจฒเจˆ เจตเจงเฉ€เจ† เจ…เจญเจฟเจ†เจธ: เจธเจฟเจนเจค เจœเจพเจ‚เจš

เจธเจพเจกเฉ‡ เจ‰เจฆเจพเจนเจฐเจจ เจตเจฟเฉฑเจš, k8s เจ•เจฐเจฆเจพ เจนเฉˆ เจ•เจพเจฐเจœเจ•เฉเจธเจผเจฒเจคเจพ เจœเจพเจ‚เจš. เจ‡เจธ เจ•เจฟเจธเจฎ เจฆเฉ€ เจคเจธเจฆเฉ€เจ• เจตเจฟเฉฑเจš, เจ•เฉเจฌเฉ‡เจฒเฉ‡เจŸ เจฒเจ—เจพเจคเจพเจฐ เจ•เฉฐเจŸเฉ‡เจจเจฐ เจตเจฟเฉฑเจš เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจฆเฉ€ เจธเจฅเจฟเจคเฉ€ เจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจ‡เฉฑเจ• เจตเจพเจฐ เจœเจฆเฉ‹เจ‚ เจ‰เจน เจธเจฎเจเจฆเจพ เจนเฉˆ เจ•เจฟ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจฌเฉฐเจฆ เจนเฉ‹ เจ—เจˆ เจนเฉˆ, เจคเจพเจ‚ เจ‰เจน เจ‡เจธเจจเฉ‚เฉฐ เจฆเฉเจฌเจพเจฐเจพ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเฉ‡เจ—เจพเฅค เจœเฉ‡เจ•เจฐ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจจเฉ‚เฉฐ เจฎเฉเฉœ-เจšเจพเจฒเฉ‚ เจ•เจฐเจจ เจจเจพเจฒ เจ—เจฒเจคเฉ€ เจจเฉ‚เฉฐ เจนเฉฑเจฒ เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ, เจ…เจคเฉ‡ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎ เจจเฉ‚เฉฐ เจ•เจฟเจธเฉ‡ เจตเฉ€ เจคเจฐเฉเฉฑเจŸเฉ€ 'เจคเฉ‡ เจฌเฉฐเจฆ เจ•เจฐเจจ เจฒเจˆ เจคเจฟเจ†เจฐ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ, เจคเจพเจ‚ เจคเฉเจนเจพเจจเฉ‚เฉฐ NOP เจ…เจคเฉ‡ เจธเจฟเจนเจค เจœเจพเจ‚เจš เจชเฉˆเจŸเจฐเจจ เจฆเฉ€ เจชเจพเจฒเจฃเจพ เจ•เจฐเจจ เจฒเจˆ เจ‡เฉฑเจ• เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจธเจฟเจนเจค เจœเจพเจ‚เจš เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค เจธเจฟเจฐเจซ เจ…เจซเจธเฉ‹เจธ เจฆเฉ€ เจ—เฉฑเจฒ เจ‡เจน เจนเฉˆ เจ•เจฟ เจธเจพเจฐเฉ€เจ†เจ‚ เจ—เจฒเจคเฉ€เจ†เจ‚ เจฎเฉเฉœ เจšเจพเจฒเฉ‚ เจ•เจฐเจจ เจจเจพเจฒ เจ–เจคเจฎ เจจเจนเฉ€เจ‚ เจนเฉเฉฐเจฆเฉ€เจ†เจ‚ เจนเจจ. เจ‡เจธ เจธเจฅเจฟเจคเฉ€ เจตเจฟเฉฑเจš, k8s เจชเฉŒเจก เจจเจพเจฒ เจธเจฎเฉฑเจธเจฟเจ†เจตเจพเจ‚ เจฆเฉ€ เจชเจ›เจพเจฃ เจ•เจฐเจจ เจฆเฉ‡ 2 เจกเฉ‚เฉฐเจ˜เฉ‡ เจคเจฐเฉ€เจ•เฉ‡ เจชเฉ‡เจธเจผ เจ•เจฐเจฆเจพ เจนเฉˆ: livenessProbe ะธ เจคเจฟเจ†เจฐเฉ€ เจชเฉœเจคเจพเจฒ.

LivenessProbe

เจฆเฉ‡ เจฆเฉŒเจฐเจพเจจ livenessProbe เจ•เฉเจฌเฉ‡เจฒเฉ‡เจŸ 3 เจคเจฐเฉเจนเจพเจ‚ เจฆเฉ€เจ†เจ‚ เจœเจพเจ‚เจšเจพเจ‚ เจ•เจฐเจฆเจพ เจนเฉˆ: เจจเจพ เจธเจฟเจฐเจซเจผ เจ‡เจน เจจเจฟเจฐเจงเจพเจฐเจฟเจค เจ•เจฐเจฆเจพ เจนเฉˆ เจ•เจฟ เจ•เฉ€ เจชเฉŒเจก เจšเฉฑเจฒ เจฐเจฟเจนเจพ เจนเฉˆ, เจธเจ—เฉ‹เจ‚ เจ‡เจน เจตเฉ€ เจ•เจฟ เจ•เฉ€ เจ‡เจน เจฌเฉ‡เจจเจคเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจจ เจ…เจคเฉ‡ เจขเฉเจ•เจตเฉ‡เจ‚ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจœเจตเจพเจฌ เจฆเฉ‡เจฃ เจฒเจˆ เจคเจฟเจ†เจฐ เจนเฉˆ:

  • เจชเฉŒเจก เจฒเจˆ เจ‡เฉฑเจ• HTTP เจฌเฉ‡เจจเจคเฉ€ เจธเฉˆเจŸ เจ…เจช เจ•เจฐเฉ‹เฅค เจœเจตเจพเจฌ เจตเจฟเฉฑเจš 200 เจคเฉ‹เจ‚ 399 เจคเฉฑเจ• เจฆเฉ€ เจฐเฉ‡เจ‚เจœ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• HTTP เจœเจตเจพเจฌ เจ•เฉ‹เจก เจนเฉ‹เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆเฅค เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚, เจ•เฉ‹เจก 5xx เจ…เจคเฉ‡ 4xx เจธเฉฐเจ•เฉ‡เจค เจฆเจฟเฉฐเจฆเฉ‡ เจนเจจ เจ•เจฟ เจชเฉ‹เจก เจจเฉ‚เฉฐ เจธเจฎเฉฑเจธเจฟเจ† เจ† เจฐเจนเฉ€ เจนเฉˆ, เจญเจพเจตเฉ‡เจ‚ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจšเฉฑเจฒ เจฐเจนเฉ€ เจนเฉ‹เจตเฉ‡เฅค
  • เจ—เฉˆเจฐ-HTTP เจธเฉ‡เจตเจพเจตเจพเจ‚ (เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจชเฉ‹เจธเจŸเจซเจฟเจ•เจธ เจฎเฉ‡เจฒ เจธเจฐเจตเจฐ) เจจเจพเจฒ เจชเฉŒเจกเจพเจ‚ เจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฐเจจ เจฒเจˆ, เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ‡เฉฑเจ• TCP เจ•เฉเจจเฉˆเจ•เจธเจผเจจ เจธเจฅเจพเจชเจค เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค
  • เจ‡เฉฑเจ• เจชเฉŒเจก (เจ…เฉฐเจฆเจฐเฉ‚เจจเฉ€ เจคเฉŒเจฐ 'เจคเฉ‡) เจฒเจˆ เจ‡เฉฑเจ• เจ†เจฐเจฌเจฟเจŸเจฐเจฐเฉ€ เจ•เจฎเจพเจ‚เจก เจšเจฒเจพเจ“เฅค เจœเฉ‡เจ•เจฐ เจ•เจฎเจพเจ‚เจก เจ•เฉฐเจชเจฒเฉ€เจธเจผเจจ เจ•เฉ‹เจก 0 เจนเฉˆ เจคเจพเจ‚ เจœเจพเจ‚เจš เจจเฉ‚เฉฐ เจธเจซเจฒ เจฎเฉฐเจจเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค

เจ‡เจน เจ•เจฟเจตเฉ‡เจ‚ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ เจฆเฉ€ เจ‡เฉฑเจ• เจ‰เจฆเจพเจนเจฐเจจ. เจ…เจ—เจฒเฉ€ เจชเฉŒเจก เจชเจฐเจฟเจญเจพเจธเจผเจพ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• NodeJS เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจนเฉˆ เจœเฉ‹ 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 เจ•เฉฐเจŸเฉ‡เจจเจฐ เจจเฉ‚เฉฐ เจธเจฟเจฐเจซเจผ เจ‰เจฆเฉ‹เจ‚ เจนเฉ€ เจฐเฉ€เจธเจŸเจพเจฐเจŸ เจ•เจฐเฉ‡เจ—เจพ เจœเฉ‡เจ•เจฐ เจ‡เจน เจ…เจธเจซเจฒ เจนเฉเฉฐเจฆเจพ เจนเฉˆเฅค เจœเฉ‡เจ•เจฐ เจ‡เฉฑเจ• เจฐเฉ€เจธเจŸเจพเจฐเจŸ เจ—เจฒเจคเฉ€ เจจเฉ‚เฉฐ เจ เฉ€เจ• เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเจพ เจนเฉˆ เจœเฉ‹ เจ•เฉฐเจŸเฉ‡เจจเจฐ เจจเฉ‚เฉฐ เจšเฉฑเจฒเจฃ เจคเฉ‹เจ‚ เจฐเฉ‹เจ• เจฐเจฟเจนเจพ เจนเฉˆ, เจคเจพเจ‚ เจ•เฉเจฌเฉ‡เจฒเฉ‡เจŸ เจธเจฎเฉฑเจธเจฟเจ† เจจเฉ‚เฉฐ เจ เฉ€เจ• เจ•เจฐเจจ เจฒเจˆ เจ•เจพเจฐเจตเจพเจˆ เจ•เจฐเจจ เจฆเฉ‡ เจฏเฉ‹เจ— เจจเจนเฉ€เจ‚ เจนเฉ‹เจตเฉ‡เจ—เจพเฅค

เจคเจฟเจ†เจฐเฉ€ เจชเฉœเจคเจพเจฒ

ReadinessProbe เจธเจฎเฉฑเจธเจฟเจ† เจจเจฟเจชเจŸเจพเจฐเจพ เจ•เจฐเจจ เจตเจพเจฒเฉ€เจ†เจ‚ เจ•เจพเจฐเจตเจพเจˆเจ†เจ‚ เจจเฉ‚เฉฐ เจ›เฉฑเจก เจ•เฉ‡, 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 เจ‡เจธ เจจเฉ‚เฉฐ เจฆเฉเจฌเจพเจฐเจพ เจฌเฉ‡เจจเจคเฉ€ เจ•เจฐเจฆเจพ เจนเฉˆ: 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; เจกเจพ
เจ•เจฒเจพเจ‰เจก เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚ เจฆเฉ‡ เจ†เจ—เจฎเจจ เจคเฉ‹เจ‚ เจชเจนเจฟเจฒเจพเจ‚, เจฒเฉŒเจ— เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจฆเฉ€ เจธเจฟเจนเจค เจฆเฉ€ เจจเจฟเจ—เจฐเจพเจจเฉ€ เจ…เจคเฉ‡ เจœเจพเจ‚เจš เจ•เจฐเจจ เจฆเจพ เจฎเฉเฉฑเจ– เจธเจพเจงเจจ เจธเจจเฅค เจนเจพเจฒเจพเจ‚เจ•เจฟ, เจ•เฉ‹เจˆ เจธเฉเจงเจพเจฐเจพเจคเจฎเจ• เจ•เจพเจฐเจตเจพเจˆ เจ•เจฐเจจ เจฆเจพ เจ•เฉ‹เจˆ เจธเจพเจงเจจ เจจเจนเฉ€เจ‚ เจธเฉ€. เจฒเฉŒเจ— เจ…เฉฑเจœ เจตเฉ€ เจ‰เจชเจฏเฉ‹เจ—เฉ€ เจนเจจ; เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจ‡เจ•เฉฑเจคเจฐ เจ•เจฐเจจ เจ…เจคเฉ‡ เจธเฉฐเจ•เจŸเจ•เจพเจฒเฉ€เจจ เจธเจฅเจฟเจคเฉ€เจ†เจ‚ เจฆเจพ เจตเจฟเจธเจผเจฒเฉ‡เจธเจผเจฃ เจ•เจฐเจจ เจ…เจคเฉ‡ เจซเฉˆเจธเจฒเฉ‡ เจฒเฉˆเจฃ เจฒเจˆ เจ‡เฉฑเจ• เจฒเฉŒเจ— เจธเฉฐเจ—เฉเจฐเจนเจฟ เจชเฉเจฐเจฃเจพเจฒเฉ€ เจจเฉ‚เฉฐ เจญเฉ‡เจœเจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค [เจ‡เจน เจธเจญ เจ•เจฒเจพเจ‰เจก เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚ เจคเฉ‹เจ‚ เจฌเจฟเจจเจพเจ‚ เจฎเฉ‹เจจเฉ€เจŸ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ, เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจชเจฐ k8s เจจเจพเจฒ เจ‡เจน เจฌเจนเฉเจค เจธเฉŒเจ–เจพ เจนเฉ‹ เจ—เจฟเจ† :) - เจธเฉฐเจชเจพเจฆเจ• เจฆเจพ เจจเฉ‹เจŸเฅค ]

เจ…เฉฑเจœ, เจฒเจ—เจญเจ— เจ…เจธเจฒ เจธเจฎเฉ‡เจ‚ เจตเจฟเฉฑเจš เจธเฉเจงเจพเจฐ เจ•เฉ€เจคเฉ‡ เจœเจพเจฃเฉ‡ เจนเจจ, เจ‡เจธเจฒเจˆ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚ เจจเฉ‚เฉฐ เจนเฉเจฃ เจฌเจฒเฉˆเจ• เจฌเจพเจ•เจธ เจจเจนเฉ€เจ‚ เจนเฉ‹เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆเฅค เจจเจนเฉ€เจ‚, เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจ…เฉฐเจคเจฎ เจฌเจฟเฉฐเจฆเฉ‚ เจฆเจฟเจ–เจพเจ‰เจฃเฉ‡ เจšเจพเจนเฉ€เจฆเฉ‡ เจนเจจ เจœเฉ‹ เจจเจฟเจ—เจฐเจพเจจเฉ€ เจชเฉเจฐเจฃเจพเจฒเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ†เจตเจพเจ‚ เจฆเฉ€ เจธเจฅเจฟเจคเฉ€ เจฌเจพเจฐเฉ‡ เจ•เฉ€เจฎเจคเฉ€ เจกเฉ‡เจŸเจพ เจจเฉ‚เฉฐ เจชเฉเฉฑเจ›เจ—เจฟเฉฑเจ› เจ•เจฐเจจ เจ…เจคเฉ‡ เจ‡เจ•เฉฑเจคเจฐ เจ•เจฐเจจ เจฆเฉ€ เจ‡เจœเจพเจœเจผเจค เจฆเจฟเฉฐเจฆเฉ‡ เจนเจจ เจคเจพเจ‚ เจœเฉ‹ เจฒเฉ‹เฉœ เจชเฉˆเจฃ 'เจคเฉ‡ เจ‰เจน เจคเฉเจฐเฉฐเจค เจœเจตเจพเจฌ เจฆเฉ‡ เจธเจ•เจฃเฅค เจ‡เจธ เจจเฉ‚เฉฐ เจชเจฐเจซเจพเจฐเจฎเฉˆเจ‚เจธ เจŸเฉˆเจธเจŸ เจกเจฟเจœเจผเจพเจˆเจจ เจชเฉˆเจŸเจฐเจจ เจ•เจฟเจนเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจœเฉ‹ เจนเจพเจˆ เจ†เจฌเจœเจผเจฐเจตเฉ‡เจฌเจฟเจฒเจŸเฉ€ เจธเจฟเจงเจพเจ‚เจค (HOP) เจฆเฉ€ เจชเจพเจฒเจฃเจพ เจ•เจฐเจฆเจพ เจนเฉˆเฅค

Kubernetes เจฎเฉ‚เจฒ เจฐเฉ‚เจช เจตเจฟเฉฑเจš 2 เจ•เจฟเจธเจฎเจพเจ‚ เจฆเฉ€เจ†เจ‚ เจธเจฟเจนเจค เจœเจพเจ‚เจšเจพเจ‚ เจฆเฉ€ เจชเฉ‡เจธเจผเจ•เจธเจผ เจ•เจฐเจฆเจพ เจนเฉˆ: ReadinessProbe เจ…เจคเฉ‡ livenessProbeเฅค เจฆเฉ‹เจตเฉ‡เจ‚ เจ‡เฉฑเจ•เฉ‹ เจ•เจฟเจธเจฎ เจฆเฉ€เจ†เจ‚ เจœเจพเจ‚เจšเจพเจ‚ (HTTP GET เจฌเฉ‡เจจเจคเฉ€เจ†เจ‚, TCP เจธเฉฐเจšเจพเจฐ เจ…เจคเฉ‡ เจ•เจฎเจพเจ‚เจก เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจธเจผเจจ) เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจฆเฉ‡ เจนเจจเฅค เจ‰เจน เจ‡เจธ เจ—เฉฑเจฒ เจตเจฟเฉฑเจš เจญเจฟเฉฐเจจ เจนเฉเฉฐเจฆเฉ‡ เจนเจจ เจ•เจฟ เจ‰เจน เจซเจฒเฉ€เจ†เจ‚ เจตเจฟเฉฑเจš เจธเจฎเฉฑเจธเจฟเจ†เจตเจพเจ‚ เจฆเฉ‡ เจœเจตเจพเจฌ เจตเจฟเฉฑเจš เจ•เจฟเจนเฉœเฉ‡ เจซเฉˆเจธเจฒเฉ‡ เจฒเฉˆเจ‚เจฆเฉ‡ เจนเจจเฅค livenessProbe เจ•เฉฐเจŸเฉ‡เจจเจฐ เจจเฉ‚เฉฐ เจ‡เจธ เจ‰เจฎเฉ€เจฆ เจตเจฟเฉฑเจš เจฎเฉเฉœ เจšเจพเจฒเฉ‚ เจ•เจฐเจฆเจพ เจนเฉˆ เจ•เจฟ เจ—เจฒเจคเฉ€ เจฆเฉเจฌเจพเจฐเจพ เจจเจนเฉ€เจ‚ เจนเฉ‹เจตเฉ‡เจ—เฉ€, เจ…เจคเฉ‡ ReadinessProbe เจชเฉ‹เจก เจจเฉ‚เฉฐ เจ†เจ‰เจฃ เจตเจพเจฒเฉ‡ เจŸเฉเจฐเฉˆเจซเจฟเจ• เจคเฉ‹เจ‚ เจ‰เจฆเฉ‹เจ‚ เจคเฉฑเจ• เจ…เจฒเฉฑเจ— เจ•เจฐ เจฆเจฟเฉฐเจฆเจพ เจนเฉˆ เจœเจฆเฉ‹เจ‚ เจคเฉฑเจ• เจธเจฎเฉฑเจธเจฟเจ† เจฆเจพ เจ•เจพเจฐเจจ เจนเฉฑเจฒ เจจเจนเฉ€เจ‚ เจนเฉ‹ เจœเจพเจ‚เจฆเจพเฅค

เจธเจนเฉ€ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจกเจฟเจœเจผเจพเจ‡เจจ เจตเจฟเฉฑเจš เจฆเฉ‹เจจเจพเจ‚ เจ•เจฟเจธเจฎเจพเจ‚ เจฆเฉ€ เจœเจพเจ‚เจš เจจเฉ‚เฉฐ เจธเจผเจพเจฎเจฒ เจ•เจฐเจจเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจ‡เจน เจฏเจ•เฉ€เจจเฉ€ เจฌเจฃเจพเจ‰เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ เจ•เจฟ เจ‰เจน เจฒเฉ‹เฉœเฉ€เจ‚เจฆเจพ เจกเฉ‡เจŸเจพ เจ‡เจ•เฉฑเจ เจพ เจ•เจฐเจฆเฉ‡ เจนเจจ, เจ–เจพเจธ เจคเฉŒเจฐ 'เจคเฉ‡ เจœเจฆเฉ‹เจ‚ เจ•เฉ‹เจˆ เจ…เจชเจตเจพเจฆ เจธเฉเฉฑเจŸเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค เจ‡เจธ เจจเฉ‚เฉฐ เจœเจผเจฐเฉ‚เจฐเฉ€ เจเจชเฉ€เจ†เจˆ เจ…เฉฐเจคเจฎ เจฌเจฟเฉฐเจฆเฉ‚ เจตเฉ€ เจฆเจฟเจ–เจพเจ‰เจฃเฉ‡ เจšเจพเจนเฉ€เจฆเฉ‡ เจนเจจ เจœเฉ‹ เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจจ เจธเจฟเจนเจค เจฎเฉˆเจŸเฉเจฐเจฟเจ•เจธ เจฆเฉ‡ เจจเจพเจฒ เจจเจฟเจ—เจฐเจพเจจเฉ€ เจชเฉเจฐเจฃเจพเจฒเฉ€ (เจชเฉเจฐเฉ‹เจฎเฉ€เจฅเฉ€เจ…เจธ) เจชเฉเจฐเจฆเจพเจจ เจ•เจฐเจฆเฉ‡ เจนเจจเฅค

เจธเจฐเฉ‹เจค: www.habr.com

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹