เบ‚เปเปเบ™เบฐเบ™เปเบฒ Kubernetes CCM (Cloud Controller Manager) เบชเปเบฒเบฅเบฑเบš Yandex.Cloud

เบ‚เปเปเบ™เบฐเบ™เปเบฒ Kubernetes CCM (Cloud Controller Manager) เบชเปเบฒเบฅเบฑเบš Yandex.Cloud

เบชเบทเบšเบ•เปเปˆเป„เบ›เปƒเบ™เบšเปเปˆเบ”เบปเบ™เบกเบฒเบ™เบตเป‰ เบ›เปˆเบญเบเบ•เบปเบงเบ‚เบฑเบš CSI เบชเปเบฒเบฅเบฑเบš Yandex.Cloud เบžเบงเบเป€เบฎเบปเบฒเบเปเบฒเบฅเบฑเบ‡เป€เบœเบตเบเปเบœเปˆเป‚เบ„เบ‡เบเบฒเบ™ Open Source เบญเบทเปˆเบ™เบชเปเบฒเบฅเบฑเบš cloud เบ™เบตเป‰ - Cloud Controller Manager. CCM เปเบกเปˆเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบšเปเปˆเบžเบฝเบ‡เปเบ•เปˆเบชเปเบฒเบฅเบฑเบšเบเบธเปˆเบกเบ—เบฑเบ‡เบซเบกเบปเบ”, เปเบ•เปˆเบเบฑเบ‡เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเบ‚เบฑเบš CSI เป€เบญเบ‡. เบฅเบฒเบเบฅเบฐเบญเบฝเบ”เบเปˆเบฝเบงเบเบฑเบšเบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เบ‚เบญเบ‡เบกเบฑเบ™เปเบฅเบฐเบšเบฒเบ‡เบฅเบฑเบเบชเบฐเบ™เบฐเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เปเบกเปˆเบ™เบขเบนเปˆเบžเบฒเบเปƒเบ•เป‰เบเบฒเบ™เบ•เบฑเบ”.

เบเบฒเบ™เบ™เปเบฒเบชเบฐเป€เบซเบ™เบต

เป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบ„เบทเบญเบฑเบ™เบ™เบตเป‰?

เปเบฎเบ‡เบˆเบนเบ‡เปƒเบˆเบ—เบตเปˆเบเบฐเบ•เบธเป‰เบ™เปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเบžเบฑเบ”เบ—เบฐเบ™เบฒ CCM เบชเปเบฒเบฅเบฑเบš Yandex.Cloud เบขเปˆเบฒเบ‡เบชเบปเบกเบšเบนเบ™เบเบฑเบšเบชเบดเปˆเบ‡เบ—เบตเปˆเบญเบฐเบ—เบดเบšเบฒเบเป„เบงเป‰เปƒเบ™ เบ›เบฐเบเบฒเบ” เป„เบ”เป€เบงเบต CSI. เบžเบงเบเป€เบฎเบปเบฒเบฎเบฑเบเบชเบฒเบซเบผเบฒเบเบเบธเปˆเบก Kubernetes เบˆเบฒเบเบœเบนเป‰เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™เบ„เบฅเบฒเบงเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™, เป€เบŠเบดเปˆเบ‡เบžเบงเบเป€เบฎเบปเบฒเปƒเบŠเป‰เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบ”เบฝเบง. เบกเบฑเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ„เบงเบฒเบกเบชเบฐเบ”เบงเบเบชเบฐเบšเบฒเบเบซเบผเบฒเบเบขเปˆเบฒเบ‡ "เบ‚เป‰เบฒเบก" เบเบฒเบ™เปเบเป‰เป„เบ‚เบเบฒเบ™เบ„เบธเป‰เบกเบ„เบญเบ‡เบ‚เบญเบ‡เบœเบนเป‰เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰. เปเบกเปˆเบ™เปเบฅเป‰เบง, เบžเบงเบเป€เบฎเบปเบฒเบกเบตเบเปเบฅเบฐเบ™เบตเปเบฅเบฐเบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เบชเบฐเป€เบžเบฒเบฐ, เปเบ•เปˆเบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบžเบงเบเบกเบฑเบ™เบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบ•เปเปˆเบœเบนเป‰เปƒเบŠเป‰เบญเบทเปˆเบ™เป†.

