แƒฌแƒแƒ•แƒ˜แƒ“แƒ”แƒ—? แƒ‘แƒแƒจ! แƒจแƒ”แƒฎแƒ•แƒ“แƒ˜แƒ— shell-แƒแƒžแƒ”แƒ แƒแƒขแƒแƒ แƒก (แƒ›แƒ˜แƒ›แƒแƒฎแƒ˜แƒšแƒ•แƒ แƒ“แƒ แƒ•แƒ˜แƒ“แƒ”แƒ แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ˜ KubeCon EU'2020-แƒ“แƒแƒœ)

แƒฌแƒ”แƒšแƒก, แƒ›แƒ—แƒแƒ•แƒแƒ แƒ˜ แƒ”แƒ•แƒ แƒแƒžแƒฃแƒšแƒ˜ Kubernetes แƒ™แƒแƒœแƒคแƒ”แƒ แƒ”แƒœแƒชแƒ˜แƒ - KubeCon + CloudNativeCon Europe 2020 - แƒ•แƒ˜แƒ แƒขแƒฃแƒแƒšแƒฃแƒ แƒ˜ แƒ˜แƒงแƒ. แƒ—แƒฃแƒ›แƒชแƒ, แƒคแƒแƒ แƒ›แƒแƒขแƒ˜แƒก แƒแƒกแƒ”แƒ—แƒ›แƒ แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒแƒ› แƒฎแƒ”แƒšแƒ˜ แƒแƒ  แƒจแƒ”แƒ’แƒ•แƒ˜แƒจแƒแƒšแƒ แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ“แƒ˜แƒ“แƒ˜ แƒฎแƒœแƒ˜แƒก แƒ“แƒแƒ’แƒ”แƒ’แƒ›แƒ˜แƒšแƒ˜ แƒ›แƒแƒฎแƒกแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก โ€žแƒฌแƒแƒ“แƒ˜? แƒ‘แƒแƒจ! แƒ’แƒแƒ˜แƒชแƒแƒœแƒ˜แƒ— Shell-แƒแƒžแƒ”แƒ แƒแƒขแƒแƒ แƒ˜โ€œ แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ”แƒซแƒฆแƒ•แƒœแƒ”แƒ‘แƒ แƒฉแƒ•แƒ”แƒœแƒก แƒฆแƒ˜แƒ แƒ™แƒแƒ“แƒ˜แƒก แƒžแƒ แƒแƒ”แƒฅแƒขแƒก แƒญแƒฃแƒ แƒ•แƒ˜-แƒแƒžแƒ”แƒ แƒแƒขแƒแƒ แƒ˜.

แƒ”แƒก แƒกแƒขแƒแƒขแƒ˜แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ—แƒแƒ’แƒแƒœแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ›แƒแƒฎแƒกแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—, แƒฌแƒแƒ แƒ›แƒแƒแƒ“แƒ’แƒ”แƒœแƒก แƒ›แƒ˜แƒ“แƒ’แƒแƒ›แƒแƒก Kubernetes-แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒแƒžแƒ”แƒ แƒแƒขแƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒก แƒžแƒ แƒแƒชแƒ”แƒกแƒ˜แƒก แƒ’แƒแƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ“แƒ แƒ’แƒ•แƒ˜แƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒก, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒจแƒ”แƒฅแƒ›แƒœแƒแƒ— แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒกแƒแƒ™แƒฃแƒ—แƒแƒ แƒ˜ แƒ›แƒ˜แƒœแƒ˜แƒ›แƒแƒšแƒฃแƒ แƒ˜ แƒซแƒแƒšแƒ˜แƒกแƒฎแƒ›แƒ”แƒ•แƒ˜แƒ— Shell-แƒแƒžแƒ”แƒ แƒแƒขแƒแƒ แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—.

แƒฌแƒแƒ•แƒ˜แƒ“แƒ”แƒ—? แƒ‘แƒแƒจ! แƒจแƒ”แƒฎแƒ•แƒ“แƒ˜แƒ— shell-แƒแƒžแƒ”แƒ แƒแƒขแƒแƒ แƒก (แƒ›แƒ˜แƒ›แƒแƒฎแƒ˜แƒšแƒ•แƒ แƒ“แƒ แƒ•แƒ˜แƒ“แƒ”แƒ แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ˜ KubeCon EU'2020-แƒ“แƒแƒœ)

แƒ’แƒแƒชแƒœแƒแƒ‘แƒ แƒ›แƒแƒฎแƒกแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒ•แƒ˜แƒ“แƒ”แƒ (~ 23 แƒฌแƒฃแƒ—แƒ˜ แƒ˜แƒœแƒ’แƒšแƒ˜แƒกแƒฃแƒ แƒแƒ“, แƒจแƒ”แƒกแƒแƒ›แƒฉแƒœแƒ”แƒ•แƒแƒ“ แƒฃแƒคแƒ แƒ แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒฃแƒšแƒ˜ แƒ•แƒ˜แƒ“แƒ แƒ” แƒกแƒขแƒแƒขแƒ˜แƒ) แƒ“แƒ แƒ›แƒ˜แƒกแƒ’แƒแƒœ แƒ›แƒ—แƒแƒ•แƒแƒ แƒ˜ แƒแƒ›แƒแƒœแƒแƒฌแƒ”แƒ แƒ˜ แƒขแƒ”แƒฅแƒกแƒขแƒ˜แƒก แƒกแƒแƒฎแƒ˜แƒ—. แƒฌแƒแƒ“แƒ˜!

Flant-แƒจแƒ˜ แƒฉแƒ•แƒ”แƒœ แƒ›แƒฃแƒ“แƒ›แƒ˜แƒ•แƒแƒ“ แƒ•แƒแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒ— แƒงแƒ•แƒ”แƒšแƒแƒคแƒ แƒ˜แƒก แƒแƒžแƒขแƒ˜แƒ›แƒ˜แƒ–แƒแƒชแƒ˜แƒแƒก แƒ“แƒ แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒ˜แƒ–แƒแƒชแƒ˜แƒแƒก. แƒ“แƒฆแƒ”แƒก แƒ™แƒ˜แƒ“แƒ”แƒ• แƒ”แƒ แƒ— แƒกแƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒ แƒ™แƒแƒœแƒชแƒ”แƒคแƒชแƒ˜แƒแƒ–แƒ” แƒ•แƒ˜แƒกแƒแƒฃแƒ‘แƒ แƒ”แƒ‘แƒ—. แฒจแƒ”แƒฎแƒ•แƒ”แƒ“แƒ แƒ: แƒฆแƒ แƒฃแƒ‘แƒšแƒแƒ•แƒแƒœแƒ˜ แƒญแƒฃแƒ แƒ•แƒ˜แƒก แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ˜แƒ แƒ”แƒ‘แƒ!

แƒ—แƒฃแƒ›แƒชแƒ, แƒ“แƒแƒ•แƒ˜แƒฌแƒงแƒแƒ— แƒ˜แƒ› แƒ™แƒแƒœแƒขแƒ”แƒฅแƒกแƒขแƒ˜แƒ—, แƒ แƒแƒ›แƒ”แƒšแƒจแƒ˜แƒช แƒ”แƒก แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒฎแƒ“แƒ”แƒ‘แƒ: Kubernetes.

Kubernetes API แƒ“แƒ แƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ”แƒ แƒ”แƒ‘แƒ˜

Kubernetes-แƒจแƒ˜ API แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒฌแƒแƒ แƒ›แƒแƒ“แƒ’แƒ”แƒœแƒ˜แƒšแƒ˜ แƒ˜แƒงแƒแƒก แƒ แƒแƒ’แƒแƒ แƒช แƒ”แƒ แƒ—แƒ’แƒ•แƒแƒ แƒ˜ แƒคแƒแƒ˜แƒšแƒฃแƒ แƒ˜ แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜, แƒกแƒแƒ“แƒแƒช แƒ’แƒแƒœแƒ—แƒแƒ•แƒกแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒ”แƒ‘แƒ˜ แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒขแƒ˜แƒžแƒ˜แƒก แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒ”แƒ‘แƒ˜ (แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜) แƒแƒ› แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ–แƒ” แƒฌแƒแƒ แƒ›แƒแƒ“แƒ’แƒ”แƒœแƒ˜แƒšแƒ˜แƒ YAML แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒ—. แƒ’แƒแƒ แƒ“แƒ แƒแƒ›แƒ˜แƒกแƒ, แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒก แƒแƒฅแƒ•แƒก แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“แƒ˜ API, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ’แƒแƒซแƒšแƒ”แƒ•แƒ— แƒ’แƒแƒแƒ™แƒ”แƒ—แƒแƒ— แƒกแƒแƒ›แƒ˜ แƒ แƒแƒ›:

  • แƒ›แƒ˜แƒ˜แƒฆแƒ”แƒ— แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜ แƒ—แƒแƒ•แƒ˜แƒกแƒ˜ แƒกแƒแƒฎแƒ˜แƒกแƒ แƒ“แƒ แƒ“แƒแƒกแƒแƒฎแƒ”แƒšแƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒฎแƒ”แƒ“แƒ•แƒ˜แƒ—;
  • แƒจแƒ”แƒชแƒ•แƒšแƒ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜ (แƒแƒ› แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜ แƒ˜แƒœแƒแƒฎแƒแƒ•แƒก แƒ›แƒฎแƒแƒšแƒแƒ“ โ€žแƒกแƒฌแƒแƒ โ€œ แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒ”แƒ‘แƒก - แƒงแƒ•แƒ”แƒšแƒ แƒแƒ แƒแƒกแƒฌแƒแƒ แƒแƒ“ แƒฉแƒแƒ›แƒแƒงแƒแƒšแƒ˜แƒ‘แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒแƒœ แƒกแƒฎแƒ•แƒ แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ’แƒแƒœแƒ™แƒฃแƒ—แƒ•แƒœแƒ˜แƒšแƒ˜ แƒงแƒ•แƒ”แƒšแƒ แƒฃแƒ’แƒฃแƒšแƒ”แƒ‘แƒ”แƒšแƒงแƒแƒคแƒ˜แƒšแƒ˜แƒ);
  • แƒ—แƒ•แƒแƒšแƒงแƒฃแƒ แƒ˜ แƒแƒ“แƒ”แƒ•แƒœแƒ”แƒ— แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก (แƒแƒ› แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜ แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ“แƒแƒฃแƒงแƒแƒ•แƒœแƒ”แƒ‘แƒšแƒ˜แƒ• แƒ˜แƒฆแƒ”แƒ‘แƒก แƒ›แƒ˜แƒก แƒ›แƒ˜แƒ›แƒ“แƒ˜แƒœแƒแƒ แƒ”/แƒ’แƒแƒœแƒแƒฎแƒšแƒ”แƒ‘แƒฃแƒš แƒ•แƒ”แƒ แƒกแƒ˜แƒแƒก).

แƒแƒ›แƒ แƒ˜แƒ’แƒแƒ“, Kubernetes แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒก แƒ แƒแƒ’แƒแƒ แƒช แƒ”แƒ แƒ—แƒ’แƒ•แƒแƒ แƒ˜ แƒคแƒแƒ˜แƒšแƒฃแƒ แƒ˜ แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜ (YAML แƒ›แƒแƒœแƒ˜แƒคแƒ”แƒกแƒขแƒแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก) แƒกแƒแƒ›แƒ˜ แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“แƒ˜ แƒ›แƒ”แƒ—แƒแƒ“แƒ˜แƒ— (แƒ“แƒ˜แƒแƒฎ, แƒกแƒ˜แƒœแƒแƒ›แƒ“แƒ•แƒ˜แƒšแƒ”แƒจแƒ˜ แƒแƒ แƒ˜แƒก แƒกแƒฎแƒ•แƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒฉแƒ•แƒ”แƒœ แƒ›แƒแƒ— แƒแƒฎแƒšแƒ แƒ’แƒแƒ›แƒแƒ•แƒขแƒแƒ•แƒ”แƒ‘แƒ—).

แƒฌแƒแƒ•แƒ˜แƒ“แƒ”แƒ—? แƒ‘แƒแƒจ! แƒจแƒ”แƒฎแƒ•แƒ“แƒ˜แƒ— shell-แƒแƒžแƒ”แƒ แƒแƒขแƒแƒ แƒก (แƒ›แƒ˜แƒ›แƒแƒฎแƒ˜แƒšแƒ•แƒ แƒ“แƒ แƒ•แƒ˜แƒ“แƒ”แƒ แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ˜ KubeCon EU'2020-แƒ“แƒแƒœ)

แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ แƒ˜แƒก แƒแƒ แƒ˜แƒก, แƒ แƒแƒ› แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒก แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒ˜แƒก แƒจแƒ”แƒœแƒแƒฎแƒ•แƒ. แƒ˜แƒ›แƒ˜แƒกแƒแƒ—แƒ•แƒ˜แƒก, แƒ แƒแƒ› แƒ˜แƒก แƒ˜แƒ›แƒฃแƒจแƒแƒแƒก, แƒ’แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ— แƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ”แƒ แƒ˜ - แƒ›แƒ”แƒแƒ แƒ” แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒแƒœแƒ˜ แƒ“แƒ แƒคแƒฃแƒœแƒ“แƒแƒ›แƒ”แƒœแƒขแƒฃแƒ แƒ˜ แƒ™แƒแƒœแƒชแƒ”แƒคแƒชแƒ˜แƒ Kubernetes-แƒ˜แƒก แƒกแƒแƒ›แƒงแƒแƒ แƒแƒจแƒ˜.

แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก แƒแƒ แƒ˜ แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“แƒ˜ แƒขแƒ˜แƒžแƒ˜แƒก แƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ”แƒ แƒ˜. แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒ˜แƒฆแƒ”แƒ‘แƒก แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒแƒก Kubernetes-แƒ“แƒแƒœ, แƒแƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒก แƒ›แƒแƒก แƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒ˜ แƒšแƒแƒ’แƒ˜แƒ™แƒ˜แƒก แƒ›แƒ˜แƒฎแƒ”แƒ“แƒ•แƒ˜แƒ— แƒ“แƒ แƒแƒ‘แƒ แƒฃแƒœแƒ”แƒ‘แƒก K8-แƒจแƒ˜. แƒ›แƒ”แƒแƒ แƒ” แƒ˜แƒฆแƒ”แƒ‘แƒก แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒแƒก Kubernetes-แƒ˜แƒ“แƒแƒœ, แƒ›แƒแƒ’แƒ แƒแƒ›, แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒขแƒ˜แƒžแƒ˜แƒกแƒ’แƒแƒœ แƒ’แƒแƒœแƒกแƒฎแƒ•แƒแƒ•แƒ”แƒ‘แƒ˜แƒ—, แƒชแƒ•แƒšแƒ˜แƒก แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ—แƒ˜ แƒ’แƒแƒ แƒ” แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜แƒก แƒ›แƒ“แƒ’แƒแƒ›แƒแƒ แƒ”แƒแƒ‘แƒแƒก.

แƒ›แƒแƒ“แƒ˜แƒ— แƒฃแƒคแƒ แƒ แƒแƒฎแƒšแƒแƒก แƒ›แƒ˜แƒ•แƒฎแƒ”แƒ“แƒแƒ— Kubernetes-แƒจแƒ˜ แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒก แƒžแƒ แƒแƒชแƒ”แƒกแƒก:

  • แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ˜แƒก แƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ”แƒ แƒ˜ (แƒจแƒ”แƒ“แƒ˜แƒก kube-controller-manager) แƒ˜แƒฆแƒ”แƒ‘แƒก แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒแƒก แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘ แƒ“แƒ แƒฅแƒ›แƒœแƒ˜แƒก ReplicaSet-แƒก.
  • ReplicaSet แƒแƒ› แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒ˜แƒก แƒกแƒแƒคแƒฃแƒซแƒ•แƒ”แƒšแƒ–แƒ” แƒฅแƒ›แƒœแƒ˜แƒก แƒแƒ  แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒแƒก (แƒแƒ  แƒžแƒแƒ“แƒก), แƒ›แƒแƒ’แƒ แƒแƒ› แƒ”แƒก แƒžแƒแƒ“แƒ˜ แƒฏแƒ”แƒ  แƒแƒ  แƒแƒ แƒ˜แƒก แƒ“แƒแƒ’แƒ”แƒ’แƒ›แƒ˜แƒšแƒ˜.
  • แƒ“แƒแƒ›แƒ’แƒ”แƒ’แƒ›แƒแƒ•แƒ˜ แƒแƒฌแƒงแƒแƒ‘แƒก แƒžแƒแƒ“แƒ”แƒ‘แƒก แƒ“แƒ แƒแƒ›แƒแƒขแƒ”แƒ‘แƒก แƒ™แƒ•แƒแƒœแƒซแƒ”แƒ‘แƒ˜แƒก แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒแƒก แƒ›แƒแƒ— YAML-แƒ”แƒ‘แƒจแƒ˜.
  • Kubelets แƒชแƒ•แƒšแƒ˜แƒก แƒ’แƒแƒ แƒ” แƒ แƒ”แƒกแƒฃแƒ แƒกแƒก (แƒ•แƒ—แƒฅแƒ•แƒแƒ— Docker).

แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ›แƒ—แƒ”แƒšแƒ˜ แƒ”แƒก แƒ—แƒแƒœแƒ›แƒ˜แƒ›แƒ“แƒ”แƒ•แƒ แƒแƒ‘แƒ แƒ›แƒ”แƒแƒ แƒ“แƒ”แƒ‘แƒ แƒกแƒแƒžแƒ˜แƒ แƒ˜แƒกแƒžแƒ˜แƒ แƒ แƒ—แƒแƒœแƒ›แƒ˜แƒ›แƒ“แƒ”แƒ•แƒ แƒแƒ‘แƒ˜แƒ—: แƒ™แƒฃแƒ‘แƒ”แƒšแƒ”แƒขแƒ˜ แƒแƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒก แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ”แƒ‘แƒก, แƒ˜แƒ—แƒ•แƒšแƒ˜แƒก แƒžแƒแƒ“แƒ˜แƒก แƒกแƒขแƒแƒขแƒฃแƒกแƒก แƒ“แƒ แƒแƒ’แƒ–แƒแƒ•แƒœแƒ˜แƒก แƒฃแƒ™แƒแƒœ. ReplicaSet แƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ”แƒ แƒ˜ แƒ˜แƒฆแƒ”แƒ‘แƒก แƒกแƒขแƒแƒขแƒฃแƒกแƒก แƒ“แƒ แƒ’แƒแƒœแƒแƒแƒฎแƒšแƒ”แƒ‘แƒก แƒ แƒ”แƒžแƒšแƒ˜แƒ™แƒ แƒœแƒแƒ™แƒ แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ“แƒ’แƒแƒ›แƒแƒ แƒ”แƒแƒ‘แƒแƒก. แƒ˜แƒ’แƒ˜แƒ•แƒ” แƒฎแƒ“แƒ”แƒ‘แƒ Deployment Controller-แƒ—แƒแƒœ แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒ— แƒ“แƒ แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ”แƒšแƒ˜ แƒกแƒแƒ‘แƒแƒšแƒแƒแƒ“ แƒ˜แƒฆแƒ”แƒ‘แƒก แƒ’แƒแƒœแƒแƒฎแƒšแƒ”แƒ‘แƒฃแƒš (แƒ›แƒ˜แƒ›แƒ“แƒ˜แƒœแƒแƒ แƒ”) แƒกแƒขแƒแƒขแƒฃแƒกแƒก.

แƒฌแƒแƒ•แƒ˜แƒ“แƒ”แƒ—? แƒ‘แƒแƒจ! แƒจแƒ”แƒฎแƒ•แƒ“แƒ˜แƒ— shell-แƒแƒžแƒ”แƒ แƒแƒขแƒแƒ แƒก (แƒ›แƒ˜แƒ›แƒแƒฎแƒ˜แƒšแƒ•แƒ แƒ“แƒ แƒ•แƒ˜แƒ“แƒ”แƒ แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ˜ KubeCon EU'2020-แƒ“แƒแƒœ)

Shell-แƒแƒžแƒ”แƒ แƒแƒขแƒแƒ แƒ˜

แƒ’แƒแƒ›แƒแƒ“แƒ˜แƒก, แƒ แƒแƒ› Kubernetes แƒ”แƒคแƒฃแƒซแƒœแƒ”แƒ‘แƒ แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒ”แƒ แƒ—แƒแƒ‘แƒšแƒ˜แƒ• แƒ›แƒฃแƒจแƒแƒแƒ‘แƒแƒก (Kubernetes แƒแƒžแƒ”แƒ แƒแƒขแƒแƒ แƒ”แƒ‘แƒ˜ แƒแƒกแƒ”แƒ•แƒ” แƒแƒ แƒ˜แƒแƒœ แƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ”แƒ แƒ”แƒ‘แƒ˜). แƒฉแƒœแƒ“แƒ”แƒ‘แƒ แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ, แƒ แƒแƒ’แƒแƒ  แƒจแƒ”แƒ•แƒฅแƒ›แƒœแƒแƒ— แƒกแƒแƒ™แƒฃแƒ—แƒแƒ แƒ˜ แƒแƒžแƒ”แƒ แƒแƒขแƒแƒ แƒ˜ แƒ›แƒ˜แƒœแƒ˜แƒ›แƒแƒšแƒฃแƒ แƒ˜ แƒซแƒแƒšแƒ˜แƒกแƒฎแƒ›แƒ”แƒ•แƒ˜แƒ—? แƒ“แƒ แƒแƒฅ แƒฉแƒ•แƒ”แƒœ แƒ›แƒ˜แƒ”แƒ  แƒจแƒ”แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ›แƒแƒ“แƒ˜แƒก แƒกแƒแƒ›แƒแƒจแƒ•แƒ”แƒšแƒแƒจแƒ˜ แƒญแƒฃแƒ แƒ•แƒ˜-แƒแƒžแƒ”แƒ แƒแƒขแƒแƒ แƒ˜. แƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒแƒซแƒšแƒ”แƒ•แƒก แƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ˜แƒก แƒแƒ“แƒ›แƒ˜แƒœแƒ˜แƒกแƒขแƒ แƒแƒขแƒแƒ แƒ”แƒ‘แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒแƒœ แƒกแƒแƒ™แƒฃแƒ—แƒแƒ แƒ˜ แƒ’แƒแƒœแƒชแƒฎแƒแƒ“แƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒœแƒแƒชแƒœแƒแƒ‘แƒ˜ แƒ›แƒ”แƒ—แƒแƒ“แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—.

แƒฌแƒแƒ•แƒ˜แƒ“แƒ”แƒ—? แƒ‘แƒแƒจ! แƒจแƒ”แƒฎแƒ•แƒ“แƒ˜แƒ— shell-แƒแƒžแƒ”แƒ แƒแƒขแƒแƒ แƒก (แƒ›แƒ˜แƒ›แƒแƒฎแƒ˜แƒšแƒ•แƒ แƒ“แƒ แƒ•แƒ˜แƒ“แƒ”แƒ แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ˜ KubeCon EU'2020-แƒ“แƒแƒœ)

แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜: แƒกแƒแƒ˜แƒ“แƒฃแƒ›แƒšแƒแƒ”แƒ‘แƒ˜แƒก แƒ™แƒแƒžแƒ˜แƒ แƒ”แƒ‘แƒ

แƒ›แƒแƒ“แƒ˜แƒ— แƒจแƒ”แƒ•แƒฎแƒ”แƒ“แƒแƒ— แƒ›แƒแƒ แƒขแƒ˜แƒ• แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒก.

แƒ•แƒ—แƒฅแƒ•แƒแƒ—, แƒ’แƒ•แƒแƒฅแƒ•แƒก แƒ™แƒฃแƒ‘แƒ”แƒ แƒœแƒ”แƒขแƒ˜แƒก แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒ˜. แƒ›แƒแƒก แƒแƒฅแƒ•แƒก แƒกแƒแƒฎแƒ”แƒšแƒ—แƒ แƒกแƒ˜แƒ•แƒ แƒชแƒ” default แƒ แƒแƒฆแƒแƒช แƒกแƒแƒ˜แƒ“แƒฃแƒ›แƒšแƒแƒ”แƒ‘แƒ˜แƒ— mysecret. แƒ’แƒแƒ แƒ“แƒ แƒแƒ›แƒ˜แƒกแƒ, แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒจแƒ˜ แƒแƒ แƒ˜แƒก แƒกแƒฎแƒ•แƒ แƒกแƒแƒฎแƒ”แƒšแƒ—แƒ แƒกแƒ˜แƒ•แƒ แƒชแƒ”แƒ”แƒ‘แƒ˜. แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ— แƒ›แƒแƒ—แƒ’แƒแƒœแƒก แƒกแƒžแƒ”แƒชแƒ˜แƒแƒšแƒฃแƒ แƒ˜ แƒ”แƒขแƒ˜แƒ™แƒ”แƒขแƒ˜ แƒแƒฅแƒ•แƒก แƒ›แƒ˜แƒ›แƒแƒ’แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜. แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ›แƒ˜แƒ–แƒแƒœแƒ˜แƒ แƒ“แƒแƒ•แƒแƒ™แƒแƒžแƒ˜แƒ แƒแƒ— Secret แƒกแƒแƒฎแƒ”แƒšแƒ—แƒ แƒกแƒ˜แƒ•แƒ แƒชแƒ”แƒจแƒ˜ แƒšแƒ”แƒ˜แƒ‘แƒšแƒ˜แƒ—.

แƒแƒ›แƒแƒชแƒแƒœแƒแƒก แƒแƒ แƒ—แƒฃแƒšแƒ”แƒ‘แƒก แƒ˜แƒก แƒคแƒแƒฅแƒขแƒ˜, แƒ แƒแƒ› แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒจแƒ˜ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒ›แƒแƒฉแƒœแƒ“แƒ”แƒก แƒแƒฎแƒแƒšแƒ˜ แƒกแƒแƒฎแƒ”แƒšแƒ—แƒ แƒกแƒ˜แƒ•แƒ แƒชแƒ”แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ–แƒแƒ’แƒ˜แƒ”แƒ แƒ— แƒ›แƒแƒ—แƒ’แƒแƒœแƒก แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒฐแƒฅแƒแƒœแƒ“แƒ”แƒก แƒ”แƒก แƒ”แƒขแƒ˜แƒ™แƒ”แƒขแƒ˜. แƒ›แƒ”แƒแƒ แƒ”แƒก แƒ›แƒฎแƒ แƒ˜แƒ•, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ˜แƒแƒ แƒšแƒ˜แƒงแƒ˜ แƒฌแƒแƒ˜แƒจแƒšแƒ”แƒ‘แƒ, แƒกแƒแƒ˜แƒ“แƒฃแƒ›แƒšแƒแƒช แƒฃแƒœแƒ“แƒ แƒฌแƒแƒ˜แƒจแƒแƒšแƒแƒก. แƒแƒ›แƒแƒก แƒ’แƒแƒ แƒ“แƒ, แƒ—แƒแƒ•แƒแƒ“ แƒกแƒแƒ˜แƒ“แƒฃแƒ›แƒšแƒแƒช แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒจแƒ”แƒ˜แƒชแƒ•แƒแƒšแƒแƒก: แƒแƒ› แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒแƒฎแƒแƒšแƒ˜ แƒกแƒแƒ˜แƒ“แƒฃแƒ›แƒšแƒ แƒฃแƒœแƒ“แƒ แƒ“แƒแƒ™แƒแƒžแƒ˜แƒ แƒ“แƒ”แƒก แƒงแƒ•แƒ”แƒšแƒ แƒกแƒแƒฎแƒ”แƒšแƒ—แƒ แƒกแƒ˜แƒ•แƒ แƒชแƒ”แƒจแƒ˜ แƒ”แƒขแƒ˜แƒ™แƒ”แƒขแƒ”แƒ‘แƒ˜แƒ—. แƒ—แƒฃ แƒกแƒแƒ˜แƒ“แƒฃแƒ›แƒšแƒ แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒ˜แƒ— แƒฌแƒแƒ˜แƒจแƒšแƒ”แƒ‘แƒ แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒ›แƒ” แƒกแƒแƒฎแƒ”แƒšแƒ—แƒ แƒกแƒ˜แƒ•แƒ แƒชแƒ”แƒจแƒ˜, แƒฉแƒ•แƒ”แƒœแƒ›แƒ แƒแƒžแƒ”แƒ แƒแƒขแƒแƒ แƒ›แƒ แƒ“แƒแƒฃแƒงแƒแƒ•แƒœแƒ”แƒ‘แƒšแƒ˜แƒ• แƒฃแƒœแƒ“แƒ แƒแƒฆแƒแƒ“แƒ’แƒ˜แƒœแƒแƒก แƒ˜แƒ’แƒ˜.

แƒแƒฎแƒšแƒ, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ“แƒแƒ•แƒแƒšแƒ”แƒ‘แƒ แƒฉแƒแƒ›แƒแƒงแƒแƒšแƒ˜แƒ‘แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ, แƒ“แƒ แƒแƒ แƒ“แƒแƒ•แƒ˜แƒฌแƒงแƒแƒ— แƒ›แƒ˜แƒกแƒ˜ แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒ shell-แƒแƒžแƒ”แƒ แƒแƒขแƒแƒ แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—. แƒ›แƒแƒ’แƒ แƒแƒ› แƒžแƒ˜แƒ แƒ•แƒ”แƒš แƒ แƒ˜แƒ’แƒจแƒ˜ แƒฆแƒ˜แƒ แƒก แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒกแƒ˜แƒขแƒงแƒ•แƒ˜แƒก แƒ—แƒฅแƒ›แƒ แƒ—แƒแƒ•แƒแƒ“ แƒจแƒ”แƒš-แƒแƒžแƒ”แƒ แƒแƒขแƒแƒ แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘.

แƒ แƒแƒ’แƒแƒ  แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก shell-แƒแƒžแƒ”แƒ แƒแƒขแƒแƒ แƒ˜

Kubernetes-แƒ˜แƒก แƒกแƒฎแƒ•แƒ แƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ”แƒ‘แƒ˜แƒก แƒ›แƒกแƒ’แƒแƒ•แƒกแƒแƒ“, shell-แƒแƒžแƒ”แƒ แƒแƒขแƒแƒ แƒ˜ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒกแƒแƒ™แƒฃแƒ—แƒแƒ  แƒžแƒแƒ“แƒจแƒ˜. แƒแƒ› แƒžแƒแƒ“แƒจแƒ˜ แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒแƒจแƒ˜ /hooks แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒแƒ“แƒ˜ แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜ แƒ˜แƒœแƒแƒฎแƒ”แƒ‘แƒ. แƒ”แƒก แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ˜แƒงแƒแƒก แƒกแƒ™แƒ แƒ˜แƒžแƒขแƒ”แƒ‘แƒ˜ Bash, Python, Ruby แƒ“แƒ แƒ.แƒจ. แƒแƒกแƒ”แƒ— แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒแƒ“ แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒก แƒฉแƒ•แƒ”แƒœ แƒ•แƒฃแƒฌแƒแƒ“แƒ”แƒ‘แƒ— แƒฐแƒฃแƒ™แƒ”แƒ‘แƒก (แƒ™แƒแƒ™แƒ•แƒ”แƒ‘แƒ˜).

แƒฌแƒแƒ•แƒ˜แƒ“แƒ”แƒ—? แƒ‘แƒแƒจ! แƒจแƒ”แƒฎแƒ•แƒ“แƒ˜แƒ— shell-แƒแƒžแƒ”แƒ แƒแƒขแƒแƒ แƒก (แƒ›แƒ˜แƒ›แƒแƒฎแƒ˜แƒšแƒ•แƒ แƒ“แƒ แƒ•แƒ˜แƒ“แƒ”แƒ แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ˜ KubeCon EU'2020-แƒ“แƒแƒœ)

Shell-แƒแƒžแƒ”แƒ แƒแƒขแƒแƒ แƒ˜ แƒ’แƒแƒ›แƒแƒ˜แƒฌแƒ”แƒ แƒก Kubernetes-แƒ˜แƒก แƒ›แƒแƒ•แƒšแƒ”แƒœแƒ”แƒ‘แƒก แƒ“แƒ แƒแƒฌแƒแƒ แƒ›แƒแƒ”แƒ‘แƒก แƒแƒ› แƒ™แƒแƒ™แƒ•แƒ”แƒ‘แƒก แƒ˜แƒ› แƒ›แƒแƒ•แƒšแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒžแƒแƒกแƒฃแƒฎแƒแƒ“, แƒ แƒแƒช แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ.

แƒฌแƒแƒ•แƒ˜แƒ“แƒ”แƒ—? แƒ‘แƒแƒจ! แƒจแƒ”แƒฎแƒ•แƒ“แƒ˜แƒ— shell-แƒแƒžแƒ”แƒ แƒแƒขแƒแƒ แƒก (แƒ›แƒ˜แƒ›แƒแƒฎแƒ˜แƒšแƒ•แƒ แƒ“แƒ แƒ•แƒ˜แƒ“แƒ”แƒ แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ˜ KubeCon EU'2020-แƒ“แƒแƒœ)

แƒ แƒแƒ’แƒแƒ  แƒ˜แƒชแƒ˜แƒก แƒญแƒฃแƒ แƒ•แƒ˜แƒก แƒแƒžแƒ”แƒ แƒแƒขแƒแƒ แƒ›แƒ แƒ แƒแƒ›แƒ”แƒšแƒ˜ แƒ™แƒแƒฃแƒญแƒ˜แƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ แƒ“แƒ แƒ แƒแƒ“แƒ˜แƒก? แƒกแƒแƒฅแƒ›แƒ” แƒ˜แƒ›แƒแƒจแƒ˜แƒ, แƒ แƒแƒ› แƒงแƒ•แƒ”แƒšแƒ แƒ™แƒแƒฃแƒญแƒก แƒแƒ แƒ˜ แƒ”แƒขแƒแƒžแƒ˜ แƒแƒฅแƒ•แƒก. แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒก แƒ“แƒ แƒแƒก, shell-แƒแƒžแƒ”แƒ แƒแƒขแƒแƒ แƒ˜ แƒแƒฌแƒแƒ แƒ›แƒแƒ”แƒ‘แƒก แƒงแƒ•แƒ”แƒšแƒ แƒ™แƒแƒฃแƒญแƒก แƒแƒ แƒ’แƒฃแƒ›แƒ”แƒœแƒขแƒ˜แƒ— --config แƒ”แƒก แƒแƒ แƒ˜แƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒ”แƒขแƒแƒžแƒ˜. แƒ“แƒ แƒแƒ›แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒ™แƒแƒ™แƒ•แƒ”แƒ‘แƒ˜ แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒฉแƒ•แƒ”แƒฃแƒšแƒ”แƒ‘แƒ แƒ˜แƒ•แƒ˜ แƒ’แƒ–แƒ˜แƒ— - แƒ˜แƒ› แƒ›แƒแƒ•แƒšแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒžแƒแƒกแƒฃแƒฎแƒแƒ“, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒกแƒแƒช แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒ”แƒ แƒ—แƒ•แƒ˜แƒก. แƒแƒ› แƒฃแƒ™แƒแƒœแƒแƒกแƒ™แƒœแƒ”แƒš แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒ™แƒแƒ™แƒแƒšแƒ˜ แƒ˜แƒฆแƒ”แƒ‘แƒก แƒกแƒแƒ•แƒแƒšแƒ“แƒ”แƒ‘แƒฃแƒšแƒ แƒ™แƒแƒœแƒขแƒ”แƒฅแƒกแƒขแƒก (แƒกแƒแƒ•แƒแƒšแƒ“แƒ”แƒ‘แƒฃแƒšแƒ แƒ™แƒแƒœแƒขแƒ”แƒฅแƒกแƒขแƒ˜) - แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜ JSON แƒคแƒแƒ แƒ›แƒแƒขแƒจแƒ˜, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ–แƒ”แƒช แƒ“แƒแƒฌแƒ•แƒ แƒ˜แƒšแƒ”แƒ‘แƒ˜แƒ— แƒฅแƒ•แƒ”แƒ›แƒแƒ— แƒ•แƒ˜แƒกแƒแƒฃแƒ‘แƒ แƒ”แƒ‘แƒ—.

แƒแƒžแƒ”แƒ แƒแƒขแƒแƒ แƒ˜แƒก แƒ“แƒแƒ›แƒ–แƒแƒ“แƒ”แƒ‘แƒ แƒ‘แƒแƒจแƒจแƒ˜

แƒแƒฎแƒšแƒ แƒฉแƒ•แƒ”แƒœ แƒ›แƒ–แƒแƒ“ แƒ•แƒแƒ แƒ— แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒแƒ›แƒ˜แƒกแƒแƒ—แƒ•แƒ˜แƒก แƒฉแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ“แƒแƒ•แƒฌแƒ”แƒ แƒแƒ— แƒแƒ แƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ (แƒกแƒฎแƒ•แƒแƒ—แƒ แƒจแƒแƒ แƒ˜แƒก, แƒฉแƒ•แƒ”แƒœ แƒ’แƒ˜แƒ แƒฉแƒ”แƒ•แƒ— แƒ‘แƒ˜แƒ‘แƒšแƒ˜แƒแƒ—แƒ”แƒ™แƒ shell_lib, แƒ แƒแƒช แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒœแƒแƒ“ แƒแƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ”แƒ‘แƒก แƒ‘แƒแƒจแƒจแƒ˜ แƒ™แƒแƒฃแƒญแƒ”แƒ‘แƒ˜แƒก แƒฌแƒ”แƒ แƒแƒก):

  • แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒกแƒแƒญแƒ˜แƒ แƒแƒ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒ”แƒขแƒแƒžแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก - แƒ˜แƒก แƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒก แƒกแƒแƒ•แƒแƒšแƒ“แƒ”แƒ‘แƒฃแƒšแƒ แƒ™แƒแƒœแƒขแƒ”แƒฅแƒกแƒขแƒก;
  • แƒ›แƒ”แƒแƒ แƒ” แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒ™แƒแƒ™แƒšแƒ˜แƒก แƒ›แƒ—แƒแƒ•แƒแƒ  แƒšแƒแƒ’แƒ˜แƒ™แƒแƒก.

#!/bin/bash

source /shell_lib.sh

function __config__() {
  cat << EOF
    configVersion: v1
    # BINDING CONFIGURATION
EOF
}

function __main__() {
  # THE LOGIC
}

hook::run "$@"

แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜ แƒœแƒแƒ‘แƒ˜แƒฏแƒ˜ แƒแƒ แƒ˜แƒก แƒ’แƒแƒ“แƒแƒฌแƒงแƒ•แƒ˜แƒขแƒแƒก แƒ แƒ แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒ”แƒ‘แƒ˜ แƒ’แƒ•แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ. แƒฉแƒ•แƒ”แƒœแƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒฉแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ›แƒ˜แƒ•แƒงแƒ•แƒ”แƒ—:

  • แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒฌแƒงแƒแƒ แƒแƒก แƒกแƒแƒ˜แƒ“แƒฃแƒ›แƒšแƒ;
  • แƒงแƒ•แƒ”แƒšแƒ แƒกแƒแƒฎแƒ”แƒšแƒ—แƒ แƒกแƒ˜แƒ•แƒ แƒชแƒ” แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒจแƒ˜, แƒ แƒแƒ—แƒ แƒ˜แƒชแƒแƒ“แƒ”แƒ— แƒ แƒแƒ›แƒ”แƒš แƒ›แƒแƒ—แƒ’แƒแƒœแƒก แƒแƒฅแƒ•แƒก แƒ›แƒ˜แƒ›แƒแƒ’แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ”แƒขแƒ˜แƒ™แƒ”แƒขแƒ˜;
  • แƒกแƒแƒ›แƒ˜แƒ–แƒœแƒ” แƒกแƒแƒ˜แƒ“แƒฃแƒ›แƒšแƒแƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒ˜แƒ›แƒ˜แƒก แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒกแƒแƒงแƒแƒคแƒแƒ“, แƒ แƒแƒ› แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒงแƒ•แƒ”แƒšแƒ แƒกแƒ˜แƒœแƒฅแƒ แƒแƒœแƒ˜แƒ–แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒฌแƒงแƒแƒ แƒแƒก แƒกแƒแƒ˜แƒ“แƒฃแƒ›แƒšแƒแƒกแƒ—แƒแƒœ.

แƒ’แƒแƒ›แƒแƒ˜แƒฌแƒ”แƒ แƒ”แƒ— แƒกแƒแƒ˜แƒ“แƒฃแƒ›แƒšแƒ แƒฌแƒงแƒแƒ แƒ

แƒ›แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒกแƒแƒ•แƒแƒšแƒ“แƒ”แƒ‘แƒฃแƒšแƒ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ แƒกแƒแƒ™แƒ›แƒแƒแƒ“ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜แƒ. แƒฉแƒ•แƒ”แƒœ แƒแƒฆแƒ•แƒœแƒ˜แƒจแƒœแƒแƒ•แƒ—, แƒ แƒแƒ› แƒฉแƒ•แƒ”แƒœ แƒ“แƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ•แƒแƒ แƒ— แƒกแƒแƒ˜แƒ“แƒฃแƒ›แƒšแƒ แƒกแƒแƒฎแƒ”แƒšแƒ˜แƒ— mysecret แƒกแƒแƒฎแƒ”แƒšแƒ—แƒ แƒกแƒ˜แƒ•แƒ แƒชแƒ”แƒจแƒ˜ default:

แƒฌแƒแƒ•แƒ˜แƒ“แƒ”แƒ—? แƒ‘แƒแƒจ! แƒจแƒ”แƒฎแƒ•แƒ“แƒ˜แƒ— shell-แƒแƒžแƒ”แƒ แƒแƒขแƒแƒ แƒก (แƒ›แƒ˜แƒ›แƒแƒฎแƒ˜แƒšแƒ•แƒ แƒ“แƒ แƒ•แƒ˜แƒ“แƒ”แƒ แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ˜ KubeCon EU'2020-แƒ“แƒแƒœ)

function __config__() {
  cat << EOF
    configVersion: v1
    kubernetes:
    - name: src_secret
      apiVersion: v1
      kind: Secret
      nameSelector:
        matchNames:
        - mysecret
      namespace:
        nameSelector:
          matchNames: ["default"]
      group: main
EOF

แƒจแƒ”แƒ“แƒ”แƒ’แƒแƒ“, แƒ™แƒแƒ™แƒแƒšแƒ˜ แƒแƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ“แƒ”แƒ‘แƒ, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒฌแƒงแƒแƒ แƒแƒก แƒกแƒแƒ˜แƒ“แƒฃแƒ›แƒšแƒ แƒจแƒ”แƒ˜แƒชแƒ•แƒšแƒ”แƒ‘แƒ (src_secret) แƒ“แƒ แƒ›แƒ˜แƒ˜แƒฆแƒ”แƒ— แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜ แƒกแƒแƒ•แƒแƒšแƒ“แƒ”แƒ‘แƒฃแƒšแƒ แƒ™แƒแƒœแƒขแƒ”แƒฅแƒกแƒขแƒ˜:

แƒฌแƒแƒ•แƒ˜แƒ“แƒ”แƒ—? แƒ‘แƒแƒจ! แƒจแƒ”แƒฎแƒ•แƒ“แƒ˜แƒ— shell-แƒแƒžแƒ”แƒ แƒแƒขแƒแƒ แƒก (แƒ›แƒ˜แƒ›แƒแƒฎแƒ˜แƒšแƒ•แƒ แƒ“แƒ แƒ•แƒ˜แƒ“แƒ”แƒ แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ˜ KubeCon EU'2020-แƒ“แƒแƒœ)

แƒ แƒแƒ’แƒแƒ แƒช แƒฎแƒ”แƒ“แƒแƒ•แƒ—, แƒ˜แƒก แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒกแƒแƒฎแƒ”แƒšแƒก แƒ“แƒ แƒ›แƒ—แƒ”แƒš แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒก.

แƒกแƒแƒฎแƒ”แƒšแƒ—แƒ แƒกแƒ˜แƒ•แƒ แƒชแƒ˜แƒก แƒ—แƒ•แƒแƒšแƒงแƒฃแƒ แƒ˜แƒก แƒ“แƒ”แƒ•แƒœแƒ”แƒ‘แƒ

แƒแƒฎแƒšแƒ แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ’แƒแƒ›แƒแƒ˜แƒฌแƒ”แƒ แƒแƒ— แƒกแƒแƒฎแƒ”แƒšแƒ—แƒ แƒกแƒ˜แƒ•แƒ แƒชแƒ”แƒ”แƒ‘แƒ˜. แƒแƒ›แƒ˜แƒกแƒแƒ—แƒ•แƒ˜แƒก แƒฉแƒ•แƒ”แƒœ แƒ•แƒแƒ–แƒฃแƒกแƒขแƒ”แƒ‘แƒ— แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒกแƒแƒ•แƒแƒšแƒ“แƒ”แƒ‘แƒฃแƒšแƒ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒแƒก:

- name: namespaces
  group: main
  apiVersion: v1
  kind: Namespace
  jqFilter: |
    {
      namespace: .metadata.name,
      hasLabel: (
       .metadata.labels // {} |  
         contains({"secret": "yes"})
      )
    }
  group: main
  keepFullObjectsInMemory: false

แƒ แƒแƒ’แƒแƒ แƒช แƒฎแƒ”แƒ“แƒแƒ•แƒ—, แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒแƒจแƒ˜ แƒ’แƒแƒ›แƒแƒฉแƒœแƒ“แƒ แƒแƒฎแƒแƒšแƒ˜ แƒ•แƒ”แƒšแƒ˜ แƒกแƒแƒฎแƒ”แƒšแƒฌแƒแƒ“แƒ”แƒ‘แƒ˜แƒ— jqแƒคแƒ˜แƒšแƒขแƒ แƒ˜. แƒ แƒแƒ’แƒแƒ แƒช แƒ›แƒ˜แƒกแƒ˜ แƒกแƒแƒฎแƒ”แƒšแƒ˜ แƒ’แƒ•แƒ—แƒแƒ•แƒแƒ–แƒแƒ‘แƒก, jqFilter แƒคแƒ˜แƒšแƒขแƒ แƒแƒ•แƒก แƒงแƒ•แƒ”แƒšแƒ แƒแƒ แƒแƒกแƒแƒญแƒ˜แƒ แƒ แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒแƒก แƒ“แƒ แƒฅแƒ›แƒœแƒ˜แƒก แƒแƒฎแƒแƒš JSON แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒก แƒฉแƒ•แƒ”แƒœแƒ—แƒ•แƒ˜แƒก แƒกแƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒ แƒ•แƒ”แƒšแƒ”แƒ‘แƒ˜แƒ—. แƒ›แƒกแƒ’แƒแƒ•แƒกแƒ˜ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒ›แƒฅแƒแƒœแƒ” แƒฐแƒฃแƒ™แƒ˜ แƒ›แƒ˜แƒ˜แƒฆแƒ”แƒ‘แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒกแƒแƒ•แƒแƒšแƒ“แƒ”แƒ‘แƒฃแƒšแƒ แƒ™แƒแƒœแƒขแƒ”แƒฅแƒกแƒขแƒก:

แƒฌแƒแƒ•แƒ˜แƒ“แƒ”แƒ—? แƒ‘แƒแƒจ! แƒจแƒ”แƒฎแƒ•แƒ“แƒ˜แƒ— shell-แƒแƒžแƒ”แƒ แƒแƒขแƒแƒ แƒก (แƒ›แƒ˜แƒ›แƒแƒฎแƒ˜แƒšแƒ•แƒ แƒ“แƒ แƒ•แƒ˜แƒ“แƒ”แƒ แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ˜ KubeCon EU'2020-แƒ“แƒแƒœ)

แƒ˜แƒก แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒ›แƒแƒกแƒ˜แƒ•แƒก filterResults แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒจแƒ˜ แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒกแƒแƒฎแƒ”แƒšแƒ—แƒ แƒกแƒ˜แƒ•แƒ แƒชแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก. แƒšแƒแƒ’แƒ˜แƒ™แƒฃแƒ แƒ˜ แƒชแƒ•แƒšแƒแƒ“แƒ˜ hasLabel แƒ›แƒ˜แƒฃแƒ—แƒ˜แƒ—แƒ”แƒ‘แƒก, แƒแƒ แƒ˜แƒก แƒ—แƒฃ แƒแƒ แƒ แƒ”แƒขแƒ˜แƒ™แƒ”แƒขแƒ˜ แƒ›แƒ˜แƒ›แƒแƒ’แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ›แƒแƒชแƒ”แƒ›แƒฃแƒš แƒกแƒแƒฎแƒ”แƒšแƒ—แƒ แƒกแƒ˜แƒ•แƒ แƒชแƒ”แƒ–แƒ”. แƒกแƒ”แƒšแƒ”แƒฅแƒขแƒแƒ แƒ˜ keepFullObjectsInMemory: false แƒ›แƒ˜แƒฃแƒ—แƒ˜แƒ—แƒ”แƒ‘แƒก, แƒ แƒแƒ› แƒแƒ  แƒแƒ แƒ˜แƒก แƒกแƒแƒญแƒ˜แƒ แƒ แƒกแƒ แƒฃแƒšแƒ˜ แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒ”แƒ‘แƒ˜แƒก แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒแƒจแƒ˜ แƒจแƒ”แƒœแƒแƒฎแƒ•แƒ.

แƒกแƒแƒ›แƒ˜แƒ–แƒœแƒ” แƒกแƒแƒ˜แƒ“แƒฃแƒ›แƒšแƒแƒ”แƒ‘แƒ˜แƒก แƒ—แƒ•แƒแƒšแƒงแƒฃแƒ แƒ˜แƒก แƒ“แƒ”แƒ•แƒœแƒ”แƒ‘แƒ

แƒฉแƒ•แƒ”แƒœ แƒ•แƒ˜แƒฌแƒ”แƒ แƒ— แƒงแƒ•แƒ”แƒšแƒ แƒกแƒแƒ˜แƒ“แƒฃแƒ›แƒšแƒแƒ”แƒ‘แƒแƒก, แƒ แƒแƒ›แƒ”แƒšแƒกแƒแƒช แƒแƒฅแƒ•แƒก แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒแƒœแƒแƒขแƒแƒชแƒ˜แƒ managed-secret: "yes" (แƒ”แƒก แƒแƒ แƒ˜แƒก แƒฉแƒ•แƒ”แƒœแƒ˜ แƒกแƒแƒ›แƒ˜แƒ–แƒœแƒ” dst_secrets):

- name: dst_secrets
  apiVersion: v1
  kind: Secret
  labelSelector:
    matchLabels:
      managed-secret: "yes"
  jqFilter: |
    {
      "namespace":
        .metadata.namespace,
      "resourceVersion":
        .metadata.annotations.resourceVersion
    }
  group: main
  keepFullObjectsInMemory: false

แƒแƒ› แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, jqFilter แƒคแƒ˜แƒšแƒขแƒ แƒแƒ•แƒก แƒงแƒ•แƒ”แƒšแƒ แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒแƒก แƒกแƒแƒฎแƒ”แƒšแƒ—แƒ แƒกแƒ˜แƒ•แƒ แƒชแƒ˜แƒกแƒ แƒ“แƒ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜แƒก แƒ’แƒแƒ แƒ“แƒ resourceVersion. แƒกแƒแƒ˜แƒ“แƒฃแƒ›แƒšแƒแƒก แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒกแƒแƒก แƒ‘แƒแƒšแƒ แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜ แƒ’แƒแƒ“แƒแƒ”แƒชแƒ แƒแƒœแƒแƒขแƒแƒชแƒ˜แƒแƒก: แƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ’แƒแƒซแƒšแƒ”แƒ•แƒ— แƒจแƒ”แƒแƒ“แƒแƒ แƒแƒ— แƒกแƒแƒ˜แƒ“แƒฃแƒ›แƒšแƒแƒ”แƒ‘แƒ˜แƒก แƒ•แƒ”แƒ แƒกแƒ˜แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ’แƒแƒœแƒแƒแƒฎแƒšแƒแƒ— แƒ˜แƒกแƒ˜แƒœแƒ˜.

แƒแƒ› แƒ’แƒ–แƒ˜แƒ— แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒฐแƒฃแƒ™แƒ˜, แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒกแƒแƒก, แƒ›แƒ˜แƒ˜แƒฆแƒ”แƒ‘แƒก แƒ–แƒ”แƒ›แƒแƒ— แƒแƒฆแƒฌแƒ”แƒ แƒ˜แƒš แƒกแƒแƒ› แƒกแƒแƒ•แƒแƒšแƒ“แƒ”แƒ‘แƒฃแƒšแƒ แƒ™แƒแƒœแƒขแƒ”แƒฅแƒกแƒขแƒก. แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒฉแƒแƒ˜แƒ—แƒ•แƒแƒšแƒแƒก, แƒ แƒแƒ’แƒแƒ แƒช แƒ”แƒ แƒ—แƒ’แƒ•แƒแƒ แƒ˜ แƒกแƒœแƒ”แƒžแƒจแƒแƒขแƒ˜ (Snapshot) แƒ™แƒแƒกแƒ”แƒขแƒฃแƒ แƒ˜.

แƒฌแƒแƒ•แƒ˜แƒ“แƒ”แƒ—? แƒ‘แƒแƒจ! แƒจแƒ”แƒฎแƒ•แƒ“แƒ˜แƒ— shell-แƒแƒžแƒ”แƒ แƒแƒขแƒแƒ แƒก (แƒ›แƒ˜แƒ›แƒแƒฎแƒ˜แƒšแƒ•แƒ แƒ“แƒ แƒ•แƒ˜แƒ“แƒ”แƒ แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ˜ KubeCon EU'2020-แƒ“แƒแƒœ)

แƒงแƒ•แƒ”แƒšแƒ แƒแƒ› แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒ˜แƒก แƒกแƒแƒคแƒฃแƒซแƒ•แƒ”แƒšแƒ–แƒ” แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒจแƒ”แƒ›แƒฃแƒจแƒแƒ•แƒ“แƒ”แƒก แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“แƒ˜ แƒแƒšแƒ’แƒแƒ แƒ˜แƒ—แƒ›แƒ˜. แƒ˜แƒก แƒ˜แƒ›แƒ”แƒแƒ แƒ”แƒ‘แƒก แƒงแƒ•แƒ”แƒšแƒ แƒกแƒแƒฎแƒ”แƒšแƒ—แƒ แƒกแƒ˜แƒ•แƒ แƒชแƒ”แƒก แƒ“แƒ:

  • แƒ—แƒฃ hasLabel แƒกแƒแƒ™แƒ˜แƒ—แƒฎแƒ”แƒ‘แƒ˜ true แƒ›แƒ˜แƒ›แƒ“แƒ˜แƒœแƒแƒ แƒ” แƒกแƒแƒฎแƒ”แƒšแƒ—แƒ แƒกแƒ˜แƒ•แƒ แƒชแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก:
    • แƒแƒ“แƒแƒ แƒ”แƒ‘แƒก แƒ’แƒšแƒแƒ‘แƒแƒšแƒฃแƒ  แƒกแƒแƒ˜แƒ“แƒฃแƒ›แƒšแƒแƒก แƒแƒ“แƒ’แƒ˜แƒšแƒแƒ‘แƒ แƒ˜แƒ•แƒก:
      • แƒ—แƒฃ แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒ˜แƒ’แƒ˜แƒ•แƒ”แƒ, แƒ”แƒก แƒแƒ แƒแƒคแƒ”แƒ แƒก แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒก;
      • แƒ—แƒฃ แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒ’แƒแƒœแƒกแƒฎแƒ•แƒแƒ•แƒ“แƒ”แƒ‘แƒ˜แƒแƒœ - แƒแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒก kubectl replace แƒแƒœ create;
  • แƒ—แƒฃ hasLabel แƒกแƒแƒ™แƒ˜แƒ—แƒฎแƒ”แƒ‘แƒ˜ false แƒ›แƒ˜แƒ›แƒ“แƒ˜แƒœแƒแƒ แƒ” แƒกแƒแƒฎแƒ”แƒšแƒ—แƒ แƒกแƒ˜แƒ•แƒ แƒชแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก:
    • แƒ“แƒแƒ แƒฌแƒ›แƒฃแƒœแƒ“แƒ˜แƒ—, แƒ แƒแƒ› แƒกแƒแƒ˜แƒ“แƒฃแƒ›แƒšแƒ แƒแƒ  แƒแƒ แƒ˜แƒก แƒ›แƒแƒชแƒ”แƒ›แƒฃแƒš แƒกแƒแƒฎแƒ”แƒšแƒ—แƒ แƒกแƒ˜แƒ•แƒ แƒชแƒ”แƒจแƒ˜:
      • แƒ—แƒฃ แƒแƒ“แƒ’แƒ˜แƒšแƒแƒ‘แƒ แƒ˜แƒ•แƒ˜ แƒกแƒแƒ˜แƒ“แƒฃแƒ›แƒšแƒ แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก, แƒฌแƒแƒจแƒแƒšแƒ”แƒ— แƒ˜แƒ’แƒ˜ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— kubectl delete;
      • แƒ—แƒฃ แƒแƒ“แƒ’แƒ˜แƒšแƒแƒ‘แƒ แƒ˜แƒ•แƒ˜ แƒกแƒแƒ˜แƒ“แƒฃแƒ›แƒšแƒ แƒแƒ  แƒแƒ แƒ˜แƒก แƒแƒฆแƒ›แƒแƒฉแƒ”แƒœแƒ˜แƒšแƒ˜, แƒ˜แƒก แƒแƒ แƒแƒคแƒ”แƒ แƒก แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒก.

แƒฌแƒแƒ•แƒ˜แƒ“แƒ”แƒ—? แƒ‘แƒแƒจ! แƒจแƒ”แƒฎแƒ•แƒ“แƒ˜แƒ— shell-แƒแƒžแƒ”แƒ แƒแƒขแƒแƒ แƒก (แƒ›แƒ˜แƒ›แƒแƒฎแƒ˜แƒšแƒ•แƒ แƒ“แƒ แƒ•แƒ˜แƒ“แƒ”แƒ แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ˜ KubeCon EU'2020-แƒ“แƒแƒœ)

แƒ‘แƒแƒจแƒจแƒ˜ แƒแƒšแƒ’แƒแƒ แƒ˜แƒ—แƒ›แƒ˜แƒก แƒ“แƒแƒœแƒ”แƒ แƒ’แƒ•แƒ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒฉแƒแƒ›แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒแƒ— แƒฉแƒ•แƒ”แƒœแƒก แƒกแƒแƒชแƒแƒ•แƒ”แƒ‘แƒ˜ แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ”แƒ‘แƒ˜แƒ—.

แƒกแƒฌแƒแƒ แƒ”แƒ“ แƒแƒกแƒ” แƒจแƒ”แƒ•แƒซแƒ”แƒšแƒ˜แƒ— แƒจแƒ”แƒ’แƒ•แƒ”แƒฅแƒ›แƒœแƒ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ Kubernetes แƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ”แƒ แƒ˜ YAML แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก 35 แƒฎแƒแƒ–แƒ˜แƒก แƒ“แƒ แƒ“แƒแƒแƒฎแƒšแƒแƒ”แƒ‘แƒ˜แƒ— แƒ˜แƒ’แƒ˜แƒ•แƒ” แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ˜แƒก Bash แƒ™แƒแƒ“แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—! Shell-แƒแƒžแƒ”แƒ แƒแƒขแƒแƒ แƒ˜แƒก แƒแƒ›แƒแƒชแƒแƒœแƒแƒ แƒ›แƒแƒ—แƒ˜ แƒ”แƒ แƒ—แƒ›แƒแƒœแƒ”แƒ—แƒ—แƒแƒœ แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒ.

แƒแƒ›แƒแƒกแƒ—แƒแƒœ, แƒกแƒแƒ˜แƒ“แƒฃแƒ›แƒšแƒแƒ”แƒ‘แƒ˜แƒก แƒ™แƒแƒžแƒ˜แƒ แƒ”แƒ‘แƒ แƒแƒ  แƒแƒ แƒ˜แƒก แƒ™แƒแƒ›แƒฃแƒœแƒแƒšแƒฃแƒ แƒ˜ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒ”แƒ แƒ—แƒแƒ“แƒ”แƒ แƒ—แƒ˜ แƒกแƒคแƒ”แƒ แƒ. แƒแƒฅ แƒแƒ แƒ˜แƒก แƒ™แƒ˜แƒ“แƒ”แƒ• แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜ แƒ˜แƒ›แƒ˜แƒกแƒ, แƒ—แƒฃ แƒ แƒ แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ แƒ›แƒแƒก.

แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜ 1: แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒขแƒแƒœแƒ ConfigMap-แƒจแƒ˜

แƒ›แƒแƒ“แƒ˜แƒ— แƒจแƒ”แƒ•แƒฎแƒ”แƒ“แƒแƒ— แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒแƒก, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒ“แƒ’แƒ”แƒ‘แƒ แƒกแƒแƒ›แƒ˜ แƒžแƒแƒ“แƒ˜แƒกแƒ’แƒแƒœ. แƒžแƒแƒ“แƒ˜ แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒก ConfigMap-แƒก แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒฃแƒšแƒ˜ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ˜แƒก แƒจแƒ”แƒกแƒแƒœแƒแƒฎแƒแƒ“. แƒ แƒแƒ“แƒ”แƒกแƒแƒช pods แƒแƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ“แƒ, ConfigMap แƒ˜แƒงแƒ แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒฃแƒš แƒ›แƒ“แƒ’แƒแƒ›แƒแƒ แƒ”แƒแƒ‘แƒแƒจแƒ˜ (แƒ›แƒแƒ“แƒ˜แƒ— แƒ“แƒแƒ•แƒแƒ แƒฅแƒ•แƒแƒ— v.1). แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒกแƒแƒ“, แƒงแƒ•แƒ”แƒšแƒ แƒžแƒแƒ“แƒ˜ แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒก ConfigMap-แƒ˜แƒก แƒแƒ› แƒ™แƒแƒœแƒ™แƒ แƒ”แƒขแƒฃแƒš แƒ•แƒ”แƒ แƒกแƒ˜แƒแƒก.

แƒแƒฎแƒšแƒ แƒ“แƒแƒ•แƒฃแƒจแƒ•แƒแƒ—, แƒ แƒแƒ› ConfigMap แƒจแƒ”แƒ˜แƒชแƒ•แƒแƒšแƒ (v.2). แƒ—แƒฃแƒ›แƒชแƒ, pods แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒก ConfigMap-แƒ˜แƒก แƒฌแƒ˜แƒœแƒ แƒ•แƒ”แƒ แƒกแƒ˜แƒแƒก (v.1):

แƒฌแƒแƒ•แƒ˜แƒ“แƒ”แƒ—? แƒ‘แƒแƒจ! แƒจแƒ”แƒฎแƒ•แƒ“แƒ˜แƒ— shell-แƒแƒžแƒ”แƒ แƒแƒขแƒแƒ แƒก (แƒ›แƒ˜แƒ›แƒแƒฎแƒ˜แƒšแƒ•แƒ แƒ“แƒ แƒ•แƒ˜แƒ“แƒ”แƒ แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ˜ KubeCon EU'2020-แƒ“แƒแƒœ)

แƒ แƒแƒ’แƒแƒ  แƒ›แƒ˜แƒ•แƒ˜แƒงแƒ•แƒแƒœแƒ แƒแƒฎแƒแƒš ConfigMap-แƒ–แƒ” (v.2) แƒ’แƒแƒ“แƒแƒ แƒ—แƒ•แƒ? แƒžแƒแƒกแƒฃแƒฎแƒ˜ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜แƒ: แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ— แƒจแƒแƒ‘แƒšแƒแƒœแƒ˜. แƒ›แƒแƒ“แƒ˜แƒ— แƒ“แƒแƒ•แƒแƒ›แƒแƒขแƒแƒ— แƒกแƒแƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ แƒฏแƒแƒ›แƒ˜แƒก แƒแƒœแƒแƒขแƒแƒชแƒ˜แƒ แƒ’แƒแƒœแƒงแƒแƒคแƒ˜แƒšแƒ”แƒ‘แƒแƒจแƒ˜ template แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ˜แƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜:

แƒฌแƒแƒ•แƒ˜แƒ“แƒ”แƒ—? แƒ‘แƒแƒจ! แƒจแƒ”แƒฎแƒ•แƒ“แƒ˜แƒ— shell-แƒแƒžแƒ”แƒ แƒแƒขแƒแƒ แƒก (แƒ›แƒ˜แƒ›แƒแƒฎแƒ˜แƒšแƒ•แƒ แƒ“แƒ แƒ•แƒ˜แƒ“แƒ”แƒ แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ˜ KubeCon EU'2020-แƒ“แƒแƒœ)

แƒจแƒ”แƒ“แƒ”แƒ’แƒแƒ“, แƒ”แƒก แƒกแƒแƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ แƒฏแƒแƒ›แƒ˜ แƒ“แƒแƒ แƒ”แƒ’แƒ˜แƒกแƒขแƒ แƒ˜แƒ แƒ“แƒ”แƒ‘แƒ แƒงแƒ•แƒ”แƒšแƒ แƒžแƒแƒ“แƒจแƒ˜ แƒ“แƒ แƒ˜แƒ’แƒ˜แƒ•แƒ” แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒ แƒแƒ’แƒแƒ แƒช Deployment. แƒแƒฎแƒšแƒ แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒฃแƒœแƒ“แƒ แƒ’แƒแƒœแƒแƒแƒฎแƒšแƒแƒ— แƒแƒœแƒแƒขแƒแƒชแƒ˜แƒ, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ˜แƒชแƒ•แƒšแƒ”แƒ‘แƒ ConfigMap. แƒ“แƒ shell-แƒแƒžแƒ”แƒ แƒแƒขแƒแƒ แƒ˜ แƒ’แƒแƒ›แƒแƒ“แƒ’แƒ”แƒ‘แƒ แƒแƒ› แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜. แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ แƒแƒช แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ’แƒแƒแƒ™แƒ”แƒ—แƒแƒ— แƒแƒ แƒ˜แƒก แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ แƒฐแƒฃแƒ™แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ’แƒแƒ›แƒแƒ˜แƒฌแƒ”แƒ แƒก ConfigMap-แƒก แƒ“แƒ แƒ’แƒแƒœแƒแƒแƒฎแƒšแƒ”แƒ‘แƒก แƒฉแƒ”แƒ™แƒกแƒฃแƒ›แƒก.

แƒ—แƒฃ แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ”แƒšแƒ˜ แƒจแƒ”แƒ˜แƒขแƒแƒœแƒก แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒก ConfigMap-แƒจแƒ˜, shell-แƒแƒžแƒ”แƒ แƒแƒขแƒแƒ แƒ˜ แƒจแƒ”แƒแƒ›แƒฉแƒœแƒ”แƒ•แƒก แƒ›แƒแƒ— แƒ“แƒ แƒฎแƒ”แƒšแƒแƒฎแƒšแƒ แƒ’แƒแƒ›แƒแƒ—แƒ•แƒšแƒ˜แƒก แƒกแƒแƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ แƒฏแƒแƒ›แƒก. แƒ แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒแƒช แƒ™แƒฃแƒ‘แƒ”แƒ แƒœแƒ”แƒขแƒ”แƒกแƒ˜แƒก แƒฏแƒแƒ“แƒแƒกแƒœแƒแƒ‘แƒ แƒแƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ“แƒ”แƒ‘แƒ: แƒแƒ แƒ™แƒ”แƒกแƒขแƒ แƒ˜ แƒ›แƒแƒ™แƒšแƒแƒ•แƒก แƒžแƒแƒ“แƒก, แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒก แƒแƒฎแƒแƒšแƒก, แƒ“แƒแƒ”แƒšแƒแƒ“แƒ”แƒ‘แƒ แƒ›แƒ˜แƒก แƒ’แƒแƒฅแƒชแƒ”แƒ•แƒแƒก. Ready, แƒ“แƒ แƒ’แƒแƒ“แƒแƒ“แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ–แƒ”. แƒจแƒ”แƒ“แƒ”แƒ’แƒแƒ“, Deployment แƒกแƒ˜แƒœแƒฅแƒ แƒแƒœแƒ˜แƒ–แƒ“แƒ”แƒ‘แƒ แƒ“แƒ แƒ’แƒแƒ“แƒแƒ”แƒ แƒ—แƒ•แƒ”แƒ‘แƒ ConfigMap-แƒ˜แƒก แƒแƒฎแƒแƒš แƒ•แƒ”แƒ แƒกแƒ˜แƒแƒ–แƒ”.

แƒฌแƒแƒ•แƒ˜แƒ“แƒ”แƒ—? แƒ‘แƒแƒจ! แƒจแƒ”แƒฎแƒ•แƒ“แƒ˜แƒ— shell-แƒแƒžแƒ”แƒ แƒแƒขแƒแƒ แƒก (แƒ›แƒ˜แƒ›แƒแƒฎแƒ˜แƒšแƒ•แƒ แƒ“แƒ แƒ•แƒ˜แƒ“แƒ”แƒ แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ˜ KubeCon EU'2020-แƒ“แƒแƒœ)

แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜ 2: แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ แƒ›แƒแƒ แƒ’แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒœแƒ›แƒแƒ แƒขแƒ”แƒ‘แƒ”แƒ‘แƒ—แƒแƒœ

แƒ›แƒแƒ’แƒ”แƒฎแƒกแƒ”แƒœแƒ”แƒ‘แƒแƒ—, Kubernetes แƒ’แƒแƒซแƒšแƒ”แƒ•แƒ— แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒจแƒ”แƒฅแƒ›แƒœแƒแƒ— แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒ”แƒ‘แƒ˜แƒก แƒ˜แƒœแƒ“แƒ˜แƒ•แƒ˜แƒ“แƒฃแƒแƒšแƒฃแƒ แƒ˜ แƒขแƒ˜แƒžแƒ”แƒ‘แƒ˜. แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒจแƒ”แƒฅแƒ›แƒœแƒแƒ— แƒกแƒแƒฎแƒ˜แƒก MysqlDatabase. แƒ•แƒ—แƒฅแƒ•แƒแƒ—, แƒแƒ› แƒขแƒ˜แƒžแƒก แƒแƒฅแƒ•แƒก แƒแƒ แƒ˜ แƒ›แƒ”แƒขแƒแƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜: name ะธ namespace.

apiVersion: example.com/v1alpha1
kind: MysqlDatabase
metadata:
  name: foo
  namespace: bar

แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒแƒฅแƒ•แƒก Kubernetes แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒ˜ แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒกแƒแƒฎแƒ”แƒšแƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒ•แƒ แƒชแƒ˜แƒ—, แƒ แƒแƒ›แƒ”แƒšแƒจแƒ˜แƒช แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒจแƒ”แƒ•แƒฅแƒ›แƒœแƒแƒ— MySQL แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ—แƒ แƒ‘แƒแƒ–แƒ”แƒ‘แƒ˜. แƒแƒ› แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜ shell-แƒแƒžแƒ”แƒ แƒแƒขแƒแƒ แƒ˜ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒš แƒ˜แƒฅแƒœแƒแƒก แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜แƒก แƒ—แƒ•แƒแƒšแƒงแƒฃแƒ แƒ˜แƒก แƒ“แƒ”แƒ•แƒœแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก MysqlDatabaseแƒ›แƒแƒ— MySQL แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ—แƒแƒœ แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒ แƒ“แƒ แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒ˜แƒก แƒกแƒแƒกแƒฃแƒ แƒ•แƒ”แƒšแƒ˜ แƒ“แƒ แƒ“แƒแƒ™แƒ•แƒ˜แƒ แƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ›แƒ“แƒ’แƒแƒ›แƒแƒ แƒ”แƒแƒ‘แƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒœแƒฅแƒ แƒแƒœแƒ˜แƒ–แƒแƒชแƒ˜แƒ.

แƒฌแƒแƒ•แƒ˜แƒ“แƒ”แƒ—? แƒ‘แƒแƒจ! แƒจแƒ”แƒฎแƒ•แƒ“แƒ˜แƒ— shell-แƒแƒžแƒ”แƒ แƒแƒขแƒแƒ แƒก (แƒ›แƒ˜แƒ›แƒแƒฎแƒ˜แƒšแƒ•แƒ แƒ“แƒ แƒ•แƒ˜แƒ“แƒ”แƒ แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ˜ KubeCon EU'2020-แƒ“แƒแƒœ)

แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜ 3: แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒฃแƒšแƒ˜ แƒฅแƒกแƒ”แƒšแƒ˜แƒก แƒ›แƒแƒœแƒ˜แƒขแƒแƒ แƒ˜แƒœแƒ’แƒ˜

แƒ›แƒแƒ’แƒ”แƒฎแƒกแƒ”แƒœแƒ”แƒ‘แƒแƒ—, แƒžแƒ˜แƒœแƒ’แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒฅแƒกแƒ”แƒšแƒ˜แƒก แƒ›แƒแƒœแƒ˜แƒขแƒแƒ แƒ˜แƒœแƒ’แƒ˜แƒก แƒฃแƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ”แƒกแƒ˜ แƒ’แƒ–แƒแƒ. แƒแƒ› แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒจแƒ˜ แƒฉแƒ•แƒ”แƒœ แƒ’แƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒ—, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒฃแƒœแƒ“แƒ แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ“แƒ”แƒก แƒแƒกแƒ”แƒ—แƒ˜ แƒ›แƒแƒœแƒ˜แƒขแƒแƒ แƒ˜แƒœแƒ’แƒ˜ shell-แƒแƒžแƒ”แƒ แƒแƒขแƒแƒ แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—.

แƒฃแƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ”แƒก แƒงแƒแƒ•แƒšแƒ˜แƒกแƒ, แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ’แƒแƒ›แƒแƒ˜แƒฌแƒ”แƒ แƒแƒ— แƒ™แƒ•แƒแƒœแƒซแƒ”แƒ‘แƒ˜. Shell แƒแƒžแƒ”แƒ แƒแƒขแƒแƒ แƒก แƒกแƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒ™แƒ•แƒแƒœแƒซแƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ˜ แƒ“แƒ IP แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ˜. แƒ›แƒแƒ—แƒ˜ แƒ“แƒแƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ˜แƒ— แƒ˜แƒก แƒแƒ› แƒ™แƒ•แƒแƒœแƒซแƒ”แƒ‘แƒก แƒžแƒ˜แƒœแƒ’แƒก แƒ’แƒแƒฃแƒ™แƒ”แƒ—แƒ”แƒ‘แƒก.

configVersion: v1
kubernetes:
- name: nodes
  apiVersion: v1
  kind: Node
  jqFilter: |
    {
      name: .metadata.name,
      ip: (
       .status.addresses[] |  
        select(.type == "InternalIP") |
        .address
      )
    }
  group: main
  keepFullObjectsInMemory: false
  executeHookOnEvent: []
schedule:
- name: every_minute
  group: main
  crontab: "* * * * *"

แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜แƒก executeHookOnEvent: [] แƒฎแƒ”แƒšแƒก แƒฃแƒจแƒšแƒ˜แƒก แƒ™แƒแƒฃแƒญแƒ˜แƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒแƒก แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ แƒ˜ แƒ›แƒแƒ•แƒšแƒ”แƒœแƒ˜แƒก แƒกแƒแƒžแƒแƒกแƒฃแƒฎแƒแƒ“ (แƒแƒœแƒฃ แƒ™แƒ•แƒแƒœแƒซแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒชแƒ•แƒšแƒ˜แƒก, แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒก, แƒฌแƒแƒจแƒšแƒ˜แƒก แƒกแƒแƒžแƒแƒกแƒฃแƒฎแƒแƒ“). แƒ—แƒฃแƒ›แƒชแƒ, แƒ˜แƒก แƒ’แƒแƒ˜แƒฅแƒชแƒ”แƒ•แƒ (แƒ“แƒ แƒ’แƒแƒœแƒแƒแƒฎแƒšแƒ”แƒ— แƒ™แƒ•แƒแƒœแƒซแƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒ) แƒ“แƒแƒ’แƒ”แƒ’แƒ›แƒ˜แƒšแƒ˜ - แƒงแƒแƒ•แƒ”แƒš แƒฌแƒฃแƒ—แƒก, แƒ แƒแƒ’แƒแƒ แƒช แƒแƒ›แƒแƒก แƒ•แƒ”แƒšแƒ˜ แƒ˜แƒ—แƒ•แƒแƒšแƒ˜แƒกแƒฌแƒ˜แƒœแƒ”แƒ‘แƒก schedule.

แƒแƒฎแƒšแƒ แƒฉแƒœแƒ“แƒ”แƒ‘แƒ แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ, แƒ แƒแƒ’แƒแƒ  แƒ–แƒฃแƒกแƒขแƒแƒ“ แƒ•แƒ˜แƒชแƒ˜แƒ— แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘, แƒ แƒแƒ’แƒแƒ แƒ˜แƒชแƒแƒ แƒžแƒแƒ™แƒ”แƒขแƒ˜แƒก แƒ“แƒแƒ™แƒแƒ แƒ’แƒ•แƒ? แƒ›แƒแƒ“แƒ˜แƒ— แƒจแƒ”แƒ•แƒฎแƒ”แƒ“แƒแƒ— แƒ™แƒแƒ“แƒก:

function __main__() {
  for i in $(seq 0 "$(context::jq -r '(.snapshots.nodes | length) - 1')"); do
    node_name="$(context::jq -r '.snapshots.nodes['"$i"'].filterResult.name')"
    node_ip="$(context::jq -r '.snapshots.nodes['"$i"'].filterResult.ip')"
    packets_lost=0
    if ! ping -c 1 "$node_ip" -t 1 ; then
      packets_lost=1
    fi
    cat >> "$METRICS_PATH" <<END
      {
        "name": "node_packets_lost",
        "add": $packets_lost,
        "labels": {
          "node": "$node_name"
        }
      }
END
  done
}

แƒฉแƒ•แƒ”แƒœ แƒ•แƒ˜แƒ›แƒ”แƒแƒ แƒ”แƒ‘แƒ— แƒ™แƒ•แƒแƒœแƒซแƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒแƒก, แƒ•แƒ˜แƒฆแƒ”แƒ‘แƒ— แƒ›แƒแƒ— แƒกแƒแƒฎแƒ”แƒšแƒ”แƒ‘แƒก แƒ“แƒ IP แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ”แƒ‘แƒก, แƒ•แƒฃแƒ’แƒ–แƒแƒ•แƒœแƒ˜แƒ— แƒ›แƒแƒ— แƒžแƒ˜แƒœแƒ’แƒก แƒ“แƒ แƒจแƒ”แƒ“แƒ”แƒ’แƒ”แƒ‘แƒก แƒ•แƒฃแƒ’แƒ–แƒแƒ•แƒœแƒ˜แƒ— แƒžแƒ แƒแƒ›แƒ”แƒ—แƒ”แƒก. Shell-แƒแƒžแƒ”แƒ แƒแƒขแƒแƒ แƒก แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ แƒ›แƒ”แƒขแƒ แƒ˜แƒ™แƒ˜แƒก แƒ”แƒฅแƒกแƒžแƒแƒ แƒขแƒ˜ แƒžแƒ แƒแƒ›แƒ”แƒ—แƒ”แƒจแƒ˜, แƒ›แƒแƒ—แƒ˜ แƒจแƒ”แƒœแƒแƒฎแƒ•แƒ แƒ’แƒแƒ แƒ”แƒ›แƒแƒก แƒชแƒ•แƒšแƒแƒ“แƒจแƒ˜ แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ’แƒ–แƒ˜แƒก แƒ›แƒ˜แƒฎแƒ”แƒ“แƒ•แƒ˜แƒ— แƒ›แƒ“แƒ”แƒ‘แƒแƒ แƒ” แƒคแƒแƒ˜แƒšแƒจแƒ˜ $METRICS_PATH.

แƒแƒฅ แƒแƒกแƒ” แƒ—แƒฅแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒจแƒ”แƒฅแƒ›แƒœแƒแƒ— แƒแƒžแƒ”แƒ แƒแƒขแƒแƒ แƒ˜ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ แƒฅแƒกแƒ”แƒšแƒ˜แƒก แƒ›แƒแƒœแƒ˜แƒขแƒแƒ แƒ˜แƒœแƒ’แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒจแƒ˜.

แƒ แƒ˜แƒ’แƒ˜แƒก แƒ›แƒ”แƒฅแƒแƒœแƒ˜แƒ–แƒ›แƒ˜

แƒ”แƒก แƒกแƒขแƒแƒขแƒ˜แƒ แƒแƒ แƒแƒกแƒ แƒฃแƒšแƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒแƒ“แƒ แƒจแƒ”แƒš-แƒแƒžแƒ”แƒ แƒแƒขแƒแƒ แƒจแƒ˜ แƒฉแƒแƒจแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒกแƒฎแƒ•แƒ แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒแƒœแƒ˜ แƒ›แƒ”แƒฅแƒแƒœแƒ˜แƒ–แƒ›แƒ˜แƒก แƒแƒฆแƒฌแƒ”แƒ แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ”. แƒฌแƒแƒ แƒ›แƒแƒ˜แƒ“แƒ’แƒ˜แƒœแƒ”แƒ—, แƒ แƒแƒ› แƒ˜แƒก แƒแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒก แƒ แƒแƒ˜แƒ›แƒ” แƒกแƒแƒฎแƒ˜แƒก แƒ™แƒแƒฃแƒญแƒก แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒจแƒ˜ แƒ›แƒแƒ•แƒšแƒ”แƒœแƒ˜แƒก แƒกแƒแƒžแƒแƒกแƒฃแƒฎแƒแƒ“.

  • แƒ แƒ แƒ›แƒแƒฎแƒ“แƒ”แƒ‘แƒ, แƒ—แƒฃ, แƒแƒ›แƒแƒ•แƒ” แƒ“แƒ แƒแƒก, แƒ แƒแƒฆแƒแƒช แƒฎแƒ“แƒ”แƒ‘แƒ แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒจแƒ˜? แƒ™แƒ˜แƒ“แƒ”แƒ• แƒ”แƒ แƒ—แƒ˜ แƒ แƒแƒ› แƒฆแƒแƒœแƒ˜แƒกแƒซแƒ˜แƒ”แƒ‘แƒ?
  • แƒ’แƒแƒฃแƒจแƒ•แƒ”แƒ‘แƒก แƒ—แƒฃ แƒแƒ แƒ แƒญแƒฃแƒ แƒ•แƒ˜แƒก แƒแƒžแƒ”แƒ แƒแƒขแƒแƒ แƒ˜ แƒ™แƒแƒฃแƒญแƒ˜แƒก แƒกแƒฎแƒ•แƒ แƒ˜แƒœแƒกแƒขแƒแƒœแƒชแƒ˜แƒแƒก?
  • แƒ แƒ แƒ›แƒแƒฎแƒ“แƒ”แƒ‘แƒ, แƒ—แƒฃ, แƒ•แƒ—แƒฅแƒ•แƒแƒ—, แƒฎแƒฃแƒ—แƒ˜ แƒ›แƒแƒ•แƒšแƒ”แƒœแƒ แƒ›แƒแƒฎแƒ“แƒ”แƒ‘แƒ แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒจแƒ˜ แƒ”แƒ แƒ—แƒ“แƒ แƒแƒฃแƒšแƒแƒ“?
  • แƒ“แƒแƒแƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒก แƒ—แƒฃ แƒแƒ แƒ แƒจแƒ”แƒš-แƒแƒžแƒ”แƒ แƒแƒขแƒแƒ แƒ˜ แƒ›แƒแƒ— แƒžแƒแƒ แƒแƒšแƒ”แƒšแƒฃแƒ แƒแƒ“?
  • แƒ แƒแƒช แƒจแƒ”แƒ”แƒฎแƒ”แƒ‘แƒ แƒ›แƒแƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒฃแƒš แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒก, แƒ แƒแƒ’แƒแƒ แƒ˜แƒชแƒแƒ แƒ›แƒ”แƒฎแƒกแƒ˜แƒ”แƒ แƒ”แƒ‘แƒ แƒ“แƒ CPU?

แƒกแƒแƒ‘แƒ”แƒ“แƒœแƒ˜แƒ”แƒ แƒแƒ“, shell-แƒแƒžแƒ”แƒ แƒแƒขแƒแƒ แƒก แƒแƒฅแƒ•แƒก แƒฉแƒแƒจแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ แƒ˜แƒ’แƒ˜แƒก แƒ›แƒ”แƒฅแƒแƒœแƒ˜แƒ–แƒ›แƒ˜. แƒงแƒ•แƒ”แƒšแƒ แƒ›แƒแƒ•แƒšแƒ”แƒœแƒ แƒ แƒ˜แƒ’แƒ“แƒ”แƒ‘แƒ แƒ“แƒ แƒ›แƒฃแƒจแƒแƒ•แƒ“แƒ”แƒ‘แƒ แƒ—แƒแƒœแƒ›แƒ˜แƒ›แƒ“แƒ”แƒ•แƒ แƒแƒ‘แƒ˜แƒ—.

แƒ›แƒแƒ“แƒ˜ แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ”แƒ‘แƒ˜แƒ— แƒแƒ•แƒฎแƒกแƒœแƒแƒ— แƒ”แƒก. แƒ•แƒ—แƒฅแƒ•แƒแƒ—, แƒ’แƒ•แƒแƒฅแƒ•แƒก แƒแƒ แƒ˜ แƒ™แƒแƒฃแƒญแƒ˜. แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒฆแƒแƒœแƒ˜แƒกแƒซแƒ˜แƒ”แƒ‘แƒ แƒ›แƒ˜แƒ“แƒ˜แƒก แƒžแƒ˜แƒ แƒ•แƒ”แƒš แƒ™แƒแƒฃแƒญแƒ–แƒ”. แƒ›แƒ˜แƒกแƒ˜ แƒ“แƒแƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒ แƒ˜แƒ’แƒ˜ แƒฌแƒ˜แƒœ แƒ›แƒ˜แƒ˜แƒฌแƒ”แƒ•แƒก. แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜ แƒกแƒแƒ›แƒ˜ แƒ›แƒแƒ•แƒšแƒ”แƒœแƒ แƒ’แƒแƒ“แƒแƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ›แƒ”แƒแƒ แƒ” แƒ™แƒแƒฃแƒญแƒ–แƒ” - แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒแƒ›แƒแƒฆแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ แƒ˜แƒ’แƒ˜แƒ“แƒแƒœ แƒ“แƒ แƒจแƒ”แƒ“แƒ˜แƒแƒœ แƒ›แƒแƒกแƒจแƒ˜ "แƒฉแƒแƒšแƒ˜แƒฉแƒจแƒ˜". แƒแƒœแƒฃ Hook แƒ˜แƒฆแƒ”แƒ‘แƒก แƒ›แƒแƒ•แƒšแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒ›แƒ—แƒ”แƒš แƒ แƒ˜แƒ’แƒก - แƒแƒœ, แƒฃแƒคแƒ แƒ แƒ–แƒฃแƒกแƒขแƒแƒ“, แƒกแƒแƒ•แƒแƒšแƒ“แƒ”แƒ‘แƒฃแƒšแƒ แƒ™แƒแƒœแƒขแƒ”แƒฅแƒกแƒขแƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒกแƒ˜แƒ•แƒ˜.

แƒแƒกแƒ”แƒ•แƒ” แƒ”แƒกแƒ”แƒœแƒ˜ แƒ›แƒแƒ•แƒšแƒ”แƒœแƒ”แƒ‘แƒ˜ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒ”แƒ แƒ—แƒ˜แƒแƒœแƒ“แƒ”แƒก แƒ”แƒ แƒ— แƒ“แƒ˜แƒ“แƒจแƒ˜. แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ˜ แƒžแƒแƒกแƒฃแƒฎแƒ˜แƒกแƒ›แƒ’แƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒแƒ›แƒแƒ–แƒ” group แƒกแƒแƒ•แƒแƒšแƒ“แƒ”แƒ‘แƒฃแƒšแƒ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒแƒจแƒ˜.

แƒฌแƒแƒ•แƒ˜แƒ“แƒ”แƒ—? แƒ‘แƒแƒจ! แƒจแƒ”แƒฎแƒ•แƒ“แƒ˜แƒ— shell-แƒแƒžแƒ”แƒ แƒแƒขแƒแƒ แƒก (แƒ›แƒ˜แƒ›แƒแƒฎแƒ˜แƒšแƒ•แƒ แƒ“แƒ แƒ•แƒ˜แƒ“แƒ”แƒ แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ˜ KubeCon EU'2020-แƒ“แƒแƒœ)

แƒ—แƒฅแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒจแƒ”แƒฅแƒ›แƒœแƒแƒ— แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ แƒ˜ แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ˜แƒก แƒ แƒ˜แƒ’แƒ”แƒ‘แƒ˜/แƒ™แƒแƒ™แƒ•แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ›แƒแƒ—แƒ˜ แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒ™แƒแƒ›แƒ‘แƒ˜แƒœแƒแƒชแƒ˜แƒ”แƒ‘แƒ˜. แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒ”แƒ แƒ— แƒ แƒ˜แƒ’แƒจแƒ˜ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ˜แƒ›แƒฃแƒจแƒแƒแƒก แƒแƒ แƒ˜ แƒ™แƒแƒฃแƒญแƒ˜แƒ—, แƒแƒœ แƒžแƒ˜แƒ แƒ˜แƒฅแƒ˜แƒ—.

แƒฌแƒแƒ•แƒ˜แƒ“แƒ”แƒ—? แƒ‘แƒแƒจ! แƒจแƒ”แƒฎแƒ•แƒ“แƒ˜แƒ— shell-แƒแƒžแƒ”แƒ แƒแƒขแƒแƒ แƒก (แƒ›แƒ˜แƒ›แƒแƒฎแƒ˜แƒšแƒ•แƒ แƒ“แƒ แƒ•แƒ˜แƒ“แƒ”แƒ แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ˜ KubeCon EU'2020-แƒ“แƒแƒœ)

แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ แƒแƒช แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ’แƒแƒแƒ™แƒ”แƒ—แƒแƒ— แƒแƒ แƒ˜แƒก แƒ•แƒ”แƒšแƒ˜แƒก แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒกแƒแƒ“ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ queue แƒกแƒแƒ•แƒแƒšแƒ“แƒ”แƒ‘แƒฃแƒšแƒ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒแƒจแƒ˜. แƒ—แƒฃ แƒ แƒ˜แƒ’แƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ˜ แƒแƒ  แƒแƒ แƒ˜แƒก แƒ›แƒ˜แƒ—แƒ˜แƒ—แƒ”แƒ‘แƒฃแƒšแƒ˜, Hook แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒœแƒแƒ’แƒฃแƒšแƒ˜แƒกแƒฎแƒ›แƒ”แƒ• แƒ แƒ˜แƒ’แƒจแƒ˜ (default). แƒ แƒ˜แƒ’แƒ˜แƒก แƒ”แƒก แƒ›แƒ”แƒฅแƒแƒœแƒ˜แƒ–แƒ›แƒ˜ แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ’แƒแƒซแƒšแƒ”แƒ•แƒ— แƒกแƒ แƒฃแƒšแƒแƒ“ แƒ›แƒแƒแƒ’แƒ•แƒแƒ แƒแƒ— แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒ แƒ—แƒ•แƒ˜แƒก แƒงแƒ•แƒ”แƒšแƒ แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ แƒ™แƒแƒฃแƒญแƒ”แƒ‘แƒ—แƒแƒœ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒกแƒแƒก.

แƒ“แƒแƒกแƒ™แƒ•แƒœแƒ

แƒฉแƒ•แƒ”แƒœ แƒแƒ•แƒฃแƒฎแƒกแƒ”แƒœแƒ˜แƒ— แƒ แƒ แƒแƒ แƒ˜แƒก shell-แƒแƒžแƒ”แƒ แƒแƒขแƒแƒ แƒ˜, แƒ•แƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ—, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ›แƒ˜แƒกแƒ˜ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒกแƒฌแƒ แƒแƒคแƒแƒ“ แƒ“แƒ แƒฃแƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒแƒ“ Kubernetes-แƒ˜แƒก แƒแƒžแƒ”แƒ แƒแƒขแƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฅแƒ›แƒœแƒ”แƒšแƒแƒ“ แƒ“แƒ แƒ›แƒแƒ•แƒ˜แƒงแƒ•แƒแƒœแƒ”แƒ— แƒ›แƒ˜แƒกแƒ˜ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜.

แƒ“แƒ”แƒขแƒแƒšแƒฃแƒ แƒ˜ แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒ shell-แƒแƒžแƒ”แƒ แƒแƒขแƒแƒ แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘, แƒ˜แƒกแƒ”แƒ•แƒ” แƒ แƒแƒ’แƒแƒ แƒช แƒกแƒฌแƒ แƒแƒคแƒ˜ แƒ’แƒแƒ™แƒ•แƒ”แƒ—แƒ˜แƒšแƒ˜ แƒ›แƒ˜แƒกแƒ˜ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘, แƒฎแƒ”แƒšแƒ›แƒ˜แƒกแƒแƒฌแƒ•แƒ“แƒแƒ›แƒ˜แƒ แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒกแƒจแƒ˜. แƒกแƒแƒชแƒแƒ•แƒ˜ GitHub-แƒ–แƒ”. แƒœแƒฃ แƒ›แƒแƒ’แƒ”แƒ แƒ˜แƒ“แƒ”แƒ‘แƒแƒ— แƒ“แƒแƒ’แƒ•แƒ˜แƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ“แƒ”แƒ— แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ”แƒ‘แƒ˜แƒ—: แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ’แƒแƒœแƒ˜แƒฎแƒ˜แƒšแƒแƒ— แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒกแƒžแƒ”แƒชแƒ˜แƒแƒšแƒฃแƒ แƒแƒ“ Telegram แƒฏแƒ’แƒฃแƒคแƒ˜ (แƒ แƒฃแƒกแƒฃแƒšแƒแƒ“) แƒแƒœ แƒ”แƒœแƒแƒ–แƒ” แƒแƒ› แƒคแƒแƒ แƒฃแƒ›แƒก (แƒ˜แƒœแƒ’แƒšแƒ˜แƒกแƒฃแƒ แƒแƒ“).

แƒ“แƒ แƒ—แƒฃ แƒ›แƒแƒ’แƒ”แƒฌแƒแƒœแƒแƒ—, แƒงแƒแƒ•แƒ”แƒšแƒ—แƒ•แƒ˜แƒก แƒ’แƒ•แƒ˜แƒฎแƒแƒ แƒ˜แƒ แƒแƒฎแƒแƒšแƒ˜ แƒ’แƒแƒ›แƒแƒจแƒ•แƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก/PR/แƒ•แƒแƒ แƒกแƒ™แƒ•แƒšแƒแƒ•แƒ”แƒ‘แƒ˜แƒก แƒœแƒแƒฎแƒ•แƒ GitHub-แƒ–แƒ”, แƒกแƒแƒ“แƒแƒช, แƒกแƒฎแƒ•แƒแƒ—แƒ แƒจแƒแƒ แƒ˜แƒก, แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ˜แƒžแƒแƒ•แƒแƒ— แƒกแƒฎแƒ•แƒ แƒกแƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒ แƒžแƒ แƒแƒ”แƒฅแƒขแƒ”แƒ‘แƒ˜. แƒ›แƒแƒ— แƒจแƒแƒ แƒ˜แƒก แƒแƒฆแƒกแƒแƒœแƒ˜แƒจแƒœแƒแƒ•แƒ˜แƒ แƒ“แƒแƒœแƒแƒ›แƒแƒขแƒ˜แƒก แƒแƒžแƒ”แƒ แƒแƒขแƒแƒ แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒš-แƒแƒžแƒ”แƒ แƒแƒขแƒแƒ แƒ˜แƒก แƒ“แƒ˜แƒ“แƒ˜ แƒซแƒ›แƒแƒ. แƒ”แƒก แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒก Helm แƒกแƒฅแƒ”แƒ›แƒ”แƒ‘แƒก แƒ“แƒแƒœแƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒกแƒแƒงแƒ”แƒœแƒ”แƒ‘แƒšแƒแƒ“, แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ แƒ’แƒแƒœแƒแƒฎแƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒฌแƒแƒ“แƒ”แƒ‘แƒ แƒ“แƒ แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒ“แƒ˜แƒแƒ’แƒ แƒแƒ›แƒ˜แƒก แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜แƒก/แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒœแƒ˜แƒขแƒแƒ แƒ˜แƒœแƒ’แƒ˜, แƒแƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ”แƒ‘แƒก แƒ“แƒ˜แƒแƒ’แƒ แƒแƒ›แƒ”แƒ‘แƒ˜แƒก แƒ˜แƒœแƒกแƒขแƒแƒšแƒแƒชแƒ˜แƒ˜แƒก แƒžแƒ แƒแƒชแƒ”แƒกแƒก แƒ“แƒ แƒแƒกแƒ”แƒ•แƒ” แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ แƒจแƒ”แƒชแƒ•แƒแƒšแƒแƒก แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒจแƒ˜ แƒ›แƒแƒ•แƒšแƒ”แƒœแƒ”แƒ‘แƒ–แƒ” แƒกแƒแƒžแƒแƒกแƒฃแƒฎแƒแƒ“.

แƒฌแƒแƒ•แƒ˜แƒ“แƒ”แƒ—? แƒ‘แƒแƒจ! แƒจแƒ”แƒฎแƒ•แƒ“แƒ˜แƒ— shell-แƒแƒžแƒ”แƒ แƒแƒขแƒแƒ แƒก (แƒ›แƒ˜แƒ›แƒแƒฎแƒ˜แƒšแƒ•แƒ แƒ“แƒ แƒ•แƒ˜แƒ“แƒ”แƒ แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ˜ KubeCon EU'2020-แƒ“แƒแƒœ)

แƒ•แƒ˜แƒ“แƒ”แƒแƒ”แƒ‘แƒ˜ แƒ“แƒ แƒกแƒšแƒแƒ˜แƒ“แƒ”แƒ‘แƒ˜

แƒ•แƒ˜แƒ“แƒ”แƒ แƒกแƒžแƒ”แƒฅแƒขแƒแƒ™แƒšแƒ˜แƒ“แƒแƒœ (~23 แƒฌแƒฃแƒ—แƒ˜):


แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ˜แƒก แƒžแƒ แƒ”แƒ–แƒ”แƒœแƒขแƒแƒชแƒ˜แƒ:

PS

แƒแƒกแƒ”แƒ•แƒ” แƒฌแƒแƒ˜แƒ™แƒ˜แƒ—แƒฎแƒ”แƒ— แƒฉแƒ•แƒ”แƒœแƒก แƒ‘แƒšแƒแƒ’แƒ–แƒ”:

แƒฌแƒงแƒแƒ แƒ: www.habr.com

แƒแƒฎแƒแƒšแƒ˜ แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