แƒฌแƒแƒ แƒ›แƒแƒ’แƒ˜แƒ“แƒ’แƒ”แƒœแƒ— Kubernetes CCM (Cloud Controller Manager) Yandex.Cloud-แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก

แƒฌแƒแƒ แƒ›แƒแƒ’แƒ˜แƒ“แƒ’แƒ”แƒœแƒ— Kubernetes CCM (Cloud Controller Manager) Yandex.Cloud-แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก

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

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

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

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

แƒ™แƒแƒœแƒ™แƒ แƒ”แƒขแƒฃแƒšแƒแƒ“ แƒ แƒ แƒแƒ แƒ˜แƒก CCM?

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

แƒ™แƒ”แƒ แƒซแƒแƒ“, Cloud Controller Manager แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒงแƒแƒคแƒก แƒ˜แƒœแƒขแƒ”แƒ แƒแƒฅแƒชแƒ˜แƒ˜แƒก แƒฎแƒฃแƒ— แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“ แƒขแƒ˜แƒžแƒก:

  1. แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒ”แƒ‘แƒ˜ - แƒแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒก 1:1 แƒฃแƒ แƒ—แƒ˜แƒ”แƒ แƒ—แƒแƒ‘แƒแƒก แƒ™แƒ•แƒแƒœแƒซแƒ˜แƒก แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒก แƒจแƒแƒ แƒ˜แƒก Kubernetes-แƒจแƒ˜ (Node) แƒ“แƒ แƒ•แƒ˜แƒ แƒขแƒฃแƒแƒšแƒฃแƒ แƒ˜ แƒ›แƒแƒœแƒฅแƒแƒœแƒ แƒฆแƒ แƒฃแƒ‘แƒšแƒแƒ•แƒแƒœ แƒžแƒ แƒแƒ•แƒแƒ˜แƒ“แƒ”แƒ แƒจแƒ˜. แƒแƒ›แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒฉแƒ•แƒ”แƒœ:
    • แƒจแƒ”แƒแƒ•แƒกแƒ”แƒ— แƒ•แƒ”แƒšแƒ˜ spec.providerID แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒจแƒ˜ Node. แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, OpenStack CCM-แƒกแƒ—แƒ•แƒ˜แƒก แƒแƒ› แƒ•แƒ”แƒšแƒก แƒแƒฅแƒ•แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜ แƒคแƒแƒ แƒ›แƒแƒขแƒ˜: openstack:///d58a78bf-21b0-4682-9dc6-2132406d2bb0. แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ˜แƒฎแƒ˜แƒšแƒแƒ— แƒฆแƒ แƒฃแƒ‘แƒšแƒแƒ•แƒแƒœแƒ˜ แƒžแƒ แƒแƒ•แƒแƒ˜แƒ“แƒ”แƒ แƒ˜แƒก แƒกแƒแƒฎแƒ”แƒšแƒ˜ แƒ“แƒ แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒ˜แƒก แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒก (แƒ•แƒ˜แƒ แƒขแƒฃแƒแƒšแƒฃแƒ แƒ˜ แƒ›แƒแƒœแƒฅแƒแƒœแƒ OpenStack-แƒจแƒ˜) แƒฃแƒœแƒ˜แƒ™แƒแƒšแƒฃแƒ แƒ˜ UUID;
    • แƒจแƒ”แƒแƒ•แƒกแƒ”แƒ‘แƒก nodeInfo แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒจแƒ˜ Node แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒ แƒ•แƒ˜แƒ แƒขแƒฃแƒแƒšแƒฃแƒ แƒ˜ แƒ›แƒแƒœแƒฅแƒแƒœแƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘. แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒฉแƒ•แƒ”แƒœ AWS-แƒจแƒ˜ แƒ•แƒแƒ“แƒ’แƒ”แƒœแƒ— แƒ˜แƒœแƒกแƒขแƒแƒœแƒชแƒ˜แƒ˜แƒก แƒขแƒ˜แƒžแƒก;
    • แƒฉแƒ•แƒ”แƒœ แƒ•แƒแƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ— แƒ•แƒ˜แƒ แƒขแƒฃแƒแƒšแƒฃแƒ แƒ˜ แƒ›แƒแƒœแƒฅแƒแƒœแƒ˜แƒก แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒแƒก แƒฆแƒ แƒฃแƒ‘แƒ”แƒšแƒจแƒ˜. แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒ—แƒฃ แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒ˜ Node แƒจแƒ”แƒ•แƒ˜แƒ“แƒ แƒกแƒแƒฎแƒ”แƒšแƒ›แƒฌแƒ˜แƒคแƒแƒจแƒ˜ NotReady, แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒจแƒ”แƒแƒ›แƒแƒฌแƒ›แƒแƒ—, แƒแƒ แƒ˜แƒก แƒ—แƒฃ แƒแƒ แƒ แƒ•แƒ˜แƒ แƒขแƒฃแƒแƒšแƒฃแƒ แƒ˜ แƒ›แƒแƒœแƒฅแƒแƒœแƒ แƒกแƒแƒ”แƒ แƒ—แƒแƒ“ แƒฆแƒ แƒฃแƒ‘แƒšแƒแƒ•แƒแƒœ แƒžแƒ แƒแƒ•แƒแƒ˜แƒ“แƒ”แƒ แƒจแƒ˜ providerID. แƒ—แƒฃ แƒ˜แƒก แƒ˜แƒฅ แƒแƒ  แƒแƒ แƒ˜แƒก, แƒฌแƒแƒจแƒแƒšแƒ”แƒ— แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒ˜ Node, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒกแƒฎแƒ•แƒแƒ’แƒ•แƒแƒ แƒแƒ“ แƒกแƒแƒ›แƒฃแƒ“แƒแƒ›แƒแƒ“ แƒ“แƒแƒ แƒฉแƒ”แƒ‘แƒแƒ“แƒ แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒจแƒ˜;
  2. แƒ–แƒแƒœแƒ”แƒ‘แƒ˜ โ€“ แƒแƒ“แƒ’แƒ”แƒœแƒก แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒ˜แƒก แƒฌแƒแƒ แƒฃแƒ›แƒแƒขแƒ”แƒ‘แƒšแƒแƒ‘แƒ˜แƒก แƒ“แƒแƒ›แƒ”แƒœแƒก Node, แƒ แƒแƒ—แƒ แƒ’แƒแƒœแƒ แƒ˜แƒ’แƒ›แƒ แƒจแƒ”แƒซแƒšแƒแƒก Pod-แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ™แƒ•แƒแƒœแƒซแƒ˜แƒก แƒแƒ แƒฉแƒ”แƒ•แƒ แƒฆแƒ แƒฃแƒ‘แƒšแƒแƒ•แƒแƒœ แƒžแƒ แƒแƒ•แƒแƒ˜แƒ“แƒ”แƒ แƒจแƒ˜ แƒ แƒ”แƒ’แƒ˜แƒแƒœแƒ”แƒ‘แƒ˜แƒกแƒ แƒ“แƒ แƒ–แƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒฎแƒ”แƒ“แƒ•แƒ˜แƒ—;
  3. LoadBalancer โ€“ แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒกแƒแƒก Service แƒขแƒ˜แƒžแƒ˜แƒ— LoadBalancer แƒฅแƒ›แƒœแƒ˜แƒก แƒ”แƒ แƒ—แƒ’แƒ•แƒแƒ  แƒ‘แƒแƒšแƒแƒœแƒกแƒ”แƒ แƒก, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ›แƒ˜แƒ›แƒแƒ แƒ—แƒแƒ•แƒก แƒขแƒ แƒแƒคแƒ˜แƒ™แƒก แƒ’แƒแƒ แƒ”แƒ“แƒแƒœ แƒ™แƒแƒกแƒ”แƒขแƒฃแƒ แƒ˜ แƒ™แƒ•แƒแƒœแƒซแƒ”แƒ‘แƒ˜แƒกแƒ™แƒ”แƒœ. แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, Yandex.Cloud-แƒจแƒ˜ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒแƒ— NetworkLoadBalancer ะธ TargetGroup แƒแƒ› แƒ›แƒ˜แƒ–แƒœแƒ”แƒ‘แƒ˜แƒกแƒแƒ—แƒ•แƒ˜แƒก;
  4. แƒ›แƒแƒ แƒจแƒ แƒฃแƒขแƒ˜ โ€“ แƒแƒจแƒ”แƒœแƒ”แƒ‘แƒก แƒฅแƒกแƒ”แƒšแƒก แƒ™แƒ•แƒแƒœแƒซแƒ”แƒ‘แƒก แƒจแƒแƒ แƒ˜แƒก, แƒ แƒแƒ“แƒ’แƒแƒœ Kubernetes-แƒ˜แƒก แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒฎแƒ”แƒ“แƒ•แƒ˜แƒ—, แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒš แƒžแƒแƒ“แƒก แƒฃแƒœแƒ“แƒ แƒฐแƒฅแƒแƒœแƒ“แƒ”แƒก แƒกแƒแƒ™แƒฃแƒ—แƒแƒ แƒ˜ IP แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ˜ แƒ“แƒ แƒจแƒ”แƒ”แƒซแƒšแƒแƒก แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ  แƒกแƒฎแƒ•แƒ แƒžแƒแƒ“แƒ–แƒ” แƒฌแƒ•แƒ“แƒแƒ›แƒ. แƒแƒ› แƒ›แƒ˜แƒ–แƒœแƒ”แƒ‘แƒ˜แƒกแƒแƒ—แƒ•แƒ˜แƒก แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒแƒ— แƒ’แƒแƒ“แƒแƒคแƒแƒ แƒ•แƒ˜แƒก แƒฅแƒกแƒ”แƒšแƒ˜ (VXLAN, GENEVE) แƒแƒœ แƒ“แƒแƒแƒงแƒ”แƒœแƒแƒ— แƒ›แƒแƒ แƒจแƒ แƒฃแƒขแƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒก แƒชแƒฎแƒ แƒ˜แƒšแƒ˜ แƒžแƒ˜แƒ แƒ“แƒแƒžแƒ˜แƒ  แƒฆแƒ แƒฃแƒ‘แƒšแƒแƒ•แƒแƒœแƒ˜ แƒžแƒ แƒแƒ•แƒแƒ˜แƒ“แƒ”แƒ แƒ˜แƒก แƒ•แƒ˜แƒ แƒขแƒฃแƒแƒšแƒฃแƒ  แƒฅแƒกแƒ”แƒšแƒจแƒ˜:

    แƒฌแƒแƒ แƒ›แƒแƒ’แƒ˜แƒ“แƒ’แƒ”แƒœแƒ— Kubernetes CCM (Cloud Controller Manager) Yandex.Cloud-แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก

  5. แƒ›แƒแƒชแƒฃแƒšแƒแƒ‘แƒ - แƒ˜แƒซแƒšแƒ”แƒ•แƒ PV-แƒก แƒ“แƒ˜แƒœแƒแƒ›แƒ˜แƒฃแƒ แƒ˜ แƒจแƒ”แƒ™แƒ•แƒ”แƒ—แƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก PVC แƒ“แƒ SC แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—. แƒ—แƒแƒ•แƒ“แƒแƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒแƒ“, แƒ”แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ CCM-แƒ˜แƒก แƒœแƒแƒฌแƒ˜แƒšแƒ˜ แƒ˜แƒงแƒ, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ“แƒ˜แƒ“แƒ˜ แƒกแƒ˜แƒ แƒ—แƒฃแƒšแƒ˜แƒก แƒ’แƒแƒ›แƒ แƒ˜แƒ’แƒ˜ แƒ’แƒแƒ“แƒแƒ•แƒ˜แƒ“แƒ แƒชแƒแƒšแƒ™แƒ” แƒžแƒ แƒแƒ”แƒฅแƒขแƒจแƒ˜, แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ˜แƒก แƒจแƒ”แƒœแƒแƒฎแƒ•แƒ˜แƒก แƒ˜แƒœแƒขแƒ”แƒ แƒคแƒ”แƒ˜แƒกแƒจแƒ˜ (CSI). แƒฉแƒ•แƒ”แƒœ แƒแƒ แƒแƒ”แƒ แƒ—แƒฎแƒ”แƒš แƒ•แƒ˜แƒกแƒแƒฃแƒ‘แƒ แƒ”แƒ— CSI-แƒ–แƒ” ะฟะธัะฐะปะธ แƒ“แƒ, แƒ แƒแƒ’แƒแƒ แƒช แƒฃแƒ™แƒ•แƒ” แƒแƒฆแƒ•แƒœแƒ˜แƒจแƒœแƒ”แƒ—, แƒ—แƒฃแƒœแƒ“แƒแƒช แƒ’แƒแƒแƒ—แƒแƒ•แƒ˜แƒกแƒฃแƒคแƒšแƒ”แƒก CSI แƒ›แƒซแƒฆแƒแƒšแƒ˜.