CCM เปเบกเปˆเบ™เบซเบเบฑเบ‡?

เป‚เบ”เบเบ›เบปเบเบเบฐเบ•เบด, เบžเบงเบเป€เบฎเบปเบฒเบเบฐเบเบฝเบกเบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบญเป‰เบญเบกเบ‚เป‰เบฒเบ‡เบžเบงเบเป€เบฎเบปเบฒเบชเปเบฒเบฅเบฑเบšเบเบธเปˆเบก เบˆเบฒเบเบžเบฒเบเบ™เบญเบ - เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเบปเบเบ•เบปเบงเบขเปˆเบฒเบ‡, เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ Terraform. เปเบ•เปˆเบšเบฒเบ‡เบ„เบฑเป‰เบ‡เบเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบกเบตเบเบฒเบ™เบ„เบธเป‰เบกเบ„เบญเบ‡เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเป€เบกเบ„เบ—เบตเปˆเบญเป‰เบญเบกเบฎเบญเบšเบžเบงเบเป€เบฎเบปเบฒ เบˆเบฒเบเบเบธเปˆเบก. เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ™เบตเป‰เปเบกเปˆเบ™เบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰, เปเบฅเบฐเบกเบฑเบ™เปเบกเปˆเบ™เบเบฒเบ™เบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบ›เบฐเบ•เบดเบšเบฑเบ” CCM.

เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐ, Cloud Controller Manager เปƒเบซเป‰เบซเป‰เบฒเบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบ•เบปเป‰เบ™เบ•เป:

  1. เบ•เบปเบงเบขเปˆเบฒเบ‡ - เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เบ„เบงเบฒเบกโ€‹เบชเปเบฒโ€‹เบžเบฑเบ™ 1:1 เบฅเบฐโ€‹เบซเบงเปˆเบฒเบ‡โ€‹เบงเบฑเบ”โ€‹เบ–เบธ node เปƒเบ™ Kubernetes (Node) เปเบฅเบฐเป€เบ„เบทเปˆเบญเบ‡ virtual เปƒเบ™เบœเบนเป‰เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™เบŸเบฑเบ‡. เบชเปเบฒเบฅเบฑเบšเบ™เบตเป‰เบžเบงเบเป€เบฎเบปเบฒ:
    • เบ•เบทเปˆเบกเบ‚เปเป‰เบกเบนเบ™เปƒเบชเปˆเปƒเบ™เบžเบฒเบเบชเบฐเบซเบ™เบฒเบก spec.providerID เปƒเบ™เบงเบฑเบ”เบ–เบธ Node. เบ•เบปเบงเบขเปˆเบฒเบ‡, เบชเปเบฒเบฅเบฑเบš OpenStack CCM เบžเบฒเบเบชเบฐเบซเบ™เบฒเบกเบ™เบตเป‰เบกเบตเบฎเบนเบšเปเบšเบšเบ”เบฑเปˆเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰: openstack:///d58a78bf-21b0-4682-9dc6-2132406d2bb0. เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบšเบดเปˆเบ‡เบŠเบทเปˆเบ‚เบญเบ‡เบœเบนเป‰เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™เบŸเบฑเบ‡เปเบฅเบฐ UUID เบ—เบตเปˆเป€เบ›เบฑเบ™เป€เบญเบเบฐเบฅเบฑเบเบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ (เป€เบ„เบทเปˆเบญเบ‡ virtual เปƒเบ™ OpenStack) เบ‚เบญเบ‡เบงเบฑเบ”เบ–เบธ;
    • เป€เบชเบตเบก nodeInfo เปƒเบ™เบงเบฑเบ”เบ–เบธ Node เบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบšเป€เบ„เบทเปˆเบญเบ‡ virtual. เบ•เบปเบงเบขเปˆเบฒเบ‡, เบžเบงเบเป€เบฎเบปเบฒเบฅเบฐเบšเบธเบ›เบฐเป€เบžเบ”เบ•เบปเบงเบขเปˆเบฒเบ‡เปƒเบ™ AWS;
    • เบžเบงเบเป€เบฎเบปเบฒเบเบงเบ”เป€เบšเบดเปˆเบ‡เบเบฒเบ™เบ›เบฐเบเบปเบ”เบ•เบปเบงเบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡ virtual เบขเบนเปˆเปƒเบ™เบ„เบฅเบฒเบง. เบ•เบปเบงเบขเปˆเบฒเบ‡, เบ–เป‰เบฒเบงเบฑเบ”เบ–เบธ Node เป„เบ”เป‰เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบฅเบฑเบ” NotReady, เบ—เปˆเบฒเบ™โ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบเบงเบ”โ€‹เบชเบญเบšโ€‹เบงเปˆเบฒโ€‹เป€เบ„เบทเปˆเบญเบ‡ virtual เบกเบตโ€‹เบขเบนเปˆโ€‹เปƒเบ™โ€‹เบ—เบฑเบ‡โ€‹เบซเบกเบปเบ”โ€‹เปƒเบ™โ€‹เบœเบนเป‰โ€‹เปƒเบซเป‰โ€‹เบšเปโ€‹เบฅเบดโ€‹เบŸเบฑเบ‡โ€‹เป‚เบ”เบโ€‹ providerID. เบ–เป‰เบฒเบกเบฑเบ™เบšเปเปˆเบขเบนเปˆเบ—เบตเปˆเบ™เบฑเป‰เบ™, เบฅเบถเบšเบงเบฑเบ”เบ–เบธเบญเบญเบ Node, เบŠเบถเปˆเบ‡เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบˆเบฐเบเบฑเบ‡เบ„เบปเบ‡เบขเบนเปˆเปƒเบ™เบเบธเปˆเบกเบ•เบฐเบซเบผเบญเบ”เป„เบ›;
  2. เป€เบ‚เบ” - เบเปเบฒเบ™เบปเบ”เป‚เบ”เป€เบกเบ™เบ—เบตเปˆเบฅเบปเป‰เบกเป€เบซเบฅเบงเบชเปเบฒเบฅเบฑเบšเบงเบฑเบ”เบ–เบธ Node, เป€เบžเบทเปˆเบญเปƒเบซเป‰เบœเบนเป‰เบˆเบฑเบ”เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบชเบฒเบกเบฒเบ”เป€เบฅเบทเบญเบ node เบชเปเบฒเบฅเบฑเบš Pod เบ•เบฒเบกเบžเบฒเบเบžเบทเป‰เบ™เปเบฅเบฐเป€เบ‚เบ”เปƒเบ™เบœเบนเป‰เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™เบŸเบฑเบ‡;
  3. LoadBalancer - เปƒเบ™โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ—เบตเปˆโ€‹เบเบฒเบ™โ€‹เบชเป‰เบฒเบ‡โ€‹เบงเบฑเบ”โ€‹เบ–เบธโ€‹ Service เบเบฑเบšโ€‹เบ›เบฐโ€‹เป€เบžเบ”โ€‹ LoadBalancer เบชเป‰เบฒเบ‡เบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบเบฒเบ™เบ”เบธเปˆเบ™เบ”เปˆเบฝเบ‡เบ—เบตเปˆเบˆเบฐเบ™เปเบฒเบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เบˆเบฒเบเบžเบฒเบเบ™เบญเบเป„เบ›เบซเบฒ nodes cluster. เบ•เบปเบงเบขเปˆเบฒเบ‡, เปƒเบ™ Yandex.Cloud เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰ NetworkLoadBalancer ะธ TargetGroup เบชเปเบฒเบฅเบฑเบšเบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰;
  4. เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡ โ€“ เบชเป‰เบฒเบ‡เป€เบ„เบทเบญเบ‚เปˆเบฒเบเบฅเบฐเบซเบงเปˆเบฒเบ‡ nodes, เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒ เบญเบตเบ‡เบ•เบฒเบกเบ‚เปเป‰เบเปเบฒเบ™เบปเบ” Kubernetes, เปเบ•เปˆเบฅเบฐเบเบฑเบเบ•เป‰เบญเบ‡เบกเบตเบ—เบตเปˆเบขเบนเปˆ IP เบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡ เปเบฅเบฐเบชเบฒเบกเบฒเบ”เป€เบ‚เบปเป‰เบฒเบซเบฒเบเบฑเบเบญเบทเปˆเบ™เป„เบ”เป‰. เบชเปเบฒเบฅเบฑเบšเบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เป€เบ„เบทเบญเบ‚เปˆเบฒเบเบŠเป‰เบญเบ™เบเบฑเบ™ (VXLAN, GENEVE) เบซเบผเบทเบเปเบฒเบ™เบปเบ”เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เป‚เบ”เบเบเบปเบ‡เปƒเบ™เป€เบ„เบทเบญเบ‚เปˆเบฒเบ virtual เบ‚เบญเบ‡เบœเบนเป‰เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™เบŸเบฑเบ‡:

    เบ‚เปเปเบ™เบฐเบ™เปเบฒ Kubernetes CCM (Cloud Controller Manager) เบชเปเบฒเบฅเบฑเบš Yandex.Cloud

  5. เบ›เบฐเบฅเบดเบกเบฒเบ™ - เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบชเบฑเปˆเบ‡ PV เปเบšเบšเป€เบ„เบทเปˆเบญเบ™เป„เบซเบงเป‚เบ”เบเปƒเบŠเป‰ PVC เปเบฅเบฐ SC. เปƒเบ™เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™, เบซเบ™เป‰เบฒเบ—เบตเปˆเบ™เบตเป‰เปเบกเปˆเบ™เบชเปˆเบงเบ™เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡ CCM, เปเบ•เปˆเป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบ„เบงเบฒเบกเบชเบฑเบšเบชเบปเบ™เบญเบฑเบ™เปƒเบซเบเปˆเบซเบผเบงเบ‡เบ‚เบญเบ‡เบกเบฑเบ™, เบกเบฑเบ™เป„เบ”เป‰เบ–เบทเบเบเป‰เบฒเบเป„เบ›เป‚เบ„เบ‡เบเบฒเบ™เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ, Container Storage Interface (CSI). เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เป€เบงเบปเป‰เบฒเบเปˆเบฝเบงเบเบฑเบš CSI เบซเบผเบฒเบเบเบงเปˆเบฒเบซเบ™เบถเปˆเบ‡เบ„เบฑเป‰เบ‡ wrote เปเบฅเบฐ, เบ”เบฑเปˆเบ‡เบ—เบตเปˆเป„เบ”เป‰เบเปˆเบฒเบงเบกเบฒเปเบฅเป‰เบง, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒ เบ›เปˆเบญเบเบญเบญเบเบกเบฒ เบ„เบปเบ™เบ‚เบฑเบš CSI.

เบเปˆเบญเบ™เบซเบ™เป‰เบฒเบ™เบตเป‰, เบฅเบฐเบซเบฑเบ”เบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเบžเบปเบงเบžเบฑเบ™เบเบฑเบš cloud เปเบกเปˆเบ™เบ•เบฑเป‰เบ‡เบขเบนเปˆเปƒเบ™เบšเปˆเบญเบ™เป€เบเบฑเบšเบกเป‰เบฝเบ™ Git เบ•เบปเป‰เบ™เบ•เปเบ‚เบญเบ‡เป‚เบ„เบ‡เบเบฒเบ™ Kubernetes เบ—เบตเปˆ k8s.io/kubernetes/pkg/cloudprovider/providers, เปเบ•เปˆเบžเบงเบเป€เบ‚เบปเบฒเบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบ›เบฐเบ–เบดเป‰เบกเบ™เบตเป‰เบเป‰เบญเบ™เบ„เบงเบฒเบกเบšเปเปˆเบชเบฐเบ”เบงเบเปƒเบ™เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบžเบทเป‰เบ™เบ–เบฒเบ™เบฅเบฐเบซเบฑเบ”เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆ. เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบเบปเปˆเบฒเบ—เบฑเบ‡เบซเบกเบปเบ”เป„เบ”เป‰เบ–เบทเบเบเป‰เบฒเบเป„เบ› repository เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ. เป€เบžเบทเปˆเบญเบ„เบงเบฒเบกเบชเบฐเบ”เบงเบเปƒเบ™เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เปเบฅเบฐเบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบ•เปเปˆเป„เบ›, เบญเบปเบ‡เบ›เบฐเบเบญเบšเบ—เบปเปˆเบงเป„เบ›เบ—เบฑเบ‡เบซเบกเบปเบ”เป„เบ”เป‰เบ–เบทเบเบเป‰เบฒเบเป„เบ›เบเบฑเบ‡ repository เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ.

เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบš CSI, เบœเบนเป‰เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™เบ„เบฅเบฒเบงเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบˆเปเบฒเบ™เบงเบ™เบซเบผเบฒเบเป„เบ”เป‰เบญเบญเบเปเบšเบš CCMs เบ‚เบญเบ‡เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเปเบฅเป‰เบงเป€เบžเบทเปˆเบญเป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบŸเบฑเบ‡เบขเบนเปˆเปƒเบ™ Kubernetes. เบ–เป‰เบฒเบœเบนเป‰เบชเบฐเบซเบ™เบญเบ‡เบšเปเปˆเบกเบต CCM, เปเบ•เปˆเบซเบ™เป‰เบฒเบ—เบตเปˆเบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เปเบกเปˆเบ™เบกเบตเบขเบนเปˆเบœเปˆเบฒเบ™ API, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ›เบฐเบ•เบดเบšเบฑเบ” CCM เบ•เบปเบงเบ—เปˆเบฒเบ™เป€เบญเบ‡.

เป€เบžเบทเปˆเบญเบ‚เบฝเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เป€เบญเบ‡เบ‚เบญเบ‡ CCM, เบกเบฑเบ™เบžเบฝเบ‡เบžเปเบ—เบตเปˆเบˆเบฐเบ›เบฐเบ•เบดเบšเบฑเบ” เบ•เป‰เบญเบ‡เบเบฒเบ™เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš Go.

ะ˜ เบ™เบตเป‰เปเบกเปˆเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบฎเบฑเบš.

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

เป€เบˆเบปเป‰เบฒเบกเบฒเบ™เบตเป‰เป„เบ”เป‰เปเบ™เบงเปƒเบ”

เบžเบงเบเป€เบฎเบปเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒ (เบซเบผเบทเปเบ—เบ™เบ—เบตเปˆเบˆเบฐ, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰) เบเบฑเบš เบžเป‰เบญเบก(!) CCM เบชเปเบฒเบฅเบฑเบš Yandex.Cloud เบซเบ™เบถเปˆเบ‡เบ›เบตเบเปˆเบญเบ™เบซเบ™เป‰เบฒเบ™เบตเป‰.

เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ™เบตเป‰เบžเบงเบเป€เบฎเบปเบฒเบ‚เบฒเบ”:

  • เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ„เบงเบฒเบกเบ–เบทเบเบ•เป‰เบญเบ‡เบœเปˆเบฒเบ™ JWT IAM token;
  • เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™.

เบ•เบปเบเบฅเบปเบ‡เบเบฑเบšเบœเบนเป‰เบ‚เบฝเบ™ (dlisin) เปƒเบ™ Telegram, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰ forked yandex-cloud-controller-manager เปเบฅเบฐเป€เบžเบตเปˆเบกเบซเบ™เป‰เบฒเบ—เบตเปˆเบ‚เบฒเบ”เบซเบฒเบเป„เบ›.

เบฅเบฑเบเบชเบฐเบ™เบฐเบ—เบตเปˆ เบชเบณ เบ„เบฑเบ™

เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™, CCM เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบ”เบฑเปˆเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰:

  • เบ•เบปเบงเบขเปˆเบฒเบ‡;
  • เป€เบ‚เบ”;
  • LoadBalancer.

เปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”, เป€เบกเบทเปˆเบญ Yandex.Cloud เป€เบฅเบตเปˆเบกเป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เบ‚เบญเบ‡ VPC เบ‚เบฑเป‰เบ™เบชเบนเบ‡, เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเป€เบžเบตเปˆเบกเบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡.

LoadBalancer เป€เบ›เบฑเบ™เบชเบดเปˆเบ‡เบ—เป‰เบฒเบ—เบฒเบเบ•เบปเป‰เบ™เบ•เป

เปƒเบ™เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบžเบฐเบเบฒเบเบฒเบก, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” CCM เบญเบทเปˆเบ™เป†, เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เบ„เบนเปˆเบ‚เบญเบ‡ LoadBalancer ะธ TargetGroup เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบ—เบธเบโ€‹เบ„เบปเบ™โ€‹ Service เบเบฑเบšโ€‹เบ›เบฐโ€‹เป€เบžเบ”โ€‹ LoadBalancer. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, Yandex.Cloud เบ„เบปเป‰เบ™เบžเบปเบšเบ‚เปเป‰เบˆเปเบฒเบเบฑเบ”เบ—เบตเปˆเบซเบ™เป‰เบฒเบชเบปเบ™เปƒเบˆเบซเบ™เบถเปˆเบ‡: เบ—เปˆเบฒเบ™เบšเปเปˆเบชเบฒเบกเบฒเบ”เปƒเบŠเป‰ TargetGroups เบกเบตเบ•เบฑเบ”เบเบฑเบ™ Targets (เบ„เบนเปˆ SubnetID - IpAddress).

เบ‚เปเปเบ™เบฐเบ™เปเบฒ Kubernetes CCM (Cloud Controller Manager) เบชเปเบฒเบฅเบฑเบš Yandex.Cloud

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบžเบฒเบเปƒเบ™ CCM เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™, เบ•เบปเบงเบ„เบงเบšเบ„เบธเบกเบ–เบทเบเป€เบ›เบตเบ”เบ•เบปเบง, เป€เบŠเบดเปˆเบ‡, เป€เบกเบทเปˆเบญเบงเบฑเบ”เบ–เบธเบ›เปˆเบฝเบ™เปเบ›เบ‡ Node เป€เบเบฑเบšเบเปเบฒเบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบ—เบฑเบ‡เบซเบกเบปเบ”เปƒเบ™เปเบ•เปˆเบฅเบฐเป€เบ„เบทเปˆเบญเบ‡ virtual, เบˆเบฑเบ”เบเบธเปˆเบกเปƒเบซเป‰เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบญเบตเบ‡เบ•เบฒเบกเบเบฒเบ™เบ‚เบญเบ‡เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™ NetworkID, เบชเป‰เบฒเบ‡เป‚เบ”เบ TargetGroup เบชเบธเบ” NetworkID, เปเบฅเบฐเบเบฑเบ‡เบ•เบดเบ”เบ•เบฒเบกเบ„เบงเบฒเบกเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡. เบ•เปเปˆเบกเบฒ, เป€เบกเบทเปˆเบญเบชเป‰เบฒเบ‡เบงเบฑเบ”เบ–เบธ Service เบเบฑเบšโ€‹เบ›เบฐโ€‹เป€เบžเบ”โ€‹ LoadBalanacer เบžเบงเบเป€เบฎเบปเบฒเบžเบฝเบ‡เปเบ•เปˆเบ„เบฑเบ”เบ•เบดเบ” pre-เบชเป‰เบฒเบ‡ TargetGroup เปƒเบซเบกเปˆ NetworkLoadBalanacer'เบ‚เป‰เบญเบ.

เบˆเบฐเป€เบฅเบตเปˆเบกเปƒเบŠเป‰เปเบ™เบงเปƒเบ”?

CCM เบฎเบญเบ‡เบฎเบฑเบš Kubernetes เป€เบงเบตเบŠเบฑเบ™ 1.15 เปเบฅเบฐเบชเบนเบ‡เบเบงเปˆเบฒ. เปƒเบ™เบเบธเปˆเบก, เป€เบžเบทเปˆเบญเปƒเบซเป‰เบกเบฑเบ™เป€เบฎเบฑเบ”เบงเบฝเบ, เบกเบฑเบ™เบฎเบฝเบเบฎเป‰เบญเบ‡เปƒเบซเป‰เบกเบตเบ—เบธเบ‡ --cloud-provider=external เบ–เบทเบเบ•เบฑเป‰เบ‡เป€เบ›เบฑเบ™ true เบชเปเบฒเบฅเบฑเบš kube-apiserver, kube-controller-manager, kube-scheduler เปเบฅเบฐ kubelets เบ—เบฑเบ‡เปเบปเบ”.

เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบ•เบปเบงเบกเบฑเบ™เป€เบญเบ‡เป„เบ”เป‰เบ–เบทเบเบญเบฐเบ—เบดเบšเบฒเบเป„เบงเป‰เปƒเบ™ README. เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบ•เบปเป‰เบกเบฅเบปเบ‡เป„เบ›เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เบงเบฑเบ”เบ–เบธเปƒเบ™ Kubernetes เบˆเบฒเบ manifests.

เป€เบžเบทเปˆเบญเปƒเบŠเป‰ CCM เป€เบˆเบปเป‰เบฒเบเบฑเบ‡เบ•เป‰เบญเบ‡เบเบฒเบ™:

เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบ”เบตเปƒเบˆเบ—เบตเปˆเบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเบ„เปเบฒเบ„เบถเบ”เบ„เปเบฒเป€เบซเบฑเบ™เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เปเบฅเบฐ เบšเบฑเบ™เบซเบฒเปƒเบซเบกเปˆเบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบ—เปˆเบฒเบ™โ€‹เบžเบปเบšโ€‹เบšเบฑเบ™โ€‹เบซเบฒโ€‹เปƒเบ”โ€‹เบซเบ™เบถเปˆเบ‡โ€‹!

เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš

เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบ™เปเบฒเปƒเบŠเป‰ CCM เบ—เบตเปˆเบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เบขเบนเปˆเปƒเบ™เบซเป‰เบฒเบเบธเปˆเบก Kubernetes เปƒเบ™เป„เบฅเบเบฐเบชเบญเบ‡เบญเบฒเบ—เบดเบ”เบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒเปเบฅเบฐเบงเบฒเบ‡เปเบœเบ™เบ—เบตเปˆเบˆเบฐเบ‚เบฐเบซเบเบฒเบเบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒเป€เบ›เบฑเบ™ 20 เปƒเบ™เป€เบ”เบทเบญเบ™เบ‚เป‰เบฒเบ‡เบซเบ™เป‰เบฒ. เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบžเบงเบเป€เบฎเบปเบฒเบšเปเปˆเปเบ™เบฐเบ™เปเบฒเปƒเบซเป‰เปƒเบŠเป‰ CCM เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡ K8s เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเปเบฅเบฐเบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™.

เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡ CSI, เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบ”เบตเปƒเบˆเบ–เป‰เบฒเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒ Yandex เป€เบญเบปเบฒเบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเปเบฅเบฐเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ‚เบญเบ‡เป‚เบ„เบ‡เบเบฒเบ™เบ™เบตเป‰ - เบžเบงเบเป€เบฎเบปเบฒเบžเป‰เบญเบกเบ—เบตเปˆเบˆเบฐเป‚เบญเบ™ repository เบ•เบฒเบกเบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒเป€เบžเบทเปˆเบญเบˆเบฑเบ”เบเบฒเบ™เบเบฑเบšเบงเบฝเบเบ‡เบฒเบ™เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบžเบงเบเป€เบฎเบปเบฒ.

PS

เบญเปˆเบฒเบ™เบเบฑเบ‡เบขเบนเปˆเปƒเบ™ blog เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ:

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™