ื™ืงืกืคึผืึทื ื“ื™ื ื’ ืื•ืŸ ืงืึทืžืคึผืœืึทืžืขื ื˜ื™ื ื’ Kubernetes (ืจืขืฆืขื ื–ื™ืข ืื•ืŸ ื•ื•ื™ื“ืขื ื‘ืึทืจื™ื›ื˜)

ื™ืงืกืคึผืึทื ื“ื™ื ื’ ืื•ืŸ ืงืึทืžืคึผืœืึทืžืขื ื˜ื™ื ื’ Kubernetes (ืจืขืฆืขื ื–ื™ืข ืื•ืŸ ื•ื•ื™ื“ืขื ื‘ืึทืจื™ื›ื˜)

8 ืืคืจื™ืœ ื‘ื™ื™ึท ื“ืขืจ ืงืึธื ืคึฟืขืจืขื ืฅ Saint HighLoad++ 2019, ื•ื•ื™ ืึท ื˜ื™ื™ืœ ืคื•ืŸ ื“ืขืจ ืึธืคึผื˜ื™ื™ืœื•ื ื’ "DevOps and Operations", ืึท ื‘ืึทืจื™ื›ื˜ "ืขืงืกืคึผืึทื ื“ื™ื ื’ ืื•ืŸ ืงืึทืžืคึผืœืึทืžืขื ื˜ื™ื ื’ ืงื•ื‘ืขืจื ืขื˜ืขืก", ืื™ืŸ ื“ืขืจ ืฉืึทืคื•ื ื’ ืคื•ืŸ ื•ื•ืึธืก ื“ืจื™ื™ ืขืžืคึผืœื•ื™ื™ื– ืคื•ืŸ ื“ื™ ืคืœืึทื ื˜ ืคื™ืจืžืข ืื ื˜ื™ื™ืœื’ืขื ื•ืžืขืŸ. ืื™ืŸ ืขืก, ืžื™ืจ ืจืขื“ืŸ ื•ื•ืขื’ืŸ ืคื™ืœืข ืกื™ื˜ื•ืึทื˜ื™ืึธื ืก ืื™ืŸ ื•ื•ืึธืก ืžื™ืจ ื’ืขื•ื•ืืœื˜ ืฆื• ื™ืงืกืคึผืึทื ื“ ืื•ืŸ ื“ืขืจื’ืึทื ื’ ื“ื™ ืงื™ื™ืคึผืึทื‘ื™ืœืึทื˜ื™ื– ืคื•ืŸ Kubernetes, ืึธื‘ืขืจ ืคึฟืึทืจ ื•ื•ืึธืก ืžื™ืจ ื”ืึธื‘ืŸ ื ื™ืฉื˜ ื’ืขืคึฟื•ื ืขืŸ ืึท ืคืึทืจื˜ื™ืง ืื•ืŸ ืคึผืฉื•ื˜ ืœื™ื™ื–ื•ื ื’. ืžื™ืจ ื”ืึธื‘ืŸ ื“ื™ ื ื™ื™ื˜ื™ืง ืกืึทืœื•ืฉืึทื ื– ืื™ืŸ ื“ื™ ืคืึธืจืขื ืคื•ืŸ ืขืคึฟืŸ ืžืงื•ืจ ืคึผืจืึทื“ื–ืฉืขืงืก, ืื•ืŸ ื“ื™ ืจืขื“ืข ืื™ื– ืื•ื™ืš ื“ืขื“ืึทืงื™ื™ื˜ืึทื“ ืฆื• ื–ื™ื™.

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

ื”ืึทืจืฅ ืื•ืŸ ืึทื“ื™ืฉืึทื ื– ืื™ืŸ K8s

Kubernetes ืื™ื– ื˜ืฉืึทื ื’ื™ื ื’ ื“ื™ ื™ื ื“ืึทืกื˜ืจื™ ืื•ืŸ ืึทืคึผืจืึธื•ื˜ืฉื™ื– ืฆื• ืึทื“ืžื™ื ื™ืกื˜ืจืึทืฆื™ืข ื•ื•ืึธืก ื”ืึธื‘ืŸ ืœืึทื ื’ ืฉื•ื™ืŸ ื’ืขื’ืจื™ื ื“ืขื˜:

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

ืึธื‘ืขืจ, ืคื•ืŸ ืงื•ืจืก, ืึทืœืฅ ืื™ื– ื ื™ืฉื˜ ืึทื–ื•ื™ ื’ืœืึทื˜: ืงื•ื‘ืขืจื ืขื˜ืขืก ืื•ื™ืš ื’ืขื‘ืจืื›ื˜ ื–ื™ื™ืŸ ืื™ื™ื’ืขื ืข ื ื™ื™ึทืข ื˜ืฉืึทืœืึทื ื“ื–ืฉื™ื–.

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

ื™ืงืกืคึผืึทื ื“ื™ื ื’ ืื•ืŸ ืงืึทืžืคึผืœืึทืžืขื ื˜ื™ื ื’ Kubernetes (ืจืขืฆืขื ื–ื™ืข ืื•ืŸ ื•ื•ื™ื“ืขื ื‘ืึทืจื™ื›ื˜)

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

ื™ืงืกืคึผืึทื ื“ื™ื ื’ ืื•ืŸ ืงืึทืžืคึผืœืึทืžืขื ื˜ื™ื ื’ Kubernetes (ืจืขืฆืขื ื–ื™ืข ืื•ืŸ ื•ื•ื™ื“ืขื ื‘ืึทืจื™ื›ื˜)

ืื•ื™ืฃ ื“ื™ ืื ื“ืขืจืข ื”ืึทื ื˜, K8s ืึธืคืคืขืจืก ื’ืจื•ื™ืก ืึทืคึผืขืจื˜ื•ื ืึทื˜ื™ื– ืฆื• ื™ืงืกืคึผืึทื ื“ ื“ื™ ื‘ื ื™ืžืฆื ืคืึทื ื’ืงืฉืึทื ื–, ื•ื•ืึธืก ื”ืขืœืคึฟืŸ ืฆื• ืคืึทืจืžืึทื›ืŸ ืื ื“ืขืจืข - ืกืคึผืขืฆื™ืคื™ืฉ โ€” ื‘ืึทื ื™ืฆืขืจ ื“ืึทืจืฃ. ืึทื“ื™ืฉืึทื ื– ืฆื• ืงื•ื‘ืขืจื ืขื˜ืขืก ื–ืขื ืขืŸ ื“ื™ ืคึฟืึทืจืึทื ื˜ื•ื•ืึธืจื˜ืœืขื›ืงื™ื™ื˜ ืคื•ืŸ ืงื ื•ื™ืœ ืึทื“ืžื™ื ื™ืกื˜ืจืึทื˜ืึธืจืก, ื•ื•ืึธืก ืžื•ื–ืŸ ื™ื ืกื˜ืึทืœื™ืจืŸ ืื•ืŸ ืงืึทื ืคื™ื’ื™ืขืจ ืึทืœืฅ ื ื™ื™ื˜ื™ืง ืฆื• ื‘ืึทืงื•ืžืขืŸ ื–ื™ื™ืขืจ ืงื ื•ื™ืœ "ืื™ืŸ ื“ื™ ืจืขื›ื˜ ืคืึธืจืขื" [ืฆื• ืกืึธืœื•ื•ืข ื–ื™ื™ืขืจ ืกืคึผืขืฆื™ืคื™ืฉ ืคึผืจืึธื‘ืœืขืžืก]. ื•ื•ืึธืก ืžื™ืŸ ืคื•ืŸ ื”ื•ืกืคื•ืช ื–ืขื ืขืŸ ื“ืึธืก? ื–ืืœ ืก ืงื•ืง ื‘ื™ื™ึท ืขื˜ืœืขื›ืข ื‘ื™ื™ืฉืคื™ืœืŸ.