แƒแƒ“แƒ แƒ”, แƒฆแƒ แƒฃแƒ‘แƒ”แƒšแƒ—แƒแƒœ แƒฃแƒ แƒ—แƒ˜แƒ”แƒ แƒ—แƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒ˜แƒก แƒงแƒ•แƒ”แƒšแƒ แƒ™แƒแƒ“แƒ˜ แƒ’แƒแƒœแƒ—แƒแƒ•แƒกแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ˜แƒงแƒ Kubernetes แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜แƒก แƒ›แƒ—แƒแƒ•แƒแƒ  Git แƒกแƒแƒชแƒแƒ•แƒจแƒ˜. k8s.io/kubernetes/pkg/cloudprovider/providers, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ›แƒแƒ— แƒ’แƒแƒ“แƒแƒฌแƒงแƒ•แƒ˜แƒขแƒ”แƒก แƒ“แƒแƒ”แƒขแƒแƒ•แƒ”แƒ‘แƒ˜แƒœแƒแƒ— แƒ”แƒก แƒ“แƒ˜แƒ“แƒ˜ แƒ™แƒแƒ“แƒ˜แƒก แƒ‘แƒแƒ–แƒแƒกแƒ—แƒแƒœ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒก แƒฃแƒฎแƒ”แƒ แƒฎแƒฃแƒšแƒแƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒ. แƒงแƒ•แƒ”แƒšแƒ แƒซแƒ•แƒ”แƒšแƒ˜ แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒ แƒ’แƒแƒ“แƒแƒขแƒแƒœแƒ˜แƒšแƒ˜แƒ แƒชแƒแƒšแƒ™แƒ” แƒกแƒแƒชแƒแƒ•แƒ˜. แƒจแƒ”แƒ›แƒ“แƒ’แƒแƒ›แƒ˜ แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ˜แƒกแƒ แƒ“แƒ แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒ›แƒแƒฎแƒ”แƒ แƒฎแƒ”แƒ‘แƒฃแƒšแƒแƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒงแƒ•แƒ”แƒšแƒ แƒกแƒแƒ”แƒ แƒ—แƒ แƒ™แƒแƒ›แƒžแƒแƒœแƒ”แƒœแƒขแƒ˜ แƒแƒกแƒ”แƒ•แƒ” แƒ’แƒแƒ“แƒแƒ•แƒ˜แƒ“แƒ แƒชแƒแƒšแƒ™แƒ” แƒกแƒแƒชแƒแƒ•แƒ˜.

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

CCM-แƒ˜แƒก แƒกแƒแƒ™แƒฃแƒ—แƒแƒ แƒ˜ แƒ˜แƒ›แƒžแƒšแƒ”แƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒ˜แƒก แƒ“แƒแƒกแƒแƒฌแƒ”แƒ แƒแƒ“ แƒกแƒแƒ™แƒ›แƒแƒ แƒ˜แƒกแƒ˜แƒ แƒ’แƒแƒœแƒแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒแƒ— แƒกแƒแƒญแƒ˜แƒ แƒ Go แƒ˜แƒœแƒขแƒ”แƒ แƒคแƒ”แƒ˜แƒกแƒ”แƒ‘แƒ˜.

ะ˜ แƒ”แƒก แƒแƒ แƒ˜แƒก แƒ˜แƒก, แƒ แƒแƒช แƒ›แƒ˜แƒ•แƒ˜แƒฆแƒ”แƒ—.

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

แƒ แƒแƒ’แƒแƒ  แƒ›แƒ˜แƒฎแƒ•แƒ”แƒ“แƒ˜ แƒแƒฅแƒแƒ›แƒ“แƒ”

แƒฉแƒ•แƒ”แƒœ แƒ“แƒแƒ•แƒ˜แƒฌแƒงแƒ”แƒ— แƒ’แƒแƒœแƒ•แƒ˜แƒ—แƒแƒ แƒ”แƒ‘แƒ (แƒฃแƒคแƒ แƒ แƒกแƒฌแƒแƒ แƒแƒ“, แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒแƒช แƒ™แƒ˜). แƒ›แƒ–แƒแƒ“(!) CCM Yandex.Cloud-แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ”แƒ แƒ—แƒ˜ แƒฌแƒšแƒ˜แƒก แƒฌแƒ˜แƒœ.

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

  • แƒแƒ•แƒ—แƒ”แƒœแƒขแƒ˜แƒคแƒ˜แƒ™แƒแƒชแƒ˜แƒ JWT IAM แƒขแƒแƒ™แƒ”แƒœแƒ˜แƒ—;
  • แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜แƒก แƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ”แƒ แƒ˜แƒก แƒ›แƒฎแƒแƒ แƒ“แƒแƒญแƒ”แƒ แƒ.

แƒแƒ•แƒขแƒแƒ แƒ—แƒแƒœ แƒจแƒ”แƒ—แƒแƒœแƒฎแƒ›แƒ”แƒ‘แƒ˜แƒ— (แƒ“แƒšแƒ˜แƒกแƒ˜แƒœแƒ˜) Telegram-แƒจแƒ˜ แƒ’แƒแƒ•แƒฎแƒกแƒ”แƒœแƒ˜แƒ— yandex-cloud-controller-manager แƒ“แƒ แƒ“แƒแƒ•แƒแƒ›แƒแƒขแƒ”แƒ— แƒ“แƒแƒ™แƒแƒ แƒ’แƒฃแƒšแƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜.

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

แƒแƒ›แƒŸแƒแƒ›แƒแƒ“, CCM แƒ›แƒฎแƒแƒ แƒก แƒฃแƒญแƒ”แƒ แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ˜แƒœแƒขแƒ”แƒ แƒคแƒ”แƒ˜แƒกแƒ”แƒ‘แƒก:

  • แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒ”แƒ‘แƒ˜;
  • แƒ–แƒแƒœแƒ”แƒ‘แƒ˜;
  • LoadBalancer.

แƒ›แƒแƒ›แƒแƒ•แƒแƒšแƒจแƒ˜, แƒ แƒแƒ“แƒ”แƒกแƒแƒช Yandex.Cloud แƒ“แƒแƒ˜แƒฌแƒงแƒ”แƒ‘แƒก แƒ›แƒฃแƒจแƒแƒแƒ‘แƒแƒก แƒ’แƒแƒคแƒแƒ แƒ—แƒแƒ”แƒ‘แƒฃแƒšแƒ˜ VPC แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒšแƒแƒ‘แƒ”แƒ‘แƒ˜แƒ—, แƒฉแƒ•แƒ”แƒœ แƒ“แƒแƒ•แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ— แƒ˜แƒœแƒขแƒ”แƒ แƒคแƒ”แƒ˜แƒกแƒก แƒ›แƒแƒ แƒจแƒ แƒฃแƒขแƒ”แƒ‘แƒ˜.

LoadBalanacer, แƒ แƒแƒ’แƒแƒ แƒช แƒ›แƒ—แƒแƒ•แƒแƒ แƒ˜ แƒ’แƒแƒ›แƒแƒฌแƒ•แƒ”แƒ•แƒ

แƒ—แƒแƒ•แƒ“แƒแƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒแƒ“, แƒฉแƒ•แƒ”แƒœ แƒ•แƒชแƒ“แƒ˜แƒšแƒแƒ‘แƒ“แƒ˜แƒ—, แƒ˜แƒกแƒ”แƒ•แƒ” แƒ แƒแƒ’แƒแƒ แƒช แƒกแƒฎแƒ•แƒ CCM แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜, แƒจแƒ”แƒ’แƒ•แƒ”แƒฅแƒ›แƒœแƒ แƒฌแƒงแƒ•แƒ˜แƒšแƒ˜ LoadBalancer ะธ TargetGroup แƒงแƒ•แƒ”แƒšแƒแƒกแƒ—แƒ•แƒ˜แƒก Service แƒขแƒ˜แƒžแƒ˜แƒ— LoadBalancer. แƒ—แƒฃแƒ›แƒชแƒ, Yandex.Cloud-แƒ›แƒ แƒแƒฆแƒ›แƒแƒแƒฉแƒ˜แƒœแƒ แƒ”แƒ แƒ—แƒ˜ แƒกแƒแƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒ แƒจแƒ”แƒ–แƒฆแƒฃแƒ“แƒ•แƒ: แƒ—แƒฅแƒ•แƒ”แƒœ แƒแƒ  แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒแƒ— TargetGroups แƒ’แƒแƒ“แƒแƒ™แƒ•แƒ”แƒ—แƒ˜แƒ— Targets (แƒฌแƒงแƒ•แƒ˜แƒšแƒ˜ SubnetID - IpAddress).

แƒฌแƒแƒ แƒ›แƒแƒ’แƒ˜แƒ“แƒ’แƒ”แƒœแƒ— Kubernetes CCM (Cloud Controller Manager) Yandex.Cloud-แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก

แƒแƒ›แƒ แƒ˜แƒ’แƒแƒ“, แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒšแƒ˜ CCM-แƒ˜แƒก แƒจแƒ˜แƒ’แƒœแƒ˜แƒ—, แƒแƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ“แƒ”แƒ‘แƒ แƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ”แƒ แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒชแƒ•แƒšแƒ˜แƒกแƒแƒก Node แƒแƒ’แƒ แƒแƒ•แƒ”แƒ‘แƒก แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒแƒก แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒš แƒ•แƒ˜แƒ แƒขแƒฃแƒแƒšแƒฃแƒ  แƒ›แƒแƒœแƒฅแƒแƒœแƒแƒ–แƒ” แƒงแƒ•แƒ”แƒšแƒ แƒ˜แƒœแƒขแƒ”แƒ แƒคแƒ”แƒ˜แƒกแƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘, แƒแƒฏแƒ’แƒฃแƒคแƒ”แƒ‘แƒก แƒ›แƒแƒ— แƒ’แƒแƒ แƒ™แƒ•แƒ”แƒฃแƒšแƒ˜ แƒ™แƒฃแƒ—แƒ•แƒœแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒฎแƒ”แƒ“แƒ•แƒ˜แƒ— NetworkID, แƒฅแƒ›แƒœแƒ˜แƒก แƒ›แƒ˜แƒ”แƒ  TargetGroup on NetworkIDแƒ“แƒ แƒแƒกแƒ”แƒ•แƒ” แƒแƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ”แƒ‘แƒก แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒกแƒแƒ‘แƒแƒก. แƒจแƒ”แƒ›แƒ“แƒ’แƒแƒ›แƒจแƒ˜ แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒกแƒแƒก Service แƒขแƒ˜แƒžแƒ˜แƒ— LoadBalanacer แƒฉแƒ•แƒ”แƒœ แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒ•แƒแƒ›แƒแƒ’แƒ แƒ”แƒ‘แƒ— แƒฌแƒ˜แƒœแƒแƒกแƒฌแƒแƒ  แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒš TargetGroup แƒแƒฎแƒšแƒ˜แƒกแƒ™แƒ”แƒœ NetworkLoadBalanacer'แƒ•แƒแƒ .

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

CCM แƒ›แƒฎแƒแƒ แƒก แƒฃแƒญแƒ”แƒ แƒก Kubernetes แƒ•แƒ”แƒ แƒกแƒ˜แƒแƒก 1.15 แƒ“แƒ แƒฃแƒคแƒ แƒ แƒ›แƒแƒฆแƒแƒš แƒ•แƒ”แƒ แƒกแƒ˜แƒแƒก. แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒจแƒ˜, แƒ แƒแƒ› แƒ˜แƒ›แƒฃแƒจแƒแƒแƒก, แƒกแƒแƒญแƒ˜แƒ แƒแƒ แƒ“แƒ แƒแƒจแƒ --cloud-provider=external แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ˜แƒงแƒ true kube-apiserver-แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, kube-controller-manager-แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, kube-scheduler-แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ“แƒ แƒงแƒ•แƒ”แƒšแƒ แƒ™แƒฃแƒ‘แƒ”แƒšแƒ”แƒขแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.

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

CCM-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒกแƒแƒงแƒ”แƒœแƒ”แƒ‘แƒšแƒแƒ“ แƒแƒกแƒ”แƒ•แƒ” แƒ“แƒแƒ’แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒแƒ—:

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

แƒจแƒ”แƒ“แƒ”แƒ’แƒ”แƒ‘แƒ˜

แƒฉแƒ•แƒ”แƒœ แƒ•แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ— แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒฃแƒš CCM-แƒก แƒ™แƒฃแƒ‘แƒ”แƒ แƒœแƒ”แƒขแƒ˜แƒก แƒฎแƒฃแƒ— แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒจแƒ˜ แƒ‘แƒแƒšแƒ แƒแƒ แƒ˜ แƒ™แƒ•แƒ˜แƒ แƒ˜แƒก แƒ’แƒแƒœแƒ›แƒแƒ•แƒšแƒแƒ‘แƒแƒจแƒ˜ แƒ“แƒ แƒ•แƒ’แƒ”แƒ’แƒ›แƒแƒ•แƒ— แƒ›แƒแƒ—แƒ˜ แƒ แƒ˜แƒชแƒฎแƒ•แƒ˜แƒก 20-แƒ›แƒ“แƒ” แƒ’แƒแƒ–แƒ แƒ“แƒแƒก แƒ›แƒแƒ›แƒ“แƒ”แƒ•แƒœแƒ แƒ—แƒ•แƒ”แƒจแƒ˜. แƒแƒ›แƒŸแƒแƒ›แƒแƒ“ แƒแƒ  แƒ’แƒ˜แƒ แƒฉแƒ”แƒ•แƒ— CCM-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒแƒก K8-แƒ”แƒ‘แƒ˜แƒก แƒ“แƒ˜แƒ“แƒ˜ แƒ“แƒ แƒ™แƒ แƒ˜แƒขแƒ˜แƒ™แƒฃแƒšแƒ˜ แƒ˜แƒœแƒกแƒขแƒแƒšแƒแƒชแƒ˜แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.

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

PS

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

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

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