แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ’แƒแƒ›แƒแƒชแƒ“แƒ˜แƒšแƒ”แƒ‘แƒ CSI แƒ“แƒ แƒแƒ˜แƒ•แƒ”แƒ แƒ˜แƒก แƒจแƒ”แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒแƒจแƒ˜ Kubernetes-แƒจแƒ˜ Yandex.Cloud-แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก

แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ’แƒแƒ›แƒแƒชแƒ“แƒ˜แƒšแƒ”แƒ‘แƒ CSI แƒ“แƒ แƒแƒ˜แƒ•แƒ”แƒ แƒ˜แƒก แƒจแƒ”แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒแƒจแƒ˜ Kubernetes-แƒจแƒ˜ Yandex.Cloud-แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก

แƒ›แƒแƒฎแƒแƒ แƒฃแƒšแƒ˜ แƒ•แƒแƒ แƒ— แƒ’แƒแƒœแƒ•แƒแƒชแƒฎแƒแƒ“แƒแƒ—, แƒ แƒแƒ› Flant แƒแƒคแƒแƒ แƒ—แƒแƒ”แƒ‘แƒก แƒ—แƒแƒ•แƒ˜แƒก แƒฌแƒ•แƒšแƒ˜แƒšแƒก Kubernetes-แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒฆแƒ˜แƒ แƒฌแƒงแƒแƒ แƒแƒก แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ”แƒ‘แƒจแƒ˜ แƒ’แƒแƒ›แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒ— CSI แƒ“แƒ แƒแƒ˜แƒ•แƒ”แƒ แƒ˜แƒก แƒแƒšแƒคแƒ แƒ•แƒ”แƒ แƒกแƒ˜แƒ (Container Storage Interface) Yandex.Cloud-แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.

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

แƒจแƒ”แƒกแƒแƒ•แƒแƒšแƒ˜

แฒ แƒแƒขแƒแƒ› แƒแƒ แƒ˜แƒก แƒ”แƒก?

แƒฉแƒ•แƒ”แƒœแƒก แƒ™แƒแƒ›แƒžแƒแƒœแƒ˜แƒแƒจแƒ˜, Kubernetes-แƒ˜แƒก แƒฌแƒแƒ แƒ›แƒแƒ”แƒ‘แƒแƒจแƒ˜ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒ—แƒแƒ•แƒ˜แƒ“แƒแƒœแƒ•แƒ” (แƒแƒœแƒฃ แƒฃแƒ™แƒ•แƒ” แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒฌแƒ”แƒšแƒ˜แƒ), แƒฉแƒ•แƒ”แƒœ แƒ•แƒแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ— แƒกแƒแƒ™แƒฃแƒ—แƒแƒ  แƒฎแƒ”แƒšแƒกแƒแƒฌแƒงแƒแƒก (deckhouse), แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช, แƒกแƒฎแƒ•แƒแƒ—แƒ แƒจแƒแƒ แƒ˜แƒก, แƒแƒกแƒ”แƒ•แƒ” แƒ•แƒ’แƒ”แƒ’แƒ›แƒแƒ•แƒ— แƒ›แƒแƒšแƒ” แƒ’แƒแƒ•แƒฎแƒแƒ“แƒแƒ— แƒฆแƒ˜แƒ แƒ™แƒแƒ“แƒ˜แƒก แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜. . แƒ›แƒ˜แƒกแƒ˜ แƒ“แƒแƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ˜แƒ—, แƒฉแƒ•แƒ”แƒœ แƒ”แƒ แƒ—แƒœแƒแƒ˜แƒ แƒแƒ“ แƒ•แƒแƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒ˜แƒ แƒ”แƒ‘แƒ— แƒ“แƒ แƒ•แƒแƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒ˜แƒ แƒ”แƒ‘แƒ— แƒงแƒ•แƒ”แƒšแƒ แƒฉแƒ•แƒ”แƒœแƒก แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒก แƒ“แƒ แƒแƒ›แƒŸแƒแƒ›แƒแƒ“ แƒฃแƒ™แƒ•แƒ” แƒแƒ แƒ˜แƒก 100-แƒ–แƒ” แƒ›แƒ”แƒขแƒ˜ แƒ›แƒแƒ—แƒ’แƒแƒœแƒ˜, แƒขแƒ”แƒฅแƒœแƒ˜แƒ™แƒ˜แƒก แƒ›แƒ แƒแƒ•แƒแƒšแƒคแƒ”แƒ แƒแƒ•แƒแƒœ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ”แƒ‘แƒ–แƒ” แƒ“แƒ แƒงแƒ•แƒ”แƒšแƒ แƒฎแƒ”แƒšแƒ›แƒ˜แƒกแƒแƒฌแƒ•แƒ“แƒแƒ›แƒ˜ แƒฆแƒ แƒฃแƒ‘แƒšแƒแƒ•แƒแƒœ แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒจแƒ˜.

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

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

แƒ แƒ แƒแƒ แƒ˜แƒก แƒ“แƒ แƒ•แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก?

แƒแƒกแƒ” แƒ แƒแƒ›, แƒฉแƒ•แƒ”แƒœ แƒฃแƒ™แƒ•แƒ” แƒ•แƒ˜แƒกแƒแƒฃแƒ‘แƒ แƒ”แƒ— Kubernetes-แƒจแƒ˜ แƒจแƒ”แƒœแƒแƒฎแƒ•แƒ˜แƒก แƒ—แƒแƒœแƒแƒ›แƒ”แƒ“แƒ แƒแƒ•แƒ” แƒ›แƒ˜แƒ“แƒ’แƒแƒ›แƒแƒ–แƒ”: แƒ แƒแƒ’แƒแƒ  แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก CSI? ะธ แƒ แƒแƒ’แƒแƒ  แƒ›แƒแƒ•แƒ˜แƒ“แƒ แƒกแƒแƒ–แƒแƒ’แƒแƒ“แƒแƒ”แƒ‘แƒ แƒแƒ› แƒ›แƒ˜แƒ“แƒ’แƒแƒ›แƒ˜แƒกแƒแƒ“แƒ›แƒ˜.

แƒแƒ›แƒŸแƒแƒ›แƒแƒ“, แƒฆแƒ แƒฃแƒ‘แƒšแƒแƒ•แƒแƒœแƒ˜ แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ”แƒ‘แƒ˜แƒก แƒ‘แƒ”แƒ•แƒ แƒ›แƒ แƒ“แƒ˜แƒ“แƒ›แƒ แƒžแƒ แƒแƒ•แƒแƒ˜แƒ“แƒ”แƒ แƒ›แƒ แƒจแƒ”แƒ˜แƒ›แƒฃแƒจแƒแƒ•แƒ แƒ“แƒ แƒแƒ˜แƒ•แƒ”แƒ แƒ”แƒ‘แƒ˜, แƒ แƒแƒ› แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒแƒœ แƒ—แƒแƒ•แƒ˜แƒแƒœแƒ—แƒ˜ แƒฆแƒ แƒฃแƒ‘แƒšแƒแƒ•แƒแƒœแƒ˜ แƒ“แƒ˜แƒกแƒ™แƒ”แƒ‘แƒ˜, แƒ แƒแƒ’แƒแƒ แƒช แƒ›แƒฃแƒ“แƒ›แƒ˜แƒ•แƒ˜ แƒ›แƒแƒชแƒฃแƒšแƒแƒ‘แƒ Kubernetes-แƒจแƒ˜. แƒ—แƒฃ แƒ›แƒ˜แƒ›แƒฌแƒแƒ“แƒ”แƒ‘แƒ”แƒšแƒก แƒแƒ  แƒแƒฅแƒ•แƒก แƒแƒกแƒ”แƒ—แƒ˜ แƒ“แƒ แƒแƒ˜แƒ•แƒ”แƒ แƒ˜, แƒ›แƒแƒ’แƒ แƒแƒ› แƒงแƒ•แƒ”แƒšแƒ แƒกแƒแƒญแƒ˜แƒ แƒ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒงแƒแƒคแƒ˜แƒšแƒ˜แƒ API-แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ˜แƒ—, แƒ›แƒแƒจแƒ˜แƒœ แƒแƒ แƒแƒคแƒ”แƒ แƒ˜ แƒ’แƒ˜แƒจแƒšแƒ˜แƒ— แƒฎแƒ”แƒšแƒก แƒ“แƒ แƒแƒ˜แƒ•แƒ”แƒ แƒ˜แƒก แƒ“แƒแƒœแƒ”แƒ แƒ’แƒ•แƒแƒจแƒ˜. แƒ”แƒก แƒแƒ แƒ˜แƒก แƒ˜แƒก, แƒ แƒแƒช แƒ›แƒแƒฎแƒ“แƒ Yandex.Cloud-แƒ—แƒแƒœ.

แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒคแƒฃแƒซแƒ•แƒ”แƒšแƒ˜ แƒแƒ•แƒ˜แƒฆแƒ”แƒ— CSI แƒ“แƒ แƒแƒ˜แƒ•แƒ”แƒ แƒ˜ DigitalOcean แƒฆแƒ แƒฃแƒ‘แƒšแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ“แƒ แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒ˜แƒ“แƒ”แƒ แƒ“แƒ แƒแƒ˜แƒ•แƒ”แƒ แƒ”แƒ‘แƒ˜ GCP-แƒกแƒ—แƒ•แƒ˜แƒก, แƒ•แƒ˜แƒœแƒแƒ˜แƒ“แƒแƒœ แƒแƒ› แƒฆแƒ แƒฃแƒ‘แƒšแƒ”แƒ‘แƒ˜แƒก API-แƒกแƒ—แƒแƒœ (Google แƒ“แƒ Yandex) แƒฃแƒ แƒ—แƒ˜แƒ”แƒ แƒ—แƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒแƒก แƒแƒ แƒแƒ”แƒ แƒ—แƒ˜ แƒ›แƒกแƒ’แƒแƒ•แƒกแƒ”แƒ‘แƒ แƒแƒฅแƒ•แƒก. แƒ™แƒ”แƒ แƒซแƒแƒ“, API แƒ“แƒ แƒกแƒฌแƒแƒ แƒ˜ แƒ™แƒšแƒ˜แƒœแƒ˜แƒ™แƒฃแƒ แƒ˜ แƒžแƒ แƒแƒฅแƒขแƒ˜แƒ™แƒ˜แƒกแƒ“แƒ Yandex แƒ“แƒแƒแƒ‘แƒ แƒฃแƒœแƒ”แƒ— แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒ˜ Operation แƒ’แƒ แƒซแƒ”แƒšแƒ•แƒแƒ“แƒ˜แƒแƒœแƒ˜ แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒกแƒขแƒแƒขแƒฃแƒกแƒ˜แƒก แƒ—แƒ•แƒแƒšแƒงแƒฃแƒ แƒ˜แƒก แƒ“แƒ”แƒ•แƒœแƒ”แƒ‘แƒ (แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒแƒฎแƒแƒšแƒ˜ แƒ“แƒ˜แƒกแƒ™แƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒ). Yandex.Cloud API-แƒกแƒ—แƒแƒœ แƒฃแƒ แƒ—แƒ˜แƒ”แƒ แƒ—แƒแƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ— Yandex.Cloud Go SDK.

แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒกแƒแƒ›แƒฃแƒจแƒแƒแƒก แƒจแƒ”แƒ“แƒ”แƒ’แƒ˜ แƒ’แƒแƒ›แƒแƒฅแƒ•แƒ”แƒงแƒœแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ GitHub-แƒ–แƒ” แƒ“แƒ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒกแƒแƒกแƒแƒ แƒ’แƒ”แƒ‘แƒšแƒ แƒ˜แƒงแƒแƒก แƒ›แƒแƒ—แƒ—แƒ•แƒ˜แƒก, แƒ•แƒ˜แƒœแƒช แƒ แƒแƒ˜แƒ›แƒ” แƒ›แƒ˜แƒ–แƒ”แƒ–แƒ˜แƒ— แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒก แƒกแƒแƒ™แƒฃแƒ—แƒแƒ  Kubernetes-แƒ˜แƒก แƒ˜แƒœแƒกแƒขแƒแƒšแƒแƒชแƒ˜แƒแƒก Yandex.Cloud แƒ•แƒ˜แƒ แƒขแƒฃแƒแƒšแƒฃแƒ  แƒ›แƒแƒœแƒฅแƒแƒœแƒ”แƒ‘แƒ–แƒ” (แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒ แƒ แƒ›แƒ–แƒ แƒ›แƒแƒ แƒ—แƒฃแƒš แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒ–แƒ”) แƒ“แƒ แƒกแƒฃแƒ แƒก แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒแƒก (แƒจแƒ”แƒ™แƒ•แƒ”แƒ—แƒ) แƒ“แƒ˜แƒกแƒ™แƒ”แƒ‘แƒ˜ CSI-แƒ˜แƒก แƒ›แƒ”แƒจแƒ•แƒ”แƒแƒ‘แƒ˜แƒ—.

ะ ะตะฐะปะธะทะฐั†ะธั

แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“แƒ˜ แƒ›แƒแƒฎแƒแƒกแƒ˜แƒแƒ—แƒ”แƒ‘แƒšแƒ”แƒ‘แƒ˜

แƒแƒ›แƒŸแƒแƒ›แƒแƒ“ แƒ“แƒ แƒแƒ˜แƒ•แƒ”แƒ แƒ˜ แƒ›แƒฎแƒแƒ แƒก แƒฃแƒญแƒ”แƒ แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒก:

  • แƒ“แƒ˜แƒกแƒ™แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒšแƒแƒ’แƒ”แƒ‘แƒ แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒ˜แƒก แƒงแƒ•แƒ”แƒšแƒ แƒ–แƒแƒœแƒแƒจแƒ˜ แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒจแƒ˜ แƒแƒ แƒกแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ™แƒ•แƒแƒœแƒซแƒ”แƒ‘แƒ˜แƒก แƒขแƒแƒžแƒแƒšแƒแƒ’แƒ˜แƒ˜แƒก แƒ›แƒ˜แƒฎแƒ”แƒ“แƒ•แƒ˜แƒ—;
  • แƒแƒ“แƒ แƒ” แƒจแƒ”แƒ™แƒ•แƒ”แƒ—แƒ˜แƒšแƒ˜ แƒ“แƒ˜แƒกแƒ™แƒ”แƒ‘แƒ˜แƒก แƒแƒ›แƒแƒฆแƒ”แƒ‘แƒ;
  • แƒฎแƒแƒ–แƒ’แƒแƒ แƒ”แƒจแƒ” แƒ–แƒแƒ›แƒ˜แƒก แƒจแƒ”แƒชแƒ•แƒšแƒ แƒ“แƒ˜แƒกแƒ™แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก (Yandex.Cloud แƒแƒ  แƒ“แƒแƒฃแƒญแƒ˜แƒ แƒแƒก แƒ›แƒฎแƒแƒ แƒ˜ แƒ•แƒ˜แƒ แƒขแƒฃแƒแƒšแƒฃแƒ  แƒ›แƒแƒœแƒฅแƒแƒœแƒแƒ–แƒ” แƒ“แƒแƒ›แƒแƒ’แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ“แƒ˜แƒกแƒ™แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ–แƒ แƒ“แƒ). แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ—แƒฃ แƒ แƒแƒ’แƒแƒ  แƒฃแƒœแƒ“แƒ แƒจแƒ”แƒชแƒ•แƒšแƒ˜แƒšแƒ˜แƒงแƒ แƒ“แƒ แƒแƒ˜แƒ•แƒ”แƒ แƒ˜, แƒ แƒแƒ—แƒ แƒ–แƒแƒ›แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒชแƒ•แƒšแƒ แƒ›แƒแƒฅแƒกแƒ˜แƒ›แƒแƒšแƒฃแƒ แƒแƒ“ แƒฃแƒ›แƒขแƒ™แƒ˜แƒ•แƒœแƒ”แƒฃแƒšแƒ แƒงแƒแƒคแƒ˜แƒšแƒ˜แƒงแƒ, แƒ˜แƒฎแƒ˜แƒšแƒ”แƒ— แƒฅแƒ•แƒ”แƒ›แƒแƒ—.

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

แƒ›แƒ—แƒแƒ•แƒแƒ แƒ˜ แƒกแƒ˜แƒ แƒ—แƒฃแƒšแƒ” แƒ“แƒ แƒ แƒแƒ’แƒแƒ  แƒ’แƒแƒ“แƒแƒ•แƒšแƒแƒฎแƒแƒ— แƒ˜แƒ’แƒ˜

Yandex.Cloud API-แƒจแƒ˜ แƒ“แƒ˜แƒกแƒ™แƒ”แƒ‘แƒ˜แƒก แƒ แƒ”แƒแƒšแƒฃแƒ  แƒ“แƒ แƒแƒจแƒ˜ แƒ’แƒแƒ–แƒ แƒ“แƒ˜แƒก แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒšแƒแƒ‘แƒ˜แƒก แƒแƒ แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒ แƒแƒ แƒ˜แƒก แƒจแƒ”แƒ–แƒฆแƒฃแƒ“แƒ•แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒ แƒ—แƒฃแƒšแƒ”แƒ‘แƒก PV-แƒกแƒ—แƒ•แƒ˜แƒก แƒ–แƒแƒ›แƒ˜แƒก แƒจแƒ”แƒชแƒ•แƒšแƒ˜แƒก แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒแƒก (แƒ›แƒฃแƒ“แƒ›แƒ˜แƒ•แƒ˜ แƒ›แƒแƒชแƒฃแƒšแƒแƒ‘แƒ): แƒแƒ› แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜ แƒแƒฃแƒชแƒ˜แƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒžแƒแƒ“แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒก แƒ“แƒ˜แƒกแƒ™แƒก, แƒจแƒ”แƒฉแƒ”แƒ แƒ“แƒ”แƒก. แƒ“แƒ แƒแƒ›แƒแƒœ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒ›แƒแƒ˜แƒฌแƒ•แƒ˜แƒแƒก แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒคแƒ”แƒ แƒฎแƒ”แƒ‘แƒ.

แƒ›แƒ˜แƒฎแƒ”แƒ“แƒ•แƒ˜แƒ— CSI แƒกแƒžแƒ”แƒชแƒ˜แƒคแƒ˜แƒ™แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜, แƒ—แƒฃ CSI แƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ”แƒ แƒ˜ แƒ˜แƒขแƒงแƒแƒ‘แƒ˜แƒœแƒ”แƒ‘แƒ, แƒ แƒแƒ› แƒ›แƒแƒก แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ แƒ“แƒ˜แƒกแƒ™แƒ”แƒ‘แƒ˜แƒก แƒ–แƒแƒ›แƒ˜แƒก แƒจแƒ”แƒชแƒ•แƒšแƒ แƒ›แƒฎแƒแƒšแƒแƒ“ โ€žแƒฎแƒแƒ–แƒ’แƒแƒ แƒ”แƒจแƒ”โ€œ (VolumeExpansion.OFFLINE), แƒ›แƒแƒจแƒ˜แƒœ แƒ“แƒ˜แƒกแƒ™แƒ˜แƒก แƒ’แƒแƒ–แƒ แƒ“แƒ˜แƒก แƒžแƒ แƒแƒชแƒ”แƒกแƒ˜ แƒแƒกแƒ” แƒฃแƒœแƒ“แƒ แƒฌแƒแƒ•แƒ˜แƒ“แƒ”แƒก:

แƒ—แƒฃ แƒ“แƒแƒœแƒแƒ›แƒแƒขแƒก แƒแƒฅแƒ•แƒก แƒ›แƒฎแƒแƒšแƒแƒ“ VolumeExpansion.OFFLINE แƒ’แƒแƒคแƒแƒ แƒ—แƒแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒšแƒแƒ‘แƒ แƒ“แƒ แƒ›แƒแƒชแƒฃแƒšแƒแƒ‘แƒ แƒแƒ›แƒŸแƒแƒ›แƒแƒ“ แƒ’แƒแƒ›แƒแƒฅแƒ•แƒ”แƒงแƒœแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒแƒœ แƒฎแƒ”แƒšแƒ›แƒ˜แƒกแƒแƒฌแƒ•แƒ“แƒแƒ›แƒ˜แƒ แƒ™แƒ•แƒแƒœแƒซแƒ–แƒ” ControllerExpandVolume แƒฃแƒœแƒ“แƒ แƒ“แƒแƒ แƒ”แƒ™แƒแƒ— แƒ›แƒฎแƒแƒšแƒแƒ“ แƒแƒ›แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’:

  • แƒ“แƒแƒœแƒแƒ›แƒแƒขแƒก แƒแƒฅแƒ•แƒก แƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ”แƒ แƒ˜ PUBLISH_UNPUBLISH_VOLUME แƒฃแƒœแƒแƒ แƒ˜ แƒ“แƒ ControllerUnpublishVolume แƒฌแƒแƒ แƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ— แƒ˜แƒฅแƒœแƒ แƒ’แƒแƒ›แƒแƒซแƒแƒฎแƒ”แƒ‘แƒฃแƒšแƒ˜.

แฒแฒœ แฒ™แฒ˜แฒ“แฒ”แฒ•

  • แƒ“แƒแƒœแƒแƒ›แƒแƒขแƒก แƒแƒ  แƒแƒฅแƒ•แƒก แƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ”แƒ แƒ˜ PUBLISH_UNPUBLISH_VOLUME แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒšแƒแƒ‘แƒ, แƒ“แƒแƒœแƒแƒ›แƒแƒขแƒก แƒแƒฅแƒ•แƒก แƒ™แƒ•แƒแƒœแƒซแƒ˜ STAGE_UNSTAGE_VOLUME แƒฃแƒœแƒแƒ แƒ˜ แƒ“แƒ NodeUnstageVolume แƒฌแƒแƒ แƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ— แƒ“แƒแƒกแƒ แƒฃแƒšแƒ“แƒ

แฒแฒœ แฒ™แฒ˜แฒ“แฒ”แฒ•

  • แƒ“แƒแƒœแƒแƒ›แƒแƒขแƒก แƒแƒ  แƒแƒฅแƒ•แƒก แƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ”แƒ แƒ˜ PUBLISH_UNPUBLISH_VOLUME แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒšแƒแƒ‘แƒ, แƒแƒ แƒช แƒ™แƒ•แƒแƒœแƒซแƒ˜ STAGE_UNSTAGE_VOLUME แƒฃแƒœแƒแƒ แƒ˜ แƒ“แƒ NodeUnpublishVolume แƒฌแƒแƒ แƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ— แƒ“แƒแƒกแƒ แƒฃแƒšแƒ“แƒ.

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

แƒ—แƒฃแƒ›แƒชแƒ, แƒกแƒแƒ›แƒฌแƒฃแƒฎแƒแƒ แƒแƒ“ แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒ แƒ’แƒ•แƒ”แƒ แƒ“แƒ˜แƒ—แƒ˜ แƒ™แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ”แƒจแƒ•แƒ”แƒแƒ‘แƒ˜แƒ— CSI แƒกแƒžแƒ”แƒชแƒ˜แƒคแƒ˜แƒ™แƒแƒชแƒ˜แƒ แƒแƒ  แƒแƒ™แƒ›แƒแƒงแƒแƒคแƒ˜แƒšแƒ”แƒ‘แƒก แƒแƒ› แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒก:

  • แƒ’แƒ•แƒ”แƒ แƒ“แƒ˜แƒ—แƒ แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒจแƒ˜ csi-attacher, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒžแƒแƒกแƒฃแƒฎแƒ˜แƒกแƒ›แƒ’แƒ”แƒ‘แƒ”แƒšแƒ˜ แƒฃแƒœแƒ“แƒ แƒ˜แƒงแƒแƒก แƒ›แƒแƒœแƒขแƒแƒŸแƒ”แƒ‘แƒก แƒจแƒแƒ แƒ˜แƒก แƒกแƒแƒญแƒ˜แƒ แƒ แƒฃแƒคแƒกแƒ™แƒ แƒฃแƒšแƒ˜แƒก แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒแƒ–แƒ”, แƒ”แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒแƒ  แƒแƒ แƒ˜แƒก แƒ“แƒแƒœแƒ”แƒ แƒ’แƒ˜แƒšแƒ˜ แƒฎแƒแƒ–แƒ’แƒแƒ แƒ”แƒจแƒ” แƒ–แƒแƒ›แƒ˜แƒก แƒจแƒ”แƒชแƒ•แƒšแƒแƒจแƒ˜. แƒแƒ›แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘ แƒ“แƒ˜แƒกแƒ™แƒฃแƒกแƒ˜แƒ แƒ“แƒแƒ˜แƒฌแƒงแƒ แƒแƒฅ.
  • แƒ™แƒแƒœแƒ™แƒ แƒ”แƒขแƒฃแƒšแƒแƒ“ แƒ แƒ แƒแƒ แƒ˜แƒก แƒ’แƒ•แƒ”แƒ แƒ“แƒ˜แƒ—แƒ˜ แƒ™แƒแƒ แƒ˜แƒก แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ˜ แƒแƒ› แƒ™แƒแƒœแƒขแƒ”แƒฅแƒกแƒขแƒจแƒ˜? แƒ—แƒแƒ•แƒแƒ“ CSI แƒ›แƒแƒ“แƒฃแƒšแƒ˜ แƒแƒ  แƒฃแƒ แƒ—แƒ˜แƒ”แƒ แƒ—แƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒก Kubernetes API-แƒกแƒ—แƒแƒœ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ›แƒฎแƒแƒšแƒแƒ“ แƒžแƒแƒกแƒฃแƒฎแƒแƒ‘แƒก gRPC แƒ–แƒแƒ แƒ”แƒ‘แƒก, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒ›แƒแƒก แƒ’แƒ•แƒ”แƒ แƒ“แƒ˜แƒ—แƒ˜ แƒ™แƒแƒ แƒ˜แƒก แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ”แƒ‘แƒ˜แƒ— แƒ˜แƒ’แƒ–แƒแƒ•แƒœแƒ”แƒ‘แƒ. แƒฃแƒแƒฎแƒšแƒ”แƒกแƒ˜ แƒ•แƒ˜แƒ—แƒแƒ แƒ“แƒ”แƒ‘แƒ แƒ™แƒฃแƒ‘แƒ”แƒ แƒœแƒ”แƒขแƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒ–แƒแƒ’แƒแƒ“แƒแƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒ”แƒ .

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

  1. แƒฉแƒ•แƒ”แƒœ แƒ•แƒ˜แƒฆแƒ”แƒ‘แƒ— gRPC แƒ–แƒแƒ แƒก ControllerExpandVolume;
  2. แƒฉแƒ•แƒ”แƒœ แƒ•แƒชแƒ“แƒ˜แƒšแƒแƒ‘แƒ— แƒ’แƒแƒ•แƒ–แƒแƒ แƒ“แƒแƒ— แƒ“แƒ˜แƒกแƒ™แƒ˜ API-แƒจแƒ˜, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ•แƒ˜แƒฆแƒ”แƒ‘แƒ— แƒจแƒ”แƒชแƒ“แƒแƒ›แƒแƒก แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒ˜แƒก แƒจแƒ”แƒฃแƒซแƒšแƒ”แƒ‘แƒšแƒแƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘, แƒ แƒแƒ“แƒ’แƒแƒœ แƒ“แƒ˜แƒกแƒ™แƒ˜ แƒ“แƒแƒ›แƒแƒœแƒขแƒแƒŸแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ;
  3. แƒฉแƒ•แƒ”แƒœ แƒ•แƒ˜แƒœแƒแƒฎแƒแƒ•แƒ— แƒ“แƒ˜แƒกแƒ™แƒ˜แƒก แƒ˜แƒ“แƒ”แƒœแƒขแƒ˜แƒคแƒ˜แƒ™แƒแƒขแƒแƒ แƒก แƒ แƒฃแƒ™แƒแƒ–แƒ”, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒ“แƒ˜แƒกแƒ™แƒ”แƒ‘แƒก, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒกแƒแƒช แƒกแƒแƒญแƒ˜แƒ แƒแƒ แƒ’แƒแƒ–แƒ แƒ“แƒ˜แƒก แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒ˜แƒก แƒจแƒ”แƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ. แƒฅแƒ•แƒ”แƒ›แƒแƒ—, แƒ›แƒแƒ™แƒšแƒ”แƒ“, แƒแƒ› แƒ แƒฃแƒ™แƒแƒก แƒ“แƒแƒ•แƒแƒ แƒฅแƒ›แƒ”แƒ•แƒ— แƒ แƒแƒ’แƒแƒ แƒช volumeResizeRequired;
  4. แƒฎแƒ”แƒšแƒ˜แƒ— แƒแƒ›แƒแƒ˜แƒฆแƒ”แƒ— แƒ“แƒ˜แƒกแƒ™แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒก แƒ“แƒ˜แƒกแƒ™แƒก. Kubernetes แƒ’แƒแƒœแƒแƒแƒฎแƒšแƒ”แƒ‘แƒก แƒ›แƒแƒก. แƒ˜แƒกแƒ”, แƒ แƒแƒ› แƒ“แƒ˜แƒกแƒ™แƒก แƒแƒ  แƒฐแƒฅแƒแƒœแƒ“แƒ”แƒก แƒ“แƒ แƒ แƒ“แƒแƒ›แƒแƒœแƒขแƒแƒŸแƒ”แƒ‘แƒ (ControllerPublishVolume) แƒ’แƒแƒ–แƒ แƒ“แƒ˜แƒก แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒ˜แƒก แƒ“แƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒแƒ›แƒ“แƒ” แƒ“แƒแƒ›แƒแƒœแƒขแƒแƒŸแƒ”แƒ‘แƒ˜แƒก แƒ›แƒชแƒ“แƒ”แƒšแƒแƒ‘แƒ˜แƒกแƒแƒก แƒ•แƒแƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ—, แƒ แƒแƒ› แƒ›แƒแƒชแƒ”แƒ›แƒฃแƒšแƒ˜ แƒ“แƒ˜แƒกแƒ™แƒ˜ แƒฏแƒ”แƒ  แƒ™แƒ˜แƒ“แƒ”แƒ• แƒจแƒ”แƒงแƒ•แƒแƒœแƒ˜แƒšแƒ˜แƒ volumeResizeRequired แƒ“แƒ แƒ“แƒแƒแƒ‘แƒ แƒฃแƒœแƒ”แƒ— แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ;
  5. CSI แƒ“แƒ แƒแƒ˜แƒ•แƒ”แƒ แƒ˜ แƒชแƒ“แƒ˜แƒšแƒแƒ‘แƒก แƒฎแƒ”แƒšแƒแƒฎแƒšแƒ แƒ’แƒแƒœแƒแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒแƒก แƒ–แƒแƒ›แƒ˜แƒก แƒจแƒ”แƒชแƒ•แƒšแƒ˜แƒก แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒ. แƒ—แƒฃ แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒ แƒฌแƒแƒ แƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ— แƒ“แƒแƒกแƒ แƒฃแƒšแƒ“แƒ, แƒแƒ›แƒแƒ˜แƒฆแƒ”แƒ— แƒ“แƒ˜แƒกแƒ™แƒ˜ volumeResizeRequired;
  6. แƒ˜แƒ›แƒ˜แƒขแƒแƒ› แƒ แƒแƒ› แƒ“แƒ˜แƒกแƒ™แƒ˜แƒก ID แƒแƒ™แƒšแƒ˜แƒ volumeResizeRequired, ControllerPublishVolume แƒฌแƒแƒ แƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ— แƒ’แƒแƒ“แƒ˜แƒก, แƒ“แƒ˜แƒกแƒ™แƒ˜ แƒ“แƒแƒ›แƒแƒœแƒขแƒแƒŸแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ, pod แƒ˜แƒฌแƒงแƒ”แƒ‘แƒ.

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

func DefaultControllerRateLimiter() RateLimiter {
  return NewMaxOfRateLimiter(
  NewItemExponentialFailureRateLimiter(5*time.Millisecond, 1000*time.Second),
  // 10 qps, 100 bucket size.  This is only for retry speed and its only the overall factor (not per item)
  &BucketRateLimiter{Limiter: rate.NewLimiter(rate.Limit(10), 100)},
  )
}

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

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

workqueue.NewItemExponentialFailureRateLimiter(5*time.Millisecond, 5*time.Second)

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

แƒ แƒแƒ’แƒแƒ  แƒ“แƒแƒ•แƒ˜แƒฌแƒงแƒแƒ— แƒ›แƒ˜แƒกแƒ˜ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ?

แƒ“แƒ แƒแƒ˜แƒ•แƒ”แƒ แƒ˜ แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ˜แƒšแƒ˜แƒ Kubernetes 1.15 แƒ“แƒ แƒฃแƒคแƒ แƒ แƒ›แƒแƒฆแƒแƒš แƒ•แƒ”แƒ แƒกแƒ˜แƒแƒ–แƒ”. แƒ˜แƒ›แƒ˜แƒกแƒแƒ—แƒ•แƒ˜แƒก, แƒ แƒแƒ› แƒ›แƒซแƒฆแƒแƒšแƒ›แƒ แƒ˜แƒ›แƒฃแƒจแƒแƒแƒก, แƒฃแƒœแƒ“แƒ แƒแƒ™แƒ›แƒแƒงแƒแƒคแƒ˜แƒšแƒ”แƒ‘แƒ“แƒ”แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒ˜:

  • แƒ“แƒ แƒแƒจแƒ --allow-privileged แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ‘แƒแƒ–แƒ” แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ true API แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒกแƒ แƒ“แƒ แƒ™แƒฃแƒ‘แƒ”แƒšแƒ”แƒขแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก;
  • แƒจแƒ”แƒ“แƒ˜แƒก --feature-gates=VolumeSnapshotDataSource=true,KubeletPluginsWatcher=true,CSINodeInfo=true,CSIDriverRegistry=true API แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒกแƒ แƒ“แƒ แƒ™แƒฃแƒ‘แƒ”แƒšแƒ”แƒขแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก;
  • แƒ›แƒ—แƒ˜แƒก แƒ’แƒแƒ›แƒ แƒแƒ•แƒšแƒ”แƒ‘แƒ (แƒ›แƒ—แƒ˜แƒก แƒ’แƒแƒ›แƒ แƒแƒ•แƒšแƒ”แƒ‘แƒ) แƒฃแƒœแƒ“แƒ แƒ˜แƒงแƒแƒก แƒฉแƒแƒ แƒ—แƒฃแƒšแƒ˜ แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒ–แƒ”. Docker-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒกแƒแƒก, แƒ“แƒ”แƒ›แƒแƒœแƒ˜ แƒฃแƒœแƒ“แƒ แƒ˜แƒงแƒแƒก แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ˜แƒกแƒ”, แƒ แƒแƒ› แƒ“แƒแƒฃแƒจแƒ•แƒแƒก แƒกแƒแƒ”แƒ แƒ—แƒ แƒกแƒแƒ›แƒแƒœแƒขแƒแƒŸแƒ.

แƒงแƒ•แƒ”แƒšแƒ แƒกแƒแƒญแƒ˜แƒ แƒ แƒœแƒแƒ‘แƒ˜แƒฏแƒ˜ แƒ—แƒแƒ•แƒแƒ“ แƒ˜แƒœแƒกแƒขแƒแƒšแƒแƒชแƒ˜แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒแƒฆแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜แƒ README-แƒจแƒ˜. แƒ˜แƒœแƒกแƒขแƒแƒšแƒแƒชแƒ˜แƒ แƒ›แƒแƒ˜แƒชแƒแƒ•แƒก Kubernetes-แƒจแƒ˜ แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒแƒก แƒ›แƒแƒœแƒ˜แƒคแƒ”แƒกแƒขแƒ”แƒ‘แƒ˜แƒกแƒ’แƒแƒœ.

แƒ›แƒซแƒฆแƒแƒšแƒ˜แƒก แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ“แƒแƒ’แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ— แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜:

  • แƒ›แƒ˜แƒฃแƒ—แƒ˜แƒ—แƒ”แƒ— แƒ“แƒ˜แƒ แƒ”แƒฅแƒขแƒแƒ แƒ˜แƒแƒจแƒ˜ แƒ˜แƒ“แƒ”แƒœแƒขแƒ˜แƒคแƒ˜แƒ™แƒแƒขแƒแƒ แƒ˜ manifest-แƒจแƒ˜ (folder-id) Yandex.Cloud (แƒ˜แƒฎแƒ˜แƒšแƒ”แƒ— แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒ);
  • Yandex.Cloud API-แƒกแƒ—แƒแƒœ แƒฃแƒ แƒ—แƒ˜แƒ”แƒ แƒ—แƒแƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, CSI แƒ“แƒ แƒแƒ˜แƒ•แƒ”แƒ แƒ˜ แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒก แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜แƒก แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒก. แƒ›แƒแƒœแƒ˜แƒคแƒ”แƒกแƒขแƒจแƒ˜ แƒกแƒแƒ˜แƒ“แƒฃแƒ›แƒšแƒ แƒฃแƒœแƒ“แƒ แƒ’แƒแƒ“แƒแƒ˜แƒชแƒ”แƒก แƒแƒ•แƒขแƒแƒ แƒ˜แƒ–แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ’แƒแƒกแƒแƒฆแƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜แƒก แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ˜แƒ“แƒแƒœ. แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒแƒจแƒ˜ แƒแƒฆแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜, แƒ แƒแƒ’แƒแƒ  แƒจแƒ”แƒ•แƒฅแƒ›แƒœแƒแƒ— แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜แƒก แƒแƒœแƒ’แƒแƒ แƒ˜แƒจแƒ˜ แƒ“แƒ แƒ›แƒ˜แƒ˜แƒฆแƒแƒ— แƒ’แƒแƒกแƒแƒฆแƒ”แƒ‘แƒ”แƒ‘แƒ˜.

แฒกแƒแƒ”แƒ แƒ—แƒ แƒฏแƒแƒ›แƒจแƒ˜ - แƒกแƒชแƒแƒ“แƒ”แƒ—, แƒ“แƒ แƒ›แƒแƒฎแƒแƒ แƒฃแƒšแƒ˜ แƒ•แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ˜แƒ— แƒ›แƒ˜แƒ•แƒ˜แƒฆแƒแƒ— แƒ’แƒแƒ›แƒแƒฎแƒ›แƒแƒฃแƒ แƒ”แƒ‘แƒ แƒ“แƒ แƒแƒฎแƒแƒšแƒ˜ แƒกแƒแƒ™แƒ˜แƒ—แƒฎแƒ”แƒ‘แƒ˜แƒ—แƒฃ แƒ แƒแƒ˜แƒ›แƒ” แƒžแƒ แƒแƒ‘แƒšแƒ”แƒ›แƒ แƒจแƒ”แƒ’แƒ”แƒฅแƒ›แƒœแƒแƒ—!

แƒจแƒ”แƒ›แƒ“แƒ’แƒแƒ›แƒ˜ แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ

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

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

PS

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

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

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