ื‘ื™ื™ืฉืคื™ืœืŸ ืคื•ืŸ ืึทื“ื™ืฉืึทื ื–

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

ื™ืงืกืคึผืึทื ื“ื™ื ื’ ืื•ืŸ ืงืึทืžืคึผืœืึทืžืขื ื˜ื™ื ื’ Kubernetes (ืจืขืฆืขื ื–ื™ืข ืื•ืŸ ื•ื•ื™ื“ืขื ื‘ืึทืจื™ื›ื˜)

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

ืื ื“ืขืจืข ื‘ื™ื™ืฉืคื™ืœืŸ ืึทืจื™ื™ึทื ื ืขืžืขืŸ:

  • ื™ื ื’ืจืขืกืก-ืงืึทื ื˜ืจืึธื•ืœืขืจื– (ื–ืขืŸ ื–ื™ื™ืขืจ ืจืขืฆืขื ื–ื™ืข ืื™ืŸ ืื•ื ื“ื–ืขืจ ืคืจื™ืฉ ืึทืจื˜ื™ืงืœ).
  • ืกืขืจื˜-ืคืึทืจื•ื•ืึทืœื˜ืขืจ:

    ื™ืงืกืคึผืึทื ื“ื™ื ื’ ืื•ืŸ ืงืึทืžืคึผืœืึทืžืขื ื˜ื™ื ื’ Kubernetes (ืจืขืฆืขื ื–ื™ืข ืื•ืŸ ื•ื•ื™ื“ืขื ื‘ืึทืจื™ื›ื˜)

  • Operators ืื™ื– ืึท ื’ืึทื ืฅ ืงืœืึทืก ืคื•ืŸ ืึทื“-ืึธื ืก (ื•ื•ืึธืก ื›ื•ืœืœ ื“ื™ ื“ืขืจืžืื ื˜ ืกืขืจื˜-ืคืึทืจื•ื•ืึทืœื˜ืขืจ), ื–ื™ื™ ื“ืขืคื™ื ื™ืจืŸ ืคึผืจื™ืžื™ื˜ื™ื•ื• (s) ืื•ืŸ ืงืึธื ื˜ืจืึธืœืœืขืจ (s). ื“ื™ ืœืึธื’ื™ืง ืคื•ืŸ ื–ื™ื™ืขืจ ืึทืจื‘ืขื˜ ืื™ื– ืœื™ืžื™ื˜ืขื“ ื‘ืœื•ื™ื– ื“ื•ืจืš ืื•ื ื“ื–ืขืจ ืคืึทื ื˜ืึทื–ื™ืข ืื•ืŸ ืึทืœืึทื•ื– ืื•ื ื“ื– ืฆื• ื•ื•ืขื ื“ืŸ ืคืึทืจื˜ื™ืง ื™ื ืคืจืึทืกื˜ืจืึทืงื˜ืฉืขืจ ืงืึทืžืคึผืึธื•ื ืึทื ืฅ (ืœืžืฉืœ, ืึท DBMS) ืื™ืŸ ืคึผืจื™ืžื™ื˜ื™ื•ื•ื–, ื•ื•ืึธืก ื–ืขื ืขืŸ ืคื™ืœ ื’ืจื™ื ื’ืขืจ ืฆื• ืึทืจื‘ืขื˜ืŸ ืžื™ื˜ (ื•ื•ื™ ืžื™ื˜ ืึท ื’ืึทื ื’ ืคื•ืŸ ืงืึทื ื˜ื™ื™ื ืขืจื– ืื•ืŸ ื–ื™ื™ืขืจ ืกืขื˜ื˜ื™ื ื’ืก). ื ืจื™ื–ื™ืง ื ื•ืžืขืจ ืคื•ืŸ ืึธืคึผืขืจื™ื™ื˜ืขืจื– ื–ืขื ืขืŸ ื’ืขืฉืจื™ื‘ืŸ - ืืคื™ืœื• ืื•ื™ื‘ ืคื™ืœืข ืคื•ืŸ โ€‹โ€‹โ€‹โ€‹ื–ื™ื™ ื–ืขื ืขืŸ ื ื™ืฉื˜ ื’ืจื™ื™ื˜ ืคึฟืึทืจ ืคึผืจืึธื“ื•ืงืฆื™ืข, ื“ืึธืก ืื™ื– ื‘ืœื•ื™ื– ืึท ืขื ื™ืŸ ืคื•ืŸ ืฆื™ื™ื˜:

    ื™ืงืกืคึผืึทื ื“ื™ื ื’ ืื•ืŸ ืงืึทืžืคึผืœืึทืžืขื ื˜ื™ื ื’ Kubernetes (ืจืขืฆืขื ื–ื™ืข ืื•ืŸ ื•ื•ื™ื“ืขื ื‘ืึทืจื™ื›ื˜)

  • ืžืขื˜ืจื™ืงืก - ืืŸ ืื ื“ืขืจ ื’ืขืžืขืœ ืคื•ืŸ ื•ื•ื™ Kubernetes ืืคื’ืขืฉื™ื™ื“ื˜ ื“ื™ ืฆื•ื‘ื™ื ื“ (Metrics API) ืคื•ืŸ ื“ื™ ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ (ื“ืจื™ื˜-ืคึผืึทืจื˜ื™ื™ ืœื™ื™ื’-ืึธื ืก ืึทื–ืึท ื•ื•ื™ ืคึผืจืึธืžืขื˜ื”ืขื•ืก ืึทื“ืึทืคึผื˜ืขืจ, ื“ืึทื˜ืึทื“ืึธื’ ืงื ื•ื™ืœ ืึทื’ืขื ื˜ ...).
  • ืคืึทืจ ืžืึธื ื™ื˜ืึธืจื™ื ื’ ืื•ืŸ ืกื˜ืึทื˜ื™ืกื˜ื™ืง, ื•ื•ื• ืื™ืŸ ืคื™ืจ ื ื™ื˜ ื‘ืœื•ื™ื– ื–ืขื ืขืŸ ื“ืืจืฃ ืคึผืจืึธืžืขื˜ื”ืขื•ืก ืื•ืŸ ื’ืจืึทืคืึทื ืึท, ืึธื‘ืขืจ ืื•ื™ืš ืงื•ื‘ืข-ืฉื˜ืึทื˜-ืžืขื˜ืจื™ืงืก, ื ืึธื“ืข-ืขืงืกืคึผืึธืจื˜ืขืจ, ืืื–"ื• ื•.

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

ืึทื•ื˜ืึธืžืึทื˜ื™ืึธืŸ

ืึธืคึผืขืจื™ื™ื˜ืขืจื– ื–ืขื ืขืŸ ื“ื™ื–ื™ื™ื ื“ ืฆื• ืึธื˜ืึทืžื™ื™ื˜ ืจื•ื˜ื™ืŸ ืึทืคึผืขืจื™ื™ืฉืึทื ื– ื•ื•ืึธืก ืžื™ืจ ื˜ืจืขืคืŸ ื™ืขื“ืขืจ ื˜ืึธื’. ื“ืึธ ื–ืขื ืขืŸ ืคืึทืงื˜ื™ืฉ-ืœืขื‘ืŸ ื‘ื™ื™ืฉืคื™ืœืŸ ืคึฟืึทืจ ื•ื•ืึธืก ืฉืจื™ื™ื‘ืŸ ืึทืŸ ืึธืคึผืขืจืึทื˜ืึธืจ ื•ื•ืึธืœื˜ ื–ื™ื™ืŸ ืึท ื•ื™ืกื’ืขืฆื™ื™ื›ื ื˜ ืœื™ื™ื–ื•ื ื’:

  1. ืขืก ืื™ื– ืึท ืคึผืจื™ื•ื•ืึทื˜ (ื“"ื” ืจื™ืงื•ื•ื™ื™ืจื™ื ื’ ืึท ืœืึธื’ื™ืŸ) ืจืขื’ื™ืกื˜ืจื™ ืžื™ื˜ ื‘ื™ืœื“ืขืจ ืคึฟืึทืจ ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ. ืขืก ืื™ื– ืื ื’ืขื ื•ืžืขืŸ ืึทื– ื™ืขื“ืขืจ ืคึผืึธื“ ืื™ื– ืึทืกื™ื™ื ื“ ืึท ืกืคึผืขืฆื™ืขืœ ืกื•ื“ ื•ื•ืึธืก ืึทืœืึทื•ื– ืึธื˜ืขื ื˜ืึทืงื™ื™ืฉืึทืŸ ืื™ืŸ ื“ื™ ืจืขื’ื™ืกื˜ืจื™. ืื•ื ื“ื–ืขืจ ืึทืจื‘ืขื˜ ืื™ื– ืฆื• ืขื ืฉื•ืจ ืึทื– ื“ืขืจ ืกื•ื“ ืื™ื– ื’ืขืคึฟื•ื ืขืŸ ืื™ืŸ ื“ื™ ื ืึทืžืขืกืคึผืึทืกืข ืึทื–ื•ื™ ืึทื– ืคึผืึธื“ืก ืงืขื ืขืŸ ืืจืืคืงืืคื™ืข ื‘ื™ืœื“ืขืจ. ืขืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ืึท ืคึผืœืึทืฅ ืคื•ืŸ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– (ื™ืขื“ืขืจ ืคื•ืŸ ื•ื•ืึธืก ื“ืึทืจืฃ ืึท ืกื•ื“), ืื•ืŸ ืขืก ืื™ื– ื ื•ืฆื™ืง ืฆื• ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงืŸ ื“ื™ ืกื™ืงืจื™ืฅ ื–ื™ืš ืงืขืกื™ื™ื“ืขืจ, ืึทื–ื•ื™ ื“ื™ ืึธืคึผืฆื™ืข ืคื•ืŸ โ€‹โ€‹ืืจื•ื™ืคืœื™ื™ื’ืŸ ืกื™ืงืจื™ืฅ ืžื™ื˜ ื”ืึทื ื˜ ืื™ื– ื™ืœื™ืžืึทื ื™ื™ื˜ืึทื“. ื“ืึธืก ืื™ื– ื•ื•ื• ื“ืขืจ ืึธืคึผืขืจืึทื˜ืึธืจ ืงื•ืžื˜ ืฆื• ืจืึทื˜ืขื•ื•ืขืŸ: ืžื™ืจ ืžืึทื›ืŸ ืึท ืงืึธื ื˜ืจืึธืœืœืขืจ ื•ื•ืึธืก ื•ื•ืขื˜ ื•ื•ืึทืจื˜ืŸ ื‘ื™ื– ื“ื™ ื ืึธืžืขืŸ ืกืคึผื™ื™ืก ื•ื•ืขื˜ ื“ืขืจืฉื™ื™ึทื ืขืŸ ืื•ืŸ, ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ื“ืขื ื’ืขืฉืขืขื ื™ืฉ, ืœื™ื™ื’ืŸ ืึท ืกื•ื“ ืฆื• ื“ื™ ื ืึทืžืขืกืคึผืึทืกืข.
  2. ืœืึธื–ืŸ ื“ื•ืจืš ืคืขืœื™ืงื™ื™ึทื˜ ืึทืงืกืขืก ืคื•ืŸ ืคึผืึธื“ืก ืฆื• ื“ื™ ืื™ื ื˜ืขืจื ืขื˜ ืื™ื– ืคึผืจืึธื•ื›ื™ื‘ืึทื˜ืึทื“. ืื‘ืขืจ ืžืืœ ืขืก ืงืขืŸ ื–ื™ื™ืŸ ืคืืจืœืื ื’ื˜: ืขืก ืื™ื– ืœืึทื“ื–ืฉื™ืงืึทืœ ืคึฟืึทืจ ื“ื™ ืึทืงืกืขืก ื“ืขืจืœื•ื™ื‘ืขื ื™ืฉ ืžืขืงืึทื ื™ื–ืึทื ืฆื• ืึทืจื‘ืขื˜ืŸ ืคืฉื•ื˜, ืึธืŸ ืจื™ืงื•ื•ื™ื™ืจื™ื ื’ ืกืคึผืขืฆื™ืคื™ืฉ ืกืงื™ืœื–, ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ื“ื•ืจืš ื“ืขื ื‘ื™ื™ึทื–ื™ื™ึทืŸ ืคื•ืŸ ืึท ื–ื™ื›ืขืจ ืคื™ืจืžืข ืื™ืŸ ื“ื™ ื ืึทืžืขืกืคึผืึทืกืข. ื•ื•ื™ ืงืขืŸ ื“ืขืจ ืึธืคึผืขืจืึทื˜ืึธืจ ืื•ื ื“ื– ื”ืขืœืคืŸ ื“ืึธ? ื ืงืึธื ื˜ืจืึธืœืœืขืจ ืื™ื– ื‘ืืฉืืคืŸ ื•ื•ืึธืก ื•ื•ื™ื™ืฅ ืคึฟืึทืจ ื“ื™ ืคื™ืจืžืข ืฆื• ื“ืขืจืฉื™ื™ึทื ืขืŸ ืื™ืŸ ื“ื™ ื ืึทืžืขืกืคึผืึทืกืข ืื•ืŸ ืžื•ืกื™ืฃ ื“ื™ ืฆื•ื ืขืžืขืŸ ืคึผืึธืœื™ื˜ื™ืง ืคึฟืึทืจ ืื™ื ื˜ืขืจื ืขื˜ ืึทืงืกืขืก.
  3. ืึท ืขื ืœืขืš ืกื™ื˜ื•ืึทืฆื™ืข: ืจืขื›ืŸ ืžื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืœื™ื™ื’ืŸ ืึท ื–ื™ื›ืขืจ ืคืœืขืง, ืื•ื™ื‘ ืขืก ื”ืื˜ ืึท ืขื ืœืขืš ืคื™ืจืžืข (ืžื™ื˜ ืขื˜ืœืขื›ืข ืคึผืจืขืคื™ืงืก). ื“ื™ ืึทืงืฉืึทื ื– ืžื™ื˜ ื“ืขืจ ืึธืคึผืขืจืึทื˜ืึธืจ ื–ืขื ืขืŸ ืงืœืึธืจ ื•ื•ื™ ื“ืขืจ ื˜ืึธื’ ...

ืื™ืŸ ืงื™ื™ืŸ ืงื ื•ื™ืœ, ืจื•ื˜ื™ืŸ ื˜ืึทืกืงืก ืžื•ื–ืŸ ื–ื™ื™ืŸ ืกืึทืœื•ื•ื“, ืื•ืŸ ืจื™ื›ื˜ื™ืง ื“ืึธืก ืงืขืŸ ื–ื™ื™ืŸ ื’ืขื˜ืืŸ ืžื™ื˜ ืึธืคึผืขืจื™ื™ื˜ืขืจื–.

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

ื•ื•ื™ ืฆื• ืฉืจื™ื™ึทื‘ืŸ ืึท ื“ืขืจืงืœืขืจื•ื ื’ ืคึฟืึทืจ Kubernetes?

ืื™ืŸ ืึทืœื’ืขืžื™ื™ืŸ, ื“ื™ ืกื›ืขืžืข ืื™ื– ืคึผืฉื•ื˜:

ื™ืงืกืคึผืึทื ื“ื™ื ื’ ืื•ืŸ ืงืึทืžืคึผืœืึทืžืขื ื˜ื™ื ื’ Kubernetes (ืจืขืฆืขื ื–ื™ืข ืื•ืŸ ื•ื•ื™ื“ืขื ื‘ืึทืจื™ื›ื˜)

... ืึธื‘ืขืจ ื“ืขืžืึธืœื˜ ืขืก ื˜ื•ืจื ืก ืื•ื™ืก ืึทื–:

  • ื“ื™ Kubernetes API ืื™ื– ืึท ื’ืึทื ืฅ ื ื™ื˜-ื ื™ื˜ื•ื•ื™ืึทืœ ื–ืึทืš ื•ื•ืึธืก ื ืขืžื˜ ืึท ืคึผืœืึทืฅ ืคื•ืŸ ืฆื™ื™ื˜ ืฆื• ื‘ืขืœ;
  • ืคึผืจืึธื’ืจืึทืžืžื™ื ื’ ืื™ื– ืื•ื™ืš ื ื™ืฉื˜ ืคึฟืึทืจ ืึทืœืขืžืขืŸ (ื“ื™ Go ืฉืคึผืจืึทืš ืื™ื– ืื•ื™ืกื“ืขืจื•ื•ื™ื™ืœื˜ ื•ื•ื™ ื“ื™ ื‘ื™ืœื›ืขืจ ืฉืคึผืจืึทืš ื•ื•ื™ื™ึทืœ ืขืก ืื™ื– ืึท ืกืคึผืขืฆื™ืขืœ ืคืจื™ื™ืžื•ื•ืขืจืง ืคึฟืึทืจ ืขืก - ืึธืคึผืขืจืึทื˜ืึธืจ ืกื“ืง);
  • ื“ื™ ืกื™ื˜ื•ืึทืฆื™ืข ืื™ื– ืขื ืœืขืš ืžื™ื˜ ื“ื™ ืคืจื™ื™ืžื•ื•ืขืจืง ื–ื™ืš.

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

ื™ืงืกืคึผืึทื ื“ื™ื ื’ ืื•ืŸ ืงืึทืžืคึผืœืึทืžืขื ื˜ื™ื ื’ Kubernetes (ืจืขืฆืขื ื–ื™ืข ืื•ืŸ ื•ื•ื™ื“ืขื ื‘ืึทืจื™ื›ื˜)

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

ืฉืึธืœ-ืึธืคึผืขืจืึทื˜ืึธืจ

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

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

ื ืงืจื•ืง ืื™ื– ืึท ื‘ืึทืฉ ืฉืจื™ืคื˜ ืึธื“ืขืจ ืงื™ื™ืŸ ืื ื“ืขืจืข ืขืงืกืขืงื•ื˜ืึทื‘ืœืข ื˜ืขืงืข ื•ื•ืึธืก ืึทืงืกืขืคึผืฅ ืึท ืื™ื™ืŸ ืึทืจื’ื•ืžืขื ื˜ --config ืื•ืŸ ืจื™ืกืคึผืึทื ื“ื– ืžื™ื˜ JSON. ื“ื™ ื™ืขื ืขืจ ื‘ืึทืฉื˜ื™ืžื˜ ื•ื•ืึธืก ืึทื‘ื“ื–ืฉืขืงืฅ ื–ืขื ืขืŸ ืคื•ืŸ ืื™ื ื˜ืขืจืขืก ืฆื• ืื™ื ืื•ืŸ ื•ื•ืึธืก ื’ืขืฉืขืขื ื™ืฉืŸ (ืคึฟืึทืจ ื“ื™ ืึทื‘ื“ื–ืฉืขืงืฅ) ื–ืึธืœ ื–ื™ื™ืŸ ืจื™ืกืคึผืึทื ื“ ืฆื•:

ื™ืงืกืคึผืึทื ื“ื™ื ื’ ืื•ืŸ ืงืึทืžืคึผืœืึทืžืขื ื˜ื™ื ื’ Kubernetes (ืจืขืฆืขื ื–ื™ืข ืื•ืŸ ื•ื•ื™ื“ืขื ื‘ืึทืจื™ื›ื˜)

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

ืคื™ืจ: 1. ืฉืจื™ื™ื‘ ืึท ืงืจื•ืง

ืขืจืฉื˜ืขืจ ืคื•ืŸ ืึทืœืข, ืื™ืŸ ื“ื™ ืคืึทืจื˜ืฉืขืคึผืขืŸ ืžื™ืจ ื•ื•ืขืœืŸ ืคึผืจืึธืฆืขืก --config, ื™ื ื“ืึทืงื™ื™ื˜ื™ื ื’ ืึทื– ืžื™ืจ ื–ืขื ืขืŸ ืื™ื ื˜ืขืจืขืกื™ืจื˜ ืื™ืŸ ื ืึธืžืขืŸ ืกืคึผื™ื™ืกืึทื–, ืื•ืŸ ืกืคึผืึทืกื™ืคื™ืงืœื™, ื“ืขืจ ืžืึธืžืขื ื˜ ืคื•ืŸ ื–ื™ื™ืขืจ ืฉืึทืคื•ื ื’:

[[ $1 == "--config" ]] ; then
  cat << EOF
{
  "onKubernetesEvent": [
    {
      "kind": "namespace",
      "event": ["add"]
    }
  ]
}
EOF
โ€ฆ

ื•ื•ื™ ื•ื•ืึธืœื˜ ื“ื™ ืœืึธื’ื™ืง ืงื•ืงืŸ ื•ื•ื™? ืื•ื™ืš ื’ืึทื ืฅ ืคึผืฉื•ื˜:

โ€ฆ
else
  createdNamespace=$(jq -r '.[0].resourceName' $BINDING_CONTEXT_PATH)
  kubectl create -n ${createdNamespace} -f - << EOF
Kind: Secret
...
EOF
fi

ื“ืขืจ ืขืจืฉื˜ืขืจ ืฉืจื™ื˜ ืื™ื– ืฆื• ื’ืขืคึฟื™ื ืขืŸ ืื•ื™ืก ื•ื•ืึธืก ื ืึทืžืขืกืคึผืึทืกืข ืื™ื– ื‘ืืฉืืคืŸ, ืื•ืŸ ื“ื™ ืจื’ืข ืื™ื– ืฆื• ืฉืึทืคึฟืŸ ืขืก ื ื™ืฆืŸ kubectl ืกื•ื“ ืคึฟืึทืจ ื“ืขื ื ืึธืžืขืŸ ืคึผืœืึทืฅ.

ืคื™ืจ: 2. ืึทืกืขืžื‘ืึทืœ ื“ื™ ื‘ื™ืœื“

ืึทืœืข ื•ื•ืึธืก ื‘ืœื™ื™ื‘ื˜ ืื™ื– ืฆื• ืคืึธืจืŸ ื“ื™ ื‘ืืฉืืคืŸ ืงืจื•ืง ืฆื• ื“ื™ ืฉืึธืœ-ืึธืคึผืขืจืึทื˜ืึธืจ - ื•ื•ื™ ืฆื• ื˜ืึธืŸ ื“ืึธืก? ื“ื™ ืฉืึธืœ ืึธืคึผืขืจืึทื˜ืึธืจ ื–ื™ืš ืงื•ืžื˜ ื•ื•ื™ ืึท ื“ืึธืงืขืจ ื‘ื™ืœื“, ืึทื–ื•ื™ ืื•ื ื“ื–ืขืจ ืึทืจื‘ืขื˜ ืื™ื– ืฆื• ืœื™ื™ื’ืŸ ื“ืขื ืงืจื•ืง ืฆื• ืึท ืกืคึผืขืฆื™ืขืœ ื•ื•ืขื’ื•ื•ื™ื™ึทื–ืขืจ ืื™ืŸ ื“ืขื ื‘ื™ืœื“:

FROM flant/shell-operator:v1.0.0-beta.1
ADD my-handler.sh /hooks

ืึทืœืข ื•ื•ืึธืก ื‘ืœื™ื™ื‘ื˜ ืื™ื– ืฆื• ืึทืกืขืžื‘ืึทืœ ืขืก ืื•ืŸ ืฉื˜ื•ืคึผืŸ ืขืก:

$ docker build -t registry.example.com/my-operator:v1 .
$ docker push registry.example.com/my-operator:v1

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

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: my-operator
spec:
  template:
    spec:
      containers:
      - name: my-operator
        image: registry.example.com/my-operator:v1 # 1
      serviceAccountName: my-operator              # 2

ืขืก ื–ืขื ืขืŸ ืฆื•ื•ื™ื™ ืคื•ื ืงื˜ืŸ ืฆื• ื‘ืึทืฆืึธืœืŸ ื•ืคืžืขืจืงื–ืึทืžืงื™ื™ึทื˜ ืฆื•:

  1. ืึธื ื•ื•ื™ื™ึทื– ืคื•ืŸ ื“ื™ ื ื™ื™ ื‘ืืฉืืคืŸ ื‘ื™ืœื“;
  2. ื“ืึธืก ืื™ื– ืึท ืกื™ืกื˜ืขื ืงืึธืžืคึผืึธื ืขื ื˜ ื•ื•ืึธืก (ืื™ืŸ ืึท ืžื™ื ื™ืžื•ื) ื“ืึทืจืฃ ืจืขื›ื˜ ืฆื• ืึทื‘ืึธื ื™ืจืŸ ืฆื• ื’ืขืฉืขืขื ื™ืฉืŸ ืื™ืŸ Kubernetes ืื•ืŸ ืฆื• ืึทืœืึทืงื™ื™ื˜ ืกื™ืงืจื™ืฅ ืฆื• ื ืึธืžืขืŸ ืกืคึผื™ื™ืกืึทื–, ืึทื–ื•ื™ ืžื™ืจ ืžืึทื›ืŸ ืึท ืกืขืจื•ื•ื™ืก ืึทืงืึทื•ื ื˜ (ืื•ืŸ ืึท ืกื›ื•ื ืคื•ืŸ ื›ึผืœืœื™ื) ืคึฟืึทืจ ื“ื™ ืงืจื•ืง.

ืจืขื–ื•ืœื˜ืึทื˜ - ืžื™ืจ ืกืึทืœื•ื•ื“ ืื•ื ื“ื–ืขืจ ืคึผืจืึธื‘ืœืขื ืงืจื•ื‘ื™ื ืคึฟืึทืจ Kubernetes ืื™ืŸ ืึท ื•ื•ืขื’ ื•ื•ืึธืก ืงืจื™ื™ื™ืฅ ืึทืŸ ืึธืคึผืขืจืึทื˜ืึธืจ ืคึฟืึทืจ ื“ื™ืงืึทืžืคึผืึธื•ื–ื™ื ื’ ืกื™ืงืจื™ืฅ.

ืื ื“ืขืจืข ืฉืึธืœ-ืึธืคึผืขืจืึทื˜ืึธืจ ืคึฟืขื™ึดืงื™ื™ื˜ืŸ

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

"onKubernetesEvent": [
  {
    "selector": {
      "matchLabels": {
        "foo": "bar",
       },
       "matchExpressions": [
         {
           "key": "allow",
           "operation": "In",
           "values": ["wan", "warehouse"],
         },
       ],
     }
     โ€ฆ
  }
]

ืฆื•ื’ืขืฉื˜ืขืœื˜ ื“ืขื“ื•ืคึผืœื™ืงืึทื˜ื™ืึธืŸ ืžืขืงืึทื ื™ื–ืึทื, ื•ื•ืึธืก - ื ื™ืฆืŸ ืึท jq ืคื™ืœื˜ืขืจ - ืึทืœืึทื•ื– ืื™ืจ ืฆื• ื’ืขืจ ื’ืจื•ื™ืก JSON ืึทื‘ื“ื–ืฉืขืงืฅ ืื™ืŸ ืงืœื™ื™ืŸ, ื•ื•ื• ื‘ืœื•ื™ื– ื“ื™ ืคึผืึทืจืึทืžืขื˜ืขืจืก ื‘ืœื™ื™ื‘ืŸ ื•ื•ืึธืก ืžื™ืจ ื•ื•ื™ืœืŸ ืฆื• ืžืึธื ื™ื˜ืึธืจ ืคึฟืึทืจ ืขื ื“ืขืจื•ื ื’ืขืŸ.

ื•ื•ืขืŸ ืึท ืงืจื•ืง ืื™ื– ื’ืขืจื•ืคืŸ, ื“ืขืจ ืฉืึธืœ-ืึธืคึผืขืจืึทื˜ืึธืจ ื’ื™ื™ื˜ ืขืก ื›ื™ื™ืคืขืฅ ื“ืึทื˜ืŸ, ื•ื•ืึธืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขื•ื•ื™ื™ื ื˜ ืคึฟืึทืจ ืงื™ื™ืŸ ื ื•ื™ื˜.

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

ืื•ืŸ ืฆื•ื•ื™ื™ ืžืขืจ ืคึฟืขื™ึดืงื™ื™ื˜ืŸ ืคื•ืŸ ื“ื™ ืฉืึธืœ ืึธืคึผืขืจืึทื˜ืึธืจ:

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

ืฆื• ืกืึทืžืขืจื™ื™ื– ื“ืขื ื˜ื™ื™ืœ ืคื•ืŸ ื“ืขื ื‘ืึทืจื™ื›ื˜:

ื™ืงืกืคึผืึทื ื“ื™ื ื’ ืื•ืŸ ืงืึทืžืคึผืœืึทืžืขื ื˜ื™ื ื’ Kubernetes (ืจืขืฆืขื ื–ื™ืข ืื•ืŸ ื•ื•ื™ื“ืขื ื‘ืึทืจื™ื›ื˜)

ืœื™ื™ื’-ืึธื ืก ื™ื ืกื˜ืึทืœืœืึทื˜ื™ืึธืŸ

ืคึฟืึทืจ ื‘ืึทืงื•ื•ืขื ืึทืจื‘ืขื˜ ืžื™ื˜ Kubernetes, ื“ื™ ื ื•ื™ื˜ ืฆื• ื™ื ืกื˜ืึทืœื™ืจืŸ ืึทื“ื™ืฉืึทื ื– ืื™ื– ืื•ื™ืš ื“ืขืจืžืื ื˜. ืื™ืš ื•ื•ืขืœ ื–ืึธื’ืŸ ืื™ืจ ื•ื•ืขื’ืŸ ื“ืขื ืžื™ื˜ ื“ืขื ื‘ื™ื™ืฉืคึผื™ืœ ืคื•ืŸ ืื•ื ื“ื–ืขืจ ืคื™ืจืžืข 'ืก ื•ื•ืขื’ ืฆื• ื•ื•ื™ ืžื™ืจ ื˜ืึธืŸ ื“ืึธืก ืื™ืฆื˜.

ืžื™ืจ ืื ื’ืขื”ื•ื™ื‘ืŸ ืืจื‘ืขื˜ืŸ ืžื™ื˜ Kubernetes ืžื™ื˜ ืขื˜ืœืขื›ืข ืงืœืึทืกื˜ืขืจื–, ื“ืขืจ ื‘ืœื•ื™ื– ื“ืขืจืฆื• ืฆื• ื•ื•ืึธืก ืื™ื– ื’ืขื•ื•ืขืŸ Ingress. ืขืก ื“ืึทืจืฃ ื–ื™ื™ืŸ ืื™ื ืกื˜ืึทืœื™ืจืŸ ื“ื™ืคืขืจืขื ื˜ืœื™ ืื™ืŸ ื™ืขื“ืขืจ ืงื ื•ื™ืœ, ืื•ืŸ ืžื™ืจ ื’ืขืžืื›ื˜ ืขื˜ืœืขื›ืข YAML ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทื ื– ืคึฟืึทืจ ืคืึทืจืฉื™ื“ืขื ืข ื™ื ื•ื•ื™ื™ืจืึทื ืžืึทื ืฅ: ื ืึทืงืขื˜ ืžืขื˜ืึทืœ, AWS ...

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

ื™ืงืกืคึผืึทื ื“ื™ื ื’ ืื•ืŸ ืงืึทืžืคึผืœืึทืžืขื ื˜ื™ื ื’ Kubernetes (ืจืขืฆืขื ื–ื™ืข ืื•ืŸ ื•ื•ื™ื“ืขื ื‘ืึทืจื™ื›ื˜)

ืฆื• ืฉื˜ืขืœืŸ ืึทืœืฅ ืื™ืŸ ืกื“ืจ, ืžื™ืจ ืกื˜ืึทืจื˜ืขื“ ืžื™ื˜ ืึท ืฉืจื™ืคื˜ (install-ingress.sh), ื•ื•ืึธืก ื”ืึธื˜ ื’ืขื ื•ืžืขืŸ ื•ื•ื™ ืึทืŸ ืึทืจื’ื•ืžืขื ื˜ ื“ืขื ื˜ื™ืคึผ ืคื•ืŸ ืงื ื•ื™ืœ ืฆื• ื•ื•ืึธืก ืžื™ืจ ื•ื•ืขืœืŸ ืฆืขื•ื•ื™ืงืœืขืŸ, ื“ื–ืฉืขื ืขืจื™ื™ื˜ืึทื“ ื“ื™ ื ื™ื™ื˜ื™ืง YAML ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ ืื•ืŸ ืจืึธื•ืœื“ ืขืก ืื•ื™ืก ืฆื• Kubernetes.

ืื™ืŸ ืงื•ืจืฅ, ืื•ื ื“ื–ืขืจ ื•ื•ื™ื™ึทื˜ืขืจ ื•ื•ืขื’ ืื•ืŸ ื“ื™ ืจื™ื–ืึทื ื™ื ื’ ืคึฟืึทืจื‘ื•ื ื“ืŸ ืžื™ื˜ ืื™ื ื–ืขื ืขืŸ ื•ื•ื™ ื’ื™ื™ื˜:

  • ืฆื• ืึทืจื‘ืขื˜ืŸ ืžื™ื˜ YAML ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทื ื–, ืึท ืžื•ืกื˜ืขืจ ืžืึธื˜ืึธืจ ืื™ื– ืคืืจืœืื ื’ื˜ (ืื™ืŸ ื“ืขืจ ืขืจืฉื˜ืขืจ ืกื˜ืึทื’ืขืก ื“ืึธืก ืื™ื– ืคึผืฉื•ื˜ ืกืขื“);
  • ืžื™ื˜ ื“ื™ ืคืึทืจื’ืจืขืกืขืจืŸ ืื™ืŸ ื“ื™ ื ื•ืžืขืจ ืคื•ืŸ ืงืœืึทืกื˜ืขืจื–, ื“ื™ ื ื•ื™ื˜ ืคึฟืึทืจ ืึธื˜ืึทืžืึทื˜ื™ืง ืึทืคึผื“ื™ื™ื˜ื™ื ื’ ื’ืขืงื•ืžืขืŸ (ื“ื™ ืขืจืœื™ืึทืกื˜ ืœื™ื™ื–ื•ื ื’ ืื™ื– ื’ืขื•ื•ืขืŸ ืฆื• ืฉื˜ืขืœืŸ ื“ื™ ืฉืจื™ืคื˜ ืื™ืŸ Git, ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงืŸ ืขืก ืžื™ื˜ Cron ืื•ืŸ ืœื•ื™ืคืŸ ืขืก);
  • ืึท ืขื ืœืขืš ืฉืจื™ืคื˜ ืื™ื– ืคืืจืœืื ื’ื˜ ืคึฟืึทืจ ืคึผืจืึธืžืขื˜ื”ืขื•ืก (install-prometheus.sh), ืึธื‘ืขืจ, ืขืก ืื™ื– ื ืึธื•ื˜ืึทื‘ืึทืœ ืคึฟืึทืจ ื“ื™ ืคืึทืงื˜ ืึทื– ืขืก ืจื™ืงื•ื•ื™ื™ืขืจื– ืคื™ืœ ืžืขืจ ืึทืจื™ื™ึทื ืฉืจื™ื™ึทื‘ ื“ืึทื˜ืŸ, ื•ื•ื™ ื’ืขื–ื•ื ื˜ ื•ื•ื™ ื–ื™ื™ืขืจ ืกื˜ืึธืจื™ื“ื–ืฉ (ืื™ืŸ ืึท ื’ื•ื˜ ื•ื•ืขื’ - ืกืขื ื˜ืจืึทืœื™ื™ื–ื“ ืื•ืŸ ืื™ืŸ ืึท ืงื ื•ื™ืœ), ืื•ืŸ ืขื˜ืœืขื›ืข ื“ืึทื˜ืŸ (ืคึผืึทืกื•ื•ืขืจื“ื–) ืงืขืŸ ื–ื™ื™ืŸ ืื•ื™ื˜ืึธืžืึทื˜ื™ืฉ ื“ื–ืฉืขื ืขืจื™ื™ื˜ืึทื“:

    ื™ืงืกืคึผืึทื ื“ื™ื ื’ ืื•ืŸ ืงืึทืžืคึผืœืึทืžืขื ื˜ื™ื ื’ Kubernetes (ืจืขืฆืขื ื–ื™ืข ืื•ืŸ ื•ื•ื™ื“ืขื ื‘ืึทืจื™ื›ื˜)

  • ื“ื™ ืจื™ื–ื™ืงื™ืจืŸ ืคื•ืŸ ืจืึธื•ืœื™ื ื’ ืขืคึผืขืก ืคืึทืœืฉ ืฆื• ืึท ื’ืจืึธื•ื™ื ื’ ื ื•ืžืขืจ ืคื•ืŸ ืงืœืึทืกื˜ืขืจื– ืื™ื– ืงืขืกื™ื™ื“ืขืจ ื’ืจืึธื•ื™ื ื’, ืึทื–ื•ื™ ืžื™ืจ ืื™ื™ื ื’ืขื–ืขืŸ ืึทื– ื™ื ืกื˜ืึธืœืขืจื– (ื“"ื” ืฆื•ื•ื™ื™ ืกืงืจื™ืคึผืก: ืคึฟืึทืจ ื™ื ื’ืจืขืกืก ืื•ืŸ ืคึผืจืึธืžืขื˜ื”ืขื•ืก) ืกื˜ืึทื’ื™ื ื’ ืื™ื– ื“ืืจืฃ (ืขื˜ืœืขื›ืข ืฆื•ื•ื™ื™ื’ืŸ ืื™ืŸ ื’ื™ื˜, ืขื˜ืœืขื›ืข ืงืจืึธื ืก ืฆื• ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงืŸ ื–ื™ื™ ืื™ืŸ ื“ื™ ืงืึธืจืึทืกืคึผืึทื ื“ื™ื ื’: ืกื˜ืึทื‘ื™ืœ ืึธื“ืขืจ ืคึผืจื•ื‘ื™ืจืŸ ืงืœืึทืกื˜ืขืจื–);
  • ั kubectl apply ืขืก ืื™ื– ื’ืขื•ื•ืืจืŸ ืฉื•ื•ืขืจ ืฆื• ืึทืจื‘ืขื˜ืŸ ืžื™ื˜ ื•ื•ื™ื™ึทืœ ืขืก ืื™ื– ื ื™ืฉื˜ ื“ืขืงืœืึทืจืึทื˜ื™ื•ื•ืข ืื•ืŸ ืงืขื ืขืŸ ื‘ืœื•ื™ื– ืžืึทื›ืŸ ืึทื‘ื“ื–ืฉืขืงืก, ืึธื‘ืขืจ ื ื™ืฉื˜ ืžืึทื›ืŸ ื“ื™ืกื™ื–ืฉืึทื ื– ืื•ื™ืฃ ื–ื™ื™ืขืจ ืกื˜ืึทื˜ื•ืก / ื•ื™ืกืžืขืงืŸ ื–ื™ื™;
  • ืžื™ืจ ื”ืึธื‘ืŸ ืคืขืœื ื“ื™ืง ืขื˜ืœืขื›ืข ืคืึทื ื’ืงืฉืึทื ื– ื•ื•ืึธืก ืžื™ืจ ื”ืึธื‘ืŸ ื ื™ืฉื˜ ื™ืžืคึผืœืึทืžืขื ืึทื“ ืื™ืŸ ื“ืขืจ ืฆื™ื™ื˜:
    • ืคื•ืœ ืงืึธื ื˜ืจืึธืœ ืื™ื‘ืขืจ ื“ืขืจ ืจืขื–ื•ืœื˜ืึทื˜ ืคื•ืŸ ืงื ื•ื™ืœ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงื•ื ื’ืขืŸ,
    • ืึธื˜ืึทืžืึทื˜ื™ืง ืคืขืกื˜ืงื™ื™ึทื˜ ืคื•ืŸ ืขื˜ืœืขื›ืข ืคึผืึทืจืึทืžืขื˜ืขืจืก (ืึทืจื™ื™ึทื ืจื™ื™ึทื‘ ืคึฟืึทืจ ื™ื™ึทื ืžืึธื ื˜ื™ืจื•ื ื’ ืกืงืจื™ืคึผืก) ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ื“ืึทื˜ืŸ ื•ื•ืึธืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ื‘ืืงื•ืžืขืŸ ืคึฟื•ืŸ ื“ืขื ืงื ื•ื™ืœ (ื•ืคื“ืขืงื•ื ื’),
    • ื–ื™ื™ึทืŸ ืœืึทื“ื–ืฉื™ืงืึทืœ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืื™ืŸ ื“ืขืจ ืคืึธืจืขื ืคื•ืŸ ืงืขืกื™ื™ื“ืขืจื“ื™ืง ื•ืคื“ืขืงื•ื ื’.

ืžื™ืจ ื™ืžืคึผืœืึทืžืขื ืึทื“ ืึทืœืข ื“ื™ ืึทืงื™ื•ืžื™ืึทืœื™ื™ื˜ื™ื“ ื“ืขืจืคืึทืจื•ื ื’ ืื™ืŸ ื“ื™ ืคืจื™ื™ืžื•ื•ืขืจืง ืคื•ืŸ ืื•ื ื“ื–ืขืจ ืื ื“ืขืจืข ืคึผืจื•ื™ืขืงื˜ - ืึทื“ื“ืึธืŸ-ืึธืคึผืขืจืึทื˜ืึธืจ.

ืึทื“ื“ืึธืŸ-ืึธืคึผืขืจืึทื˜ืึธืจ

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

ื“ื™ ืคืืœื’ืขื ื“ืข ืื™ื– ืžื•ืกื™ืฃ ืฆื• ื“ื™ ืฉืึธืœ-ืึธืคึผืขืจืึทื˜ืึธืจ ื›ื•ืงืก:

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

ื™ืงืกืคึผืึทื ื“ื™ื ื’ ืื•ืŸ ืงืึทืžืคึผืœืึทืžืขื ื˜ื™ื ื’ Kubernetes (ืจืขืฆืขื ื–ื™ืข ืื•ืŸ ื•ื•ื™ื“ืขื ื‘ืึทืจื™ื›ื˜)

ืื–ื•ื™, ืžื™ืจ ืงืขื ืขืŸ ืจืขืึทื’ื™ืจืŸ ืฆื• ืึท ื’ืขืฉืขืขื ื™ืฉ ืื™ืŸ Kubernetes, ืงืึทื˜ืขืจ ืึท ืคืึทืจื˜ืฉืขืคึผืขืŸ, ืื•ืŸ ืคึฟื•ืŸ ื“ืขื ืงืจื•ืง ืžื™ืจ ืงืขื ืขืŸ ืžืึทื›ืŸ ืขื ื“ืขืจื•ื ื’ืขืŸ ืฆื• ื“ื™ ืกื˜ืึธืจื™ื“ื–ืฉ, ื ืึธืš ื•ื•ืึธืก ื“ื™ ื˜ืฉืึทืจื˜ ื•ื•ืขื˜ ื–ื™ื™ืŸ ื“ืึทื•ื ืœืึธื•ื“ื™ื“. ืื™ืŸ ื“ื™ ืจื™ื–ืึทืœื˜ื™ื ื’ ื“ื™ืึทื’ืจืึทืžืข, ืžื™ืจ ืฆืขื˜ื™ื™ืœืŸ ื“ื™ ื’ืึทื ื’ ืคื•ืŸ ื›ื•ืงืก ืื•ืŸ ื“ื™ ื˜ืฉืึทืจื˜ ืื™ืŸ ืื™ื™ืŸ ืงืึธืžืคึผืึธื ืขื ื˜, ื•ื•ืึธืก ืžื™ืจ ืจื•ืคืŸ ืžืึธื“ื•ืœืข:

ื™ืงืกืคึผืึทื ื“ื™ื ื’ ืื•ืŸ ืงืึทืžืคึผืœืึทืžืขื ื˜ื™ื ื’ Kubernetes (ืจืขืฆืขื ื–ื™ืข ืื•ืŸ ื•ื•ื™ื“ืขื ื‘ืึทืจื™ื›ื˜)

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

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

ื™ืงืกืคึผืึทื ื“ื™ื ื’ ืื•ืŸ ืงืึทืžืคึผืœืึทืžืขื ื˜ื™ื ื’ Kubernetes (ืจืขืฆืขื ื–ื™ืข ืื•ืŸ ื•ื•ื™ื“ืขื ื‘ืึทืจื™ื›ื˜)

ื“ืขืจ ืกื›ืขืžืข ืกืึทื˜ื™ืกืคื™ื™ื– ืึทืœืข ื“ื™ ืจืขืงื•ื•ื™ืจืขืžืขื ืฅ ืคึฟืึทืจ ื™ื ืกื˜ืึธืœื™ื ื’ ืึทื“ื™ืฉืึทื ื– ื•ื•ืึธืก ื–ืขื ืขืŸ ืกื˜ื™ื™ื˜ื™ื“ ืื•ื™ื‘ืŸ:

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

ื“ื™ ื’ืื ืฆืข ืกื™ืกื˜ืขื ืื™ื– ื™ืžืคึผืœืึทืžืขื ืึทื“ ืื™ืŸ ื“ื™ ืคืึธืจืขื ืคื•ืŸ ืึท ืื™ื™ืŸ ื‘ื™ื™ื ืขืจื™ ืื™ืŸ Go, ื•ื•ืึธืก ืื™ื– ื’ืขืจื•ืคืŸ ืึทื“ื“ืึธืŸ-ืึธืคึผืขืจืึทื˜ืึธืจ. ื“ืึธืก ืžืื›ื˜ ื“ื™ ื“ื™ืึทื’ืจืึทืžืข ืงื•ืงืŸ ืกื™ืžืคึผืœืขืจ:

ื™ืงืกืคึผืึทื ื“ื™ื ื’ ืื•ืŸ ืงืึทืžืคึผืœืึทืžืขื ื˜ื™ื ื’ Kubernetes (ืจืขืฆืขื ื–ื™ืข ืื•ืŸ ื•ื•ื™ื“ืขื ื‘ืึทืจื™ื›ื˜)

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

"ืคืœืึทื ื˜" ื ื™ืฆื˜ ืึทื“ื“ืึธืŸ-ืึธืคึผืขืจืึทื˜ืึธืจ ืื•ื™ืฃ 70+ ืงื•ื‘ืขืจื ืขื˜ืขืก ืงืœืึทืกื˜ืขืจื–. ื™ืขืฆื˜ื™ื’ืŸ ืฆื•ืฉื˜ืื ื“ - ืึทืœืฃ ื•ื•ืขืจืกื™ืข. ืื™ืฆื˜ ืžื™ืจ ื–ืขื ืขืŸ ืคึผืจื™ืคึผืขืจื™ื ื’ ื“ืึทืงื™ื•ืžืขื ื˜ื™ื™ืฉืึทืŸ ืฆื• ืžืขืœื“ื•ื ื’ ื“ื™ ื‘ื™ืชื, ืึธื‘ืขืจ ืื™ืฆื˜ ืื™ืŸ ื“ื™ ืจื™ืคึผืึทื–ืึทื˜ืึธืจื™ ื‘ื™ื™ืฉืคื™ืœืŸ ื‘ื ื™ืžืฆื, ืื•ื™ืฃ ื“ืขืจ ื‘ืื–ืข ืคื•ืŸ โ€‹โ€‹โ€‹โ€‹ื•ื•ืึธืก ืื™ืจ ืงืขื ืขืŸ ืžืึทื›ืŸ ื“ื™ื™ืŸ ืื™ื™ื’ืขื ืข ืึทื“ื“ืึธืŸ.

ื•ื•ื• ืงืขืŸ ืื™ืš ื‘ืึทืงื•ืžืขืŸ ื“ื™ ืžืึทื“ื–ืฉื•ืœื– ืคึฟืึทืจ ืึทื“ื“ืึธืŸ-ืึธืคึผืขืจืึทื˜ืึธืจ? ืืจื•ื™ืกื’ืขื‘ืŸ ืื•ื ื“ื–ืขืจ ื‘ื™ื‘ืœื™ืึธื˜ืขืง ืื™ื– ื“ืขืจ ื•ื•ื™ื™ึทื˜ืขืจ ื‘ื™ื ืข ืคึฟืึทืจ ืื•ื ื“ื–; ืžื™ืจ ืคึผืœืึทืŸ ืฆื• ื˜ืึธืŸ ื“ืึธืก ืื™ืŸ ื“ื™ ื–ื•ืžืขืจ.

ื•ื•ื™ื“ื™ืืก ืื•ืŸ ืกืœื™ื™ื“ื–

ื•ื•ื™ื“ืขื ืคึฟื•ืŸ ื“ืขืจ ืคืึธืจืฉื˜ืขืœื•ื ื’ (~ 50 ืžื™ื ื•ื˜):

ืคึผืจืขื–ืขื ื˜ื™ืจื•ื ื’ ืคื•ืŸ ื“ืขืจ ื‘ืึทืจื™ื›ื˜:

ืคึผืก

ืื ื“ืขืจืข ืจื™ืคึผืึธืจืฅ ืื•ื™ืฃ ืื•ื ื“ื–ืขืจ ื‘ืœืึธื’:

ืื™ืจ ืงืขืŸ ืื•ื™ืš ื–ื™ื™ืŸ ืื™ื ื˜ืขืจืขืกื™ืจื˜ ืื™ืŸ ื“ื™ ืคืืœื’ืขื ื“ืข ืื•ื™ืกื’ืื‘ืขืก:

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

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