ื‘ืขืกื˜ืขืจ ืคึผืจืึทืงื˜ื™ืกื™ื– ืคึฟืึทืจ Kubernetes ืงืึทื ื˜ื™ื™ื ืขืจื–: ื’ืขื–ื•ื ื˜ ื˜ืฉืขืงืก

ื‘ืขืกื˜ืขืจ ืคึผืจืึทืงื˜ื™ืกื™ื– ืคึฟืึทืจ Kubernetes ืงืึทื ื˜ื™ื™ื ืขืจื–: ื’ืขื–ื•ื ื˜ ื˜ืฉืขืงืก

ื˜ืœ; ื“ืจ

  • ืฆื• ื“ืขืจื’ืจื™ื™ื›ืŸ ื”ื•ื™ืš ืึทื‘ื–ืขืจื•ื•ืึทื‘ื™ืœื™ื˜ื™ ืคื•ืŸ ืงืึทื ื˜ื™ื™ื ืขืจื– ืื•ืŸ ืžื™ืงืจืึธ ื‘ืึทื“ื™ื ื•ื ื’ืก, ืœืึธื’ืก ืื•ืŸ ืขืจืฉื˜ื™ืง ืžืขื˜ืจื™ืงืก ื–ืขื ืขืŸ ื ื™ืฉื˜ ื’ืขื ื•ื’.
  • ืคึฟืึทืจ ืคืึทืกื˜ืขืจ ืึธืคึผื–ื•ืš ืื•ืŸ ื’ืขื•ื•ืืงืกืŸ ืจื™ื–ื™ืœื™ืึทื ืก, ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– ื–ืึธืœ ืฆื•ืœื™ื™ื’ืŸ ื“ื™ High Observability Principle (HOP).
  • ืื•ื™ืฃ ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืžื“ืจื’ื”, NOP ืจื™ืงื•ื•ื™ื™ืขืจื–: ื’ืขื”ืขืจื™ืง ืœืึธื’ื™ื ื’, ื ืึธืขื ื˜ ืžืึธื ื™ื˜ืึธืจื™ื ื’, ืกื™ื™ื›ืœ ื˜ืฉืขืงืก ืื•ืŸ ืคืึธืจืฉื˜ืขืœื•ื ื’ / ื™ื‘ืขืจื’ืึทื ื’ ื˜ืจื™ื™ืกื™ื ื’.
  • ื ื™ืฆืŸ ื˜ืฉืขืงืก ื•ื•ื™ ืึทืŸ ืขืœืขืžืขื ื˜ ืคื•ืŸ NOR ื’ืจื™ื™ื˜ืงื™ื™ึทื˜ ืคึผืจืึธื‘ืข ะธ ืœืขื‘ืŸ ืคึผืจืึธื‘ืข Kubernetes.

ื•ื•ืึธืก ืื™ื– ืึท ื’ืขื–ื•ื ื˜ ื˜ืฉืขืง ืžื•ืกื˜ืขืจ?

ื•ื•ืขืŸ ื“ื™ื–ื™ื™ื ื™ื ื’ ืึท ืžื™ืกื™ืข-ืงืจื™ื˜ื™ืฉ ืื•ืŸ ื”ืขื›ืกื˜ ื‘ื ื™ืžืฆื ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ, ืขืก ืื™ื– ื–ื™ื™ืขืจ ื•ื•ื™ื›ื˜ื™ืง ืฆื• ื˜ืจืึทื›ื˜ืŸ ื•ื•ืขื’ืŸ ืึทื–ืึท ืึท ืึทืกืคึผืขืงื˜ ื•ื•ื™ ืฉื•ืœื“ ื˜ืึธืœืขืจืึทื ืฅ. ืึท ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืื™ื– ื’ืขื”ืืœื˜ืŸ ืฉื•ืœื“ ื˜ืึธืœืขืจืึทื ื˜ ืื•ื™ื‘ ืขืก ืจื™ืงืึทื•ื•ืขืจื“ ื’ืขืฉื•ื•ื™ื ื“ ืคื•ืŸ ื“ื•ืจื›ืคืึทืœ. ื ื˜ื™ืคึผื™ืฉ ื•ื•ืึธืœืงืŸ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ื ื™ืฆื˜ ืึท ืžื™ืงืจืึธืกืขืจื•ื•ื™ืกืขืก ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ - ื•ื•ื• ื™ืขื“ืขืจ ืงืึธืžืคึผืึธื ืขื ื˜ ืื™ื– ื’ืขืฉื˜ืขืœื˜ ืื™ืŸ ืึท ื‘ืึทื–ื•ื ื“ืขืจ ืงืึทื ื˜ื™ื™ื ืขืจ. ืื•ืŸ ืื™ืŸ ืกื“ืจ ืฆื• ืžืึทื›ืŸ ื–ื™ื›ืขืจ ืึทื– ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืื•ื™ืฃ k8s ืื™ื– ื”ืขื›ืกื˜ ื‘ื ื™ืžืฆื ื•ื•ืขืŸ ืื™ืจ ืคึผืœืึทืŸ ืึท ืงื ื•ื™ืœ, ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ื ืึธื›ืคืึธืœื’ืŸ ื–ื™ื›ืขืจ ืคึผืึทื˜ืขืจื ื–. ืฆื•ื•ื™ืฉืŸ ื–ื™ื™ ืื™ื– ื“ื™ ื’ืขื–ื•ื ื˜ ื˜ืฉืขืง ืžื•ืกื˜ืขืจ. ืขืก ื“ื™ืคื™ื™ื ื– ื•ื•ื™ ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืงืึทืžื™ื•ื ื™ืงื™ื™ืฅ ืฆื• ืง8ืก ืึทื– ืขืก ืื™ื– ื’ืขื–ื•ื ื˜. ื“ืึธืก ืื™ื– ื ื™ื˜ ื‘ืœื•ื™ื– ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ื•ื•ืขื’ืŸ ืฆื™ ื“ื™ ืคึผืึธื“ ืื™ื– ืคืœื™ืกื ื“ื™ืง, ืึธื‘ืขืจ ืื•ื™ืš ื•ื•ืขื’ืŸ ื•ื•ื™ ืขืก ื ืขืžื˜ ืื•ืŸ ืจื™ืกืคึผืึทื ื“ื– ืฆื• ืจื™ืงื•ื•ืขืก. ื“ื™ ืžืขืจ Kubernetes ื•ื•ื™ื™ืกื˜ ื•ื•ืขื’ืŸ ื“ื™ ื’ืขื–ื•ื ื˜ ืคื•ืŸ ื“ื™ ืคึผืึธื“, ื“ื™ ืกืžืึทืจื˜ืขืจ ื“ื™ืกื™ื–ืฉืึทื ื– ืขืก ืžืื›ื˜ ื•ื•ืขื’ืŸ ืคืึทืจืงืขืจ ืจื•ื˜ื™ื ื’ ืื•ืŸ ืžืึทืกืข ื‘ืึทืœืึทื ืกื™ื ื’. ืื–ื•ื™, ื“ื™ ื”ื•ื™ืš ืึธื‘ืกืขืจื•ื•ืึทื‘ื™ืœื™ื˜ื™ ืคึผืจื™ื ืฆื™ืคึผ ืึทืœืึทื•ื– ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืฆื• ืจื™ืกืคึผืึทื ื“ ืฆื• ืจื™ืงื•ื•ืขืก ืื™ืŸ ืึท ื‘ื™ื™ึทืฆื™ื™ึทื˜ื™ืง ืฉื˜ื™ื™ื’ืขืจ.

ื”ื•ื™ืš ืึธื‘ืกืขืจื•ื•ืึทื‘ื™ืœื™ื˜ื™ ืคึผืจื™ื ืฆื™ืคึผ (HOP)

ื“ืขืจ ืคึผืจื™ื ืฆื™ืคึผ ืคื•ืŸ ื”ื•ื™ืš ืึธื‘ืกืขืจื•ื•ืึทื‘ื™ืœื™ื˜ื™ ืื™ื– ืื™ื™ื ืขืจ ืคื•ืŸ ืคึผืจื™ื ืกืึทืคึผืึทืœื– ืคึฟืึทืจ ื“ื™ื–ื™ื™ื ื™ื ื’ ืงืึทื ื˜ื™ื™ื ืขืจื– ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื–. ืื™ืŸ ืึท ืžื™ืงืจืึธืกืขืจื•ื•ื™ืก ืึทืจืงืึทื˜ืขืงื˜ืฉืขืจ, ืกืขืจื•ื•ื™ืกืขืก ื˜ืึธืŸ ื ื™ื˜ ื–ืึธืจื’ืŸ ื•ื•ื™ ื–ื™ื™ืขืจ ื‘ืงืฉื” ืื™ื– ืคึผืจืึทืกืขืกื˜ (ืื•ืŸ ืจื™ื™ื˜ืœื™ ืึทื–ื•ื™), ืึธื‘ืขืจ ื•ื•ืึธืก ืื™ื– ื•ื•ื™ื›ื˜ื™ืง ืื™ื– ื•ื•ื™ ื–ื™ื™ ื‘ืึทืงื•ืžืขืŸ ืจืขืกืคึผืึธื ืกืขืก ืคื•ืŸ ื“ื™ ืจื™ืกื™ื•ื•ื™ื ื’ ื‘ืึทื“ื™ื ื•ื ื’ืก. ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ืฆื• ืึธื˜ืขื ื˜ืึทืงื™ื™ื˜ ืึท ื‘ืึทื ื™ืฆืขืจ, ืื™ื™ืŸ ืงืึทื ื˜ื™ื™ื ืขืจ ืกืขื ื“ื– ืึท ื”ื˜ื˜ืคึผ ื‘ืขื˜ืŸ ืฆื• ืื ื“ืขืจืŸ, ื“ืขืจื•ื•ืึทืจื˜ืŸ ืึท ืขื ื˜ืคืขืจ ืื™ืŸ ืึท ื–ื™ื›ืขืจ ืคึฟืึธืจืžืึทื˜ - ื“ืึธืก ืื™ื– ืึทืœืข. PythonJS ืงืขื ืขืŸ ืื•ื™ืš ืคึผืจืึธืฆืขืก ื“ื™ ื‘ืขื˜ืŸ, ืื•ืŸ Python Flask ืงืขื ืขืŸ ืจื™ืกืคึผืึทื ื“. ืงืึทื ื˜ื™ื™ื ืขืจื– ื–ืขื ืขืŸ ื•ื•ื™ ืฉื•ื•ืึทืจืฅ ื‘ืึธืงืกืขืก ืžื™ื˜ ืคืึทืจื‘ืึธืจื’ืŸ ืื™ื ื”ืึทืœื˜ ืฆื• ื™ืขื“ืขืจ ืื ื“ืขืจืขืจ. ืึธื‘ืขืจ, ื“ื™ NOP ืคึผืจื™ื ืฆื™ืคึผ ืจื™ืงื•ื•ื™ื™ืขืจื– ื™ืขื“ืขืจ ื“ื™ื ืกื˜ ืฆื• ื•ื™ืกืฉื˜ืขืœืŸ ืงื™ื™ืคืœ ืึทืคึผื™ ืขื ื“ืคึผืึธื™ื ืฅ ื•ื•ืึธืก ืึธื ื•ื•ื™ื™ึทื–ืŸ ื•ื•ื™ ื’ืขื–ื•ื ื˜ ืขืก ืื™ื–, ื•ื•ื™ ื’ืขื–ื•ื ื˜ ื•ื•ื™ ื–ื™ื™ืŸ ื’ืจื™ื™ื˜ืงื™ื™ึทื˜ ืื•ืŸ ืฉื•ืœื“ ื˜ืึธืœืขืจืึทื ืฅ ืกื˜ืึทื˜ื•ืก. Kubernetes ืจื™ืงื•ื•ืขืก ื“ื™ ื™ื ื“ืึทืงื™ื™ื˜ืขืจื– ืื™ืŸ ืกื“ืจ ืฆื• ื˜ืจืึทื›ื˜ืŸ ื“ื•ืจืš ื“ื™ ื•ื•ื™ื™ึทื˜ืขืจ ืกื˜ืขืคึผืก ืคึฟืึทืจ ืจื•ื˜ื™ื ื’ ืื•ืŸ ืžืึทืกืข ื‘ืึทืœืึทื ืกื™ื ื’.

ื ื’ืขื–ื•ื ื˜-ื“ื™ื–ื™ื™ื ื“ ื•ื•ืึธืœืงืŸ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืœืึธื’ืก ื–ื™ื™ึทืŸ ื”ื•ื™ืคึผื˜ ื’ืขืฉืขืขื ื™ืฉืŸ ืžื™ื˜ ื“ื™ ื ืึธืจืžืึทืœ ื™ / ืึธ ืกื˜ืจื™ืžื– STDERR ืื•ืŸ STDOUT. ื“ืขืจื ืึธืš ืงื•ืžื˜ ืึทืŸ ืึทื’ื–ื™ืœื™ืขืจื™ ื“ื™ื ืกื˜, ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, Filebeat, Logstash ืึธื“ืขืจ Fluentd, ื“ื™ืœื™ื•ื•ืขืจื™ื ื’ ืœืึธื’ืก ืฆื• ืึท ืกืขื ื˜ืจืึทืœื™ื™ื–ื“ ืžืึธื ื™ื˜ืึธืจื™ื ื’ ืกื™ืกื˜ืขื (ืœืžืฉืœ ืคึผืจืึธืžืขื˜ื”ืขื•ืก) ืื•ืŸ ืึท ืงืœืึธืฅ ื–ืึทืžืœื•ื ื’ ืกื™ืกื˜ืขื (ELK ื•ื•ื™ื™ื›ื•ื•ืืจื’ ืกื•ื•ื™ื˜). ื“ื™ ื“ื™ืึทื’ืจืึทืžืข ืื•ื ื˜ืŸ ื•ื•ื™ื™ื–ื˜ ื•ื•ื™ ืึท ื•ื•ืึธืœืงืŸ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืึทืจื‘ืขื˜ ืœื•ื™ื˜ ื“ื™ ื’ืขื–ื•ื ื˜ ื˜ืขืกื˜ ืžื•ืกื˜ืขืจ ืื•ืŸ ื“ื™ ื”ื•ื™ืš ืึธื‘ืกืขืจื•ื•ืึทื‘ื™ืœื™ื˜ื™ ืคึผืจื™ื ืฆื™ืคึผ.

ื‘ืขืกื˜ืขืจ ืคึผืจืึทืงื˜ื™ืกื™ื– ืคึฟืึทืจ Kubernetes ืงืึทื ื˜ื™ื™ื ืขืจื–: ื’ืขื–ื•ื ื˜ ื˜ืฉืขืงืก

ื•ื•ื™ ืฆื• ืฆื•ืœื™ื™ื’ืŸ ื“ื™ ื’ืขื–ื•ื ื˜ ื˜ืฉืขืง ืžื•ืกื˜ืขืจ ืื™ืŸ Kubernetes?

ืื•ื™ืก ืคื•ืŸ ื“ื™ ืงืขืกื˜ืœ, k8s ืžืึธื ื™ื˜ืึธืจืก ื“ื™ ืกื˜ืึทื˜ื•ืก ืคื•ืŸ ื“ื™ ืคึผืึธื“ืก ื ื™ืฆืŸ ืื™ื™ื ืขืจ ืคื•ืŸ ื“ื™ ืงืึทื ื˜ืจืึธื•ืœืขืจื– (ื“ืขืคึผืœื•ื™ืžืขื ืฅ, ืจืขืคึผืœื™ืงืข ืกืขืฅ, ื“ืึทืขืžืึธื ืกืขืฅ, ืกื˜ื™ื™ื˜ืคื•ืœืกืขืฅ ื•ื›ื•' ื•ื›ื•'). ื ืึธืš ื“ื™ืกืงืึทื•ื•ืขืจื“ ืึทื– ื“ื™ ืคึผืึธื“ ืื™ื– ื’ืขืคืืœืŸ ืคึฟืึทืจ ืขื˜ืœืขื›ืข ืกื™ื‘ื”, ื“ืขืจ ืงืึธื ื˜ืจืึธืœืœืขืจ ืคืจื•ื•ื•ื˜ ืฆื• ืจื™ืกื˜ืึทืจื˜ ืขืก ืึธื“ืขืจ ืžืึทืš ืขืก ืฆื• ืืŸ ืื ื“ืขืจ ื ืึธื“ืข. ืึธื‘ืขืจ, ืึท ืคึผืึธื“ ืงืขืŸ ื‘ืึทืจื™ื›ื˜ ืึทื– ืขืก ืื™ื– ืึทืจื•ื™ืฃ ืื•ืŸ ืคืœื™ืกื ื“ื™ืง, ืึธื‘ืขืจ ืขืก ื–ื™ืš ืื™ื– ื ื™ืฉื˜ ืคืึทื ื’ืงืฉืึทื ื™ื ื’. ืœืึธืžื™ืจ ื’ืขื‘ืŸ ืึท ื‘ื™ื™ืฉืคึผื™ืœ: ื“ื™ื™ืŸ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ื ื™ืฆื˜ ืึทืคึผืึทื˜ืฉื™ ื•ื•ื™ ืึท ื•ื•ืขื‘ ืกืขืจื•ื•ืขืจ, ืื™ืจ ื”ืึธื˜ ืื™ื ืกื˜ืึทืœื™ืจืŸ ื“ืขื ืงืึธืžืคึผืึธื ืขื ื˜ ืื•ื™ืฃ ืขื˜ืœืขื›ืข ืคึผืึธื“ืก ืคื•ืŸ ื“ืขื ืงื ื•ื™ืœ. ื–ื™ื ื˜ ื“ื™ ื‘ื™ื‘ืœื™ืึธื˜ืขืง ืื™ื– ืงืึทื ืคื™ื’ื™ืขืจื“ ืคืึทืœืฉ, ืึทืœืข ืจื™ืงื•ื•ืขืก ืฆื• ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืจื™ืกืคึผืึทื ื“ ืžื™ื˜ ืงืึธื“ 500 (ื™ื ืขืจืœืขืš ืกืขืจื•ื•ืขืจ ื˜ืขื•ืช). ื•ื•ืขืŸ ืงืึธื ื˜ืจืึธืœื™ืจื•ื ื’ ืขืงืกืคึผืจืขืก, ืงืึธื ื˜ืจืึธืœื™ืจืŸ ื“ื™ ืกื˜ืึทื˜ื•ืก ืคื•ืŸ ืคึผืึธื“ืก ื’ื™ื˜ ืึท ืžืฆืœื™ื— ืจืขื–ื•ืœื˜ืึทื˜, ืึธื‘ืขืจ ืงืึทืกื˜ืึทืžืขืจื– ื˜ืจืึทื›ื˜ืŸ ืึทื ื“ืขืจืฉ. ืžื™ืจ ื•ื•ืขืœืŸ ื‘ืึทืฉืจื™ื™ึทื‘ืŸ ื“ืขื ืึทื ื“ื™ื–ื™ื™ืจืึทื‘ืึทืœ ืกื™ื˜ื•ืึทืฆื™ืข ื•ื•ื™ ื’ื™ื™ื˜:

ื‘ืขืกื˜ืขืจ ืคึผืจืึทืงื˜ื™ืกื™ื– ืคึฟืึทืจ Kubernetes ืงืึทื ื˜ื™ื™ื ืขืจื–: ื’ืขื–ื•ื ื˜ ื˜ืฉืขืงืก

ืื™ืŸ ืื•ื ื“ื–ืขืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, k8s ื˜ื•ื˜ ืคืึทื ื’ืงืฉืึทื ืึทืœื™ื˜ื™ ื˜ืฉืขืง. ืื™ืŸ ื“ืขื ื˜ื™ืคึผ ืคื•ืŸ ื•ื•ืขืจืึทืคืึทืงื™ื™ืฉืึทืŸ, ื“ื™ ืงื•ื‘ืขืœืขื˜ ืงืึทื ื˜ื™ื ื™ื•ืึทืกืœื™ ืงืึธื ื˜ืจืึธืœื™ืจืŸ ื“ื™ ืฉื˜ืึทื˜ ืคื•ืŸ ื“ืขื ืคึผืจืึธืฆืขืก ืื™ืŸ ื“ืขื ืงืึทื ื˜ื™ื™ื ืขืจ. ืึทืžืึธืœ ืขืจ ืคืืจืฉื˜ื™ื™ื˜ ืึทื– ื“ืขืจ ืคึผืจืึธืฆืขืก ืื™ื– ืคืืจืฉื˜ืืคื˜, ืขืจ ื•ื•ืขื˜ ืจื™ืกื˜ืึทืจื˜ ืขืก. ืื•ื™ื‘ ื“ืขืจ ื˜ืขื•ืช ืงืขื ืขืŸ ื–ื™ื™ืŸ ืจื™ื–ืึทืœื•ื•ื“ ื“ื•ืจืš ืคืฉื•ื˜ ืจื™ืกื˜ืึทืจื˜ื™ื ื’ ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ, ืื•ืŸ ื“ื™ ืคึผืจืึธื’ืจืึทื ืื™ื– ื“ื™ื–ื™ื™ื ื“ ืฆื• ืคืึทืจืžืึทื›ืŸ ืึทืจืึธืคึผ ืื•ื™ืฃ ืงื™ื™ืŸ ื˜ืขื•ืช, ืึท ืคึผืจืึธืฆืขืก ื’ืขื–ื•ื ื˜ ื˜ืฉืขืง ืื™ื– ืึทืœืข ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ื ืึธื›ืคืึธืœื’ืŸ ื“ื™ NOP ืื•ืŸ ื“ื™ ื’ืขื–ื•ื ื˜ ื˜ืขืกื˜ ืžื•ืกื˜ืขืจ. ื“ืขืจ ื‘ืœื•ื™ื– ืฉืึธื“ ืื™ื– ืึทื– ื ื™ื˜ ืึทืœืข ืขืจืจืึธืจืก ื–ืขื ืขืŸ ื™ืœื™ืžืึทื ื™ื™ื˜ืึทื“ ื“ื•ืจืš ืจื™ืกื˜ืึทืจื˜ื™ื ื’. ืื™ืŸ ื“ืขื ืคืึทืœ, k8s ืึธืคืคืขืจืก 2 ื“ื™ืคึผืขืจ ื•ื•ืขื’ืŸ ืฆื• ื™ื“ืขื ื˜ื™ืคื™ืฆื™ืจืŸ ืคึผืจืึธื‘ืœืขืžืก ืžื™ื˜ ื“ื™ ืคึผืึธื“: ืœืขื‘ืŸ ืคึผืจืึธื‘ืข ะธ ื’ืจื™ื™ื˜ืงื™ื™ึทื˜ ืคึผืจืึธื‘ืข.

LivenessProbe

During the ืœืขื‘ืŸ ืคึผืจืึธื‘ืข kubelet ืคึผืขืจืคืึธืจืžื– 3 ื˜ื™ื™ืคึผืก ืคื•ืŸ ื˜ืฉืขืงืก: ื ื™ื˜ ื‘ืœื•ื™ื– ื“ื™ื˜ืขืจืžืึทื ื– ืฆื™ ื“ื™ ืคึผืึธื“ ืื™ื– ืคืœื™ืกื ื“ื™ืง, ืึธื‘ืขืจ ืื•ื™ืš ืฆื™ ืขืก ืื™ื– ื’ืจื™ื™ื˜ ืฆื• ื‘ืึทืงื•ืžืขืŸ ืื•ืŸ ืึทื“ืึทืงื•ื•ืึทื˜ืœื™ ืจื™ืกืคึผืึทื ื“ ืฆื• ืจื™ืงื•ื•ืขืก:

  • ืฉื˜ืขืœืŸ ืึท ื”ื˜ื˜ืคึผ ื‘ืขื˜ืŸ ืฆื• ื“ื™ ืคึผืึธื“. ื“ืขืจ ืขื ื˜ืคืขืจ ืžื•ื–ืŸ ืึทื ื˜ื”ืึทืœื˜ืŸ ืึท ื”ื˜ื˜ืคึผ ืขื ื˜ืคืขืจ ืงืึธื“ ืื™ืŸ ื“ื™ ืงื™ื™ื˜ ืคื•ืŸ 200 ืฆื• 399. ืื–ื•ื™, ืงืึธื•ื“ื– 5xx ืื•ืŸ 4xx ืกื™ื’ื ืึทืœ ืึทื– ื“ื™ ืคึผืึธื“ ืื™ื– ืคึผืจืึธื‘ืœืขืžืก, ื›ืึธื˜ืฉ ื“ืขืจ ืคึผืจืึธืฆืขืก ืื™ื– ืคืœื™ืกื ื“ื™ืง.
  • ืฆื• ืคึผืจื•ื‘ื™ืจืŸ ืคึผืึธื“ืก ืžื™ื˜ ื ื™ื˜-ื”ื˜ื˜ืคึผ ื‘ืึทื“ื™ื ื•ื ื’ืก (ืœืžืฉืœ, ื“ื™ ืคึผืึธืกื˜ืคื™ืงืก ืคึผืึธืกื˜ ืกืขืจื•ื•ืขืจ), ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืคืึทืจืœื™ื™ื’ืŸ ืึท ื˜ืงืคึผ ืงืฉืจ.
  • ื•ื™ืกืคื™ืจืŸ ืึท ืึทืจื‘ื™ื˜ืจืึทืจื™ืฉ ื‘ืึทืคึฟืขืœ ืคึฟืึทืจ ืึท ืคึผืึธื“ (ืื™ื ืขื•ื•ื™ื™ื ื™ืง). ื“ืขืจ ื˜ืฉืขืง ืื™ื– ื’ืขืจืขื›ื ื˜ ื•ื•ื™ ื’ืขืจืึธื˜ืŸ ืื•ื™ื‘ ื“ื™ ื‘ืึทืคึฟืขืœ ืงืึทืžืคึผืœื™ืฉืึทืŸ ืงืึธื“ ืื™ื– 0.

ื ื‘ื™ื™ืฉืคึผื™ืœ ืคื•ืŸ ื•ื•ื™ ื“ืึธืก ืึทืจื‘ืขื˜. ื“ืขืจ ื•ื•ื™ื™ึทื˜ืขืจ ืคึผืึธื“ ื“ืขืคึฟื™ื ื™ืฆื™ืข ื›ึผื•ืœืœ ืึท NodeJS ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ื•ื•ืึธืก ื•ื•ืืจืคื˜ ืขืจ ืึท 500 ื˜ืขื•ืช ืื•ื™ืฃ ื”ื˜ื˜ืคึผ ืจื™ืงื•ื•ืขืก ืฆื• ืžืึทื›ืŸ ื–ื™ื›ืขืจ ืึทื– ื“ืขืจ ืงืึทื ื˜ื™ื™ื ืขืจ ืื™ื– ืจื™ืกื˜ืึทืจื˜ื™ื“ ื•ื•ืขืŸ ืื™ืจ ื‘ืึทืงื•ืžืขืŸ ืึทื–ืึท ืึท ื˜ืขื•ืช, ืžื™ืจ ื ื•ืฆืŸ ื“ื™ ืœื™ื™ื•ื•ื ืขืกืกืคึผืจืึธื‘ืข ืคึผืึทืจืึทืžืขื˜ืขืจ:

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). ืืŸ ืื ื“ืขืจ ืœื™ื™ื•ื•ื ืขืกืก ืคึผืจืึธื‘ืข ืึทืงืกืขืคึผืฅ ืึท ืคึผืึทืจืึทืžืขื˜ืขืจ 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')
})

dockerfile

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

ืขืก ืื™ื– ื•ื•ื™ื›ื˜ื™ืง ืฆื• ื˜ืึธืŸ ื“ืึธืก: LivenessProbe ื•ื•ืขื˜ ื ืึธืจ ืจื™ืกื˜ืึทืจื˜ ื“ืขื ืงืึทื ื˜ื™ื™ื ืขืจ ืื•ื™ื‘ ืขืก ืคื™ื™ืœื–. ืื•ื™ื‘ ืึท ืจื™ืกื˜ืึทืจื˜ ื˜ื•ื˜ ื ื™ืฉื˜ ืคืึทืจืจื™ื›ื˜ืŸ ื“ืขื ื˜ืขื•ืช ื•ื•ืึธืก ืื™ื– ืคึผืจื™ื•ื•ืขื ื˜ื™ื“ ื“ืขื ืงืึทื ื˜ื™ื™ื ืขืจ ืคื•ืŸ ืคืœื™ืกื ื“ื™ืง, ื“ื™ ืงื•ื‘ืขืœืขื˜ ื•ื•ืขื˜ ื ื™ืฉื˜ ืงืขื ืขืŸ ืฆื• ื ืขืžืขืŸ ืงืึทืžืฃ ืฆื• ืคืึทืจืจื™ื›ื˜ืŸ ื“ืขื ืคึผืจืึธื‘ืœืขื.

ื’ืจื™ื™ื˜ืงื™ื™ึทื˜ ืคึผืจืึธื‘ืข

ReadinessProbe ืึทืจื‘ืขื˜ ืขื ืœืขืš ืฆื• ืœื™ื™ื•ื•ื ืขืกืก ืคึผืจืึธื‘ืขืก (GET ืจื™ืงื•ื•ืขืก, TCP ืงืึธืžื•ื ื™ืงืึทืฆื™ืข ืื•ืŸ ื‘ืึทืคึฟืขืœืŸ ื“ื•ืจื›ืคื™ืจื•ื ื’), ืึทื—ื•ืฅ ืคึฟืึทืจ ื˜ืจืึธื•ื‘ืœืขืฉืึธืึธื˜ื™ื ื’ ืึทืงืฉืึทื ื–. ื“ืขืจ ืงืึทื ื˜ื™ื™ื ืขืจ ืื™ืŸ ื•ื•ืึธืก ื“ื™ ื“ื•ืจื›ืคืึทืœ ืื™ื– ื“ื™ื˜ืขืงื˜ืึทื“ ืื™ื– ื ื™ืฉื˜ ืจื™ืกื˜ืึทืจื˜ื™ื“, ืึธื‘ืขืจ ืื™ื– ืืคื’ืขื–ื•ื ื“ืขืจื˜ ืคื•ืŸ ื™ื ืงืึทืžื™ื ื’ ืคืึทืจืงืขืจ. ื™ืžืึทื“ื–ืฉืึทืŸ ืึทื– ืื™ื™ื ืขืจ ืคื•ืŸ ื“ื™ ืงืึทื ื˜ื™ื™ื ืขืจื– ืื™ื– ืคึผืขืจืคืึธืจืžื™ื ื’ ืึท ืคึผืœืึทืฅ ืคื•ืŸ ื—ืฉื‘ื•ื ื•ืช ืึธื“ืขืจ ืื™ื– ืื•ื ื˜ืขืจ ืฉื•ื•ืขืจ ืžืึทืกืข, ื•ื•ืึธืก ื“ื™ ืขื ื˜ืคืขืจ ืฆื™ื™ื˜ ื•ื•ืขื˜ ืคืึทืจื’ืจืขืกืขืจืŸ. ืื™ืŸ ื“ืขื ืคืึทืœ ืคื•ืŸ ืœื™ื™ื•ื•ื ืขืกืก ืคึผืจืึธื‘ืข, ื“ื™ ืงืึธื ื˜ืจืึธืœ ืึทื•ื•ื™ื™ืœืึทื‘ื™ืœืึทื˜ื™ ืคื•ืŸ ืขื ื˜ืคืขืจ ืื™ื– ื˜ืจื™ื’ืขืจื“ (ื“ื•ืจืš ื“ื™ TimeoutSeconds ื˜ืฉืขืง ืคึผืึทืจืึทืžืขื˜ืขืจ), ื ืึธืš ื•ื•ืึธืก ื“ื™ ืงื•ื‘ืขืœืขื˜ ืจื™ืกื˜ืึทืจื˜ ื“ืขื ืงืึทื ื˜ื™ื™ื ืขืจ. ื•ื•ืขืŸ ืกื˜ืึทืจื˜ืขื“, ื“ืขืจ ืงืึทื ื˜ื™ื™ื ืขืจ ื”ื™ื™ื‘ื˜ ืฆื• ื“ื•ืจื›ืคื™ืจืŸ ืžื™ื˜ืœ-ืื™ื ื˜ืขื ืกื™ื•ื•ืข ื˜ืึทืกืงืก ืื•ืŸ ืื™ื– ืจื™ืกื˜ืึทืจื˜ื™ื“ ื•ื•ื™ื“ืขืจ. ื“ืึธืก ืงืขืŸ ื–ื™ื™ืŸ ืงืจื™ื˜ื™ืฉ ืคึฟืึทืจ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– ื•ื•ืึธืก ื“ืึทืจืคึฟืŸ ืขื ื˜ืคืขืจ ื’ื™ื›ืงื™ื™ึทื˜. ืœืžืฉืœ, ืึท ืžืึทืฉื™ืŸ ื‘ืฉืขืช ืื•ื™ืฃ ื“ื™ ื•ื•ืขื’ ืื™ื– ื•ื•ืืจื˜ืŸ ืคึฟืึทืจ ืึท ืขื ื˜ืคืขืจ ืคื•ืŸ ื“ื™ ืกืขืจื•ื•ืขืจ, ื“ืขืจ ืขื ื˜ืคืขืจ ืื™ื– ื“ื™ืœื™ื™ื“ - ืื•ืŸ ื“ื™ ืžืึทืฉื™ืŸ ืงื•ืžื˜ ืื™ืŸ ืึท ืฆื•ืคืึทืœ.

ืœืึธืžื™ืจ ืฉืจื™ื™ึทื‘ืŸ ืึท ืจืขื“ื™ื ืขืกืก ืคึผืจืึธื‘ืข ื“ืขืคึฟื™ื ื™ืฆื™ืข ื•ื•ืึธืก ื•ื•ืขื˜ ืฉื˜ืขืœืŸ ื“ื™ GET ื‘ืขื˜ืŸ ืขื ื˜ืคืขืจ ืฆื™ื™ื˜ ืฆื• ื ื™ื˜ ืžืขืจ ื•ื•ื™ ืฆื•ื•ื™ื™ ืกืขืงื•ื ื“ืขืก, ืื•ืŸ ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ื•ื•ืขื˜ ืจื™ืกืคึผืึทื ื“ ืฆื• ื“ื™ GET ื‘ืขื˜ืŸ ื ืึธืš 5 ืกืขืงื•ื ื“ืขืก. ื“ื™ 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

ืื™ืŸ ื“ื™ ืกื•ืฃ ืคื•ืŸ ื“ื™ ืจืขื–ื•ืœื˜ืึทื˜ ืื™ืจ ืงืขื ืขืŸ ื–ืขืŸ ืึทื– ืขื˜ืœืขื›ืข ืคื•ืŸ โ€‹โ€‹ื“ื™ ื’ืขืฉืขืขื ื™ืฉืŸ ื–ืขื ืขืŸ ืขื ืœืขืš ื“ืขื ืื™ื™ื ืขืจ.

ื•ื•ื™ ืื™ืจ ืงืขื ืขืŸ ื–ืขืŸ, kubectl ื”ืื˜ ื ื™ืฉื˜ ืจื™ืกื˜ืึทืจื˜ ื“ื™ ืคึผืึธื“ ื•ื•ืขืŸ ื“ื™ ื˜ืฉืขืง ืฆื™ื™ื˜ ื™ืงืกื™ื“ 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')
})

ื˜ืœ; ื“ืจ
ืื™ื™ื“ืขืจ ื“ื™ ืึทื“ื•ื•ืขื ื˜ ืคื•ืŸ ื•ื•ืึธืœืงืŸ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื–, ืœืึธื’ืก ื–ืขื ืขืŸ ื“ื™ ืขืจืฉื˜ื™ืง ืžื™ื˜ืœ ืคื•ืŸ ืžืึธื ื™ื˜ืึธืจื™ื ื’ ืื•ืŸ ืงืึธื ื˜ืจืึธืœื™ืจื•ื ื’ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ื’ืขื–ื•ื ื˜. ืข ื ืื™ ื– ืื‘ืข ืจ ื ื™ืฉ ื˜ ื’ืขืฐืข ืŸ ืงืฒ ืŸ ืžื™ื˜ืขืœ , ืฆ ื• ื ืขืžืข ืŸ ืงืฒ ืŸ ืงืขืจืขืงื˜ื™ื•ื• ืข ืืงืฆื™ืขืก . ืœืึธื’ืก ื–ืขื ืขืŸ ื ืึธืš ื ื•ืฆื™ืง ื”ื™ื™ึทื ื˜ ื–ื™ื™ ื“ืึทืจืคึฟืŸ ืฆื• ื–ื™ื™ืŸ ื’ืขื–ืืžืœื˜ ืื•ืŸ ื’ืขืฉื™ืงื˜ ืฆื• ืึท ืœืึธื’ ื–ืึทืžืœื•ื ื’ ืกื™ืกื˜ืขื ืคึฟืึทืจ ืึทื ืึทืœื™ื™ื–ื™ื ื’ ื ื•ื™ื˜ืคืึทืœ ืกื™ื˜ื•ืึทื˜ื™ืึธื ืก ืื•ืŸ ืžืึทื›ืŸ ื“ื™ืกื™ื–ืฉืึทื ื–. [ืึทืœืข ื“ืขื ืงืขืŸ ื–ื™ื™ืŸ ื’ืขื˜ืืŸ ืึธืŸ ื•ื•ืึธืœืงืŸ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– ื ื™ืฆืŸ ืžืึธื ื™ื˜, ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ืึธื‘ืขืจ ืžื™ื˜ ืง8ืก ืขืก ืื™ื– ื’ืขื•ื•ืืจืŸ ืคื™ืœ ื’ืจื™ื ื’ืขืจ :) - ืจืขื“ืึทืงื˜ืึธืจ ืก ื˜ืึธืŸ. ]

ื”ื™ื™ึทื ื˜, ืงืขืจืขืงืฉืึทื ื– ืžื•ื–ืŸ ื–ื™ื™ืŸ ื’ืขืžืื›ื˜ ื›ึผืžืขื˜ ืื™ืŸ ืคืึทืงื˜ื™ืฉ ืฆื™ื™ื˜, ืึทื–ื•ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– ื ื™ื˜ ืžืขืจ ื”ืึธื‘ืŸ ืฆื• ื–ื™ื™ืŸ ืฉื•ื•ืึทืจืฅ ื‘ืึธืงืกืขืก. ื ื™ื™ืŸ, ื–ื™ื™ ื–ืึธืœ ื•ื•ื™ื™ึทื–ืŸ ืขื ื“ืคึผืึธื™ื ืฅ ื•ื•ืึธืก ืœืึธื–ืŸ ืžืึธื ื™ื˜ืึธืจื™ื ื’ ืกื™ืกื˜ืขืžืขืŸ ืฆื• ืึธื ืคึฟืจืขื’ ืื•ืŸ ืงืœื™ื™ึทื‘ืŸ ื•ื•ืขืจื˜ืคื•ืœ ื“ืึทื˜ืŸ ื•ื•ืขื’ืŸ ื“ื™ ืฉื˜ืึทื˜ ืคื•ืŸ ืคึผืจืึทืกืขืกืึทื– ืึทื–ื•ื™ ืึทื– ื–ื™ื™ ืงืขื ืขืŸ ืจื™ืกืคึผืึทื ื“ ื˜ื™ื™ืงืขืฃ ืื•ื™ื‘ ื ื™ื™ื˜ื™ืง. ื“ืึธืก ืื™ื– ื’ืขืจื•ืคืŸ ื“ื™ ืคืึธืจืฉื˜ืขืœื•ื ื’ ื˜ืขืกื˜ ืคึผืœืึทืŸ ืžื•ืกื˜ืขืจ, ื•ื•ืึธืก ื’ื™ื™ื˜ ื“ื™ ื”ื•ื™ืš ืึธื‘ืกืขืจื•ื•ืึทื‘ื™ืœื™ื˜ื™ ืคึผืจื™ื ืฆื™ืคึผ (HOP).

Kubernetes ืึธืคืคืขืจืก 2 ื˜ื™ื™ืคึผืก ืคื•ืŸ ื’ืขื–ื•ื ื˜ ื˜ืฉืขืงืก ื“ื•ืจืš ืคืขืœื™ืงื™ื™ึทื˜: ื’ืจื™ื™ื˜ืงื™ื™ึทื˜ ืคึผืจืึธื‘ืข ืื•ืŸ ืœืขื‘ืŸื ืขืกืก ืคึผืจืึธื‘ืข. ื‘ื™ื™ื“ืข ื ื•ืฆืŸ ื“ื™ ื–ืขืœื‘ืข ื˜ื™ื™ืคึผืก ืคื•ืŸ ื˜ืฉืขืงืก (HTTP GET ืจื™ืงื•ื•ืขืก, TCP ืงืึธืžื•ื ื™ืงืึทืฆื™ืข ืื•ืŸ ื‘ืึทืคึฟืขืœืŸ ื“ื•ืจื›ืคื™ืจื•ื ื’). ื–ื™ื™ ื–ืขื ืขืŸ ืึทื ื“ืขืจืฉ ืื™ืŸ ื•ื•ืึธืก ื“ื™ืกื™ื–ืฉืึทื ื– ื–ื™ื™ ืžืึทื›ืŸ ืื™ืŸ ืขื ื˜ืคืขืจ ืฆื• ืคึผืจืึธื‘ืœืขืžืก ืื™ืŸ ื“ื™ ืคึผืึธื“ืก. livenessProbe ืจื™ืกื˜ืึทืจื˜ ื“ืขื ืงืึทื ื˜ื™ื™ื ืขืจ ืื™ืŸ ื“ืขืจ ื”ืึธืคืขื ื•ื ื’ ืึทื– ื“ืขืจ ื˜ืขื•ืช ื•ื•ืขื˜ ื ื™ืฉื˜ ืคึผืึทืกื™ืจืŸ ื•ื•ื™ื“ืขืจ, ืื•ืŸ ReadinessProbe ื™ื–ืึธืœื™ื™ืฅ ื“ื™ ืคึผืึธื“ ืคื•ืŸ ื™ื ืงืึทืžื™ื ื’ ืคืึทืจืงืขืจ ื‘ื™ื– ื“ื™ ืกื™ื‘ื” ืคื•ืŸ ื“ืขื ืคึผืจืึธื‘ืœืขื ืื™ื– ืกืึทืœื•ื•ื“.

ื’ืขื”ืขืจื™ืง ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืคึผืœืึทืŸ ื–ืึธืœ ืึทืจื™ื™ึทื ื ืขืžืขืŸ ื‘ื™ื™ื“ืข ื˜ื™ื™ืคึผืก ืคื•ืŸ ืงืึธื ื˜ืจืึธืœื™ืจื•ื ื’ ืื•ืŸ ืขื ืฉื•ืจ ืึทื– ื–ื™ื™ ืงืœื™ื™ึทื‘ืŸ ื’ืขื ื•ื’ ื“ืึทื˜ืŸ, ืกืคึผืขืฆื™ืขืœ ื•ื•ืขืŸ ืึท ื•ื™ืกื ืขื ืื™ื– ืืจืœื ื’ืขื•ื•ืืจืคืŸ. ืขืก ื–ืึธืœ ืื•ื™ืš ื•ื•ื™ื™ึทื–ืŸ ื“ื™ ื ื•ื™ื˜ื™ืง ืึทืคึผื™ ืขื ื“ืคึผืึธื™ื ืฅ ื•ื•ืึธืก ืฆื•ืฉื˜ืขืœืŸ ื“ื™ ืžืึธื ื™ื˜ืึธืจื™ื ื’ ืกื™ืกื˜ืขื (ืคึผืจืึธืžืขื˜ื”ืขื•ืก) ืžื™ื˜ ื•ื•ื™ื›ื˜ื™ืง ื’ืขื–ื•ื ื˜ ืžืขื˜ืจื™ืงืก.

ืžืงื•ืจ: www.habr.com

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’