ΠŸΡ€ΠΈΠΌΠ΅Π½Π° дистрибуираних услуга Ρƒ ИандСк.Π¦Π»ΠΎΡƒΠ΄ користСћи Π“Ρ€Π°Ρ„Π°Π½Ρƒ ΠΊΠ°ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€

Π—Π΄Ρ€Π°Π²ΠΎ свима! Π£ ΠΎΠΊΠ²ΠΈΡ€Ρƒ свог курса истраТивао сам могућности Ρ‚Π°ΠΊΠ²Π΅ Π΄ΠΎΠΌΠ°Ρ›Π΅ ΠΊΠ»Π°ΡƒΠ΄ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ ΠΊΠ°ΠΎ ΡˆΡ‚ΠΎ јС ИандСк.Π¦Π»ΠΎΡƒΠ΄. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Π½ΡƒΠ΄ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΡ‚Π΅ услугС Π·Π° Ρ€Π΅ΡˆΠ°Π²Π°ΡšΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΡ‡Π½ΠΈΡ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°. ΠœΠ΅Ρ’ΡƒΡ‚ΠΈΠΌ, ΠΏΠΎΠ½Π΅ΠΊΠ°Π΄ јС ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎ Π΄Π° поставитС сопствСну Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Ρƒ Ρƒ ΠΎΠ±Π»Π°ΠΊΡƒ са ΠΏΡ€ΠΈΠ»ΠΈΡ‡Π½ΠΎ ΠΎΠ±ΠΈΠΌΠ½ΠΎΠΌ инфраструктуром заснованом Π½Π° ΠΎΠ²ΠΈΠΌ услугама. Π£ ΠΎΠ²ΠΎΠΌ Ρ‡Π»Π°Π½ΠΊΡƒ ΠΆΠ΅Π»ΠΈΠΌ Π΄Π° ΠΏΠΎΠ΄Π΅Π»ΠΈΠΌ својС искуство Ρƒ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈ Ρ‚Π°ΠΊΠ²Π΅ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π΅.

ΠŸΡ€ΠΈΠΌΠ΅Π½Π° дистрибуираних услуга Ρƒ ИандСк.Π¦Π»ΠΎΡƒΠ΄ користСћи Π“Ρ€Π°Ρ„Π°Π½Ρƒ ΠΊΠ°ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€

Π¨Ρ‚Π° ΠΆΠ΅Π»ΠΈΡ‚Π΅ Π΄Π° Π΄ΠΎΠ±ΠΈΡ˜Π΅Ρ‚Π΅?

Π“Ρ€Π°Ρ„Π°Π½Π° β€” ΠΌΠΎΡ›Π°Π½ Π°Π»Π°Ρ‚ Π·Π° Ρ€Π΅ΡˆΠ°Π²Π°ΡšΠ΅ Π°Π½Π°Π»ΠΈΡ‚ΠΈΡ‡ΠΊΠΈΡ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° ΠΈΠ»ΠΈ ΠΏΡ€Π°Ρ›Π΅ΡšΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π±ΠΈΠ»ΠΎ ΠΊΠΎΠ³ систСма. Π£ својој основној ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ˜ΠΈ, ΠΎΠ²ΠΎ јС Π²ΠΈΡ€Ρ‚ΡƒΠ΅Π»Π½Π° машина са Π“Ρ€Π°Ρ„Π°Π½Π° Π²Π΅Π± сСрвСром, ΠΊΠ°ΠΎ ΠΈ Π±Π°Π·Π° ΠΏΠΎΠ΄Π°Ρ‚Π°ΠΊΠ° (Π¦Π»ΠΈΡ†ΠΊΠ₯оусС, Π˜Π½Ρ„Π»ΡƒΠΊΠ”Π‘, ΠΈΡ‚Π΄.) са скупом ΠΏΠΎΠ΄Π°Ρ‚Π°ΠΊΠ° Π½Π° ΠΊΠΎΠΌΠ΅ Ρ›Π΅ сС Π±Π°Π·ΠΈΡ€Π°Ρ‚ΠΈ Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠ°.

Након ΠΏΠΎΠΊΡ€Π΅Ρ‚Π°ΡšΠ° Π²ΠΈΡ€Ρ‚ΡƒΠ΅Π»Π½Π΅ машинС са Π²Π΅Π± сСрвСром, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΠΈΡ›ΠΈ Π½Π° њСн хост ΠΈ Π΄ΠΎΠ±ΠΈΡ‚ΠΈ ΠΏΡ€Π΅Π»Π΅ΠΏ кориснички ΠΈΠ½Ρ‚Π΅Ρ€Ρ„Π΅Ρ˜Ρ, навСсти Π±Π°Π·Π΅ ΠΏΠΎΠ΄Π°Ρ‚Π°ΠΊΠ° ΠΊΠ°ΠΎ ΠΈΠ·Π²ΠΎΡ€Π΅ Π·Π° Π΄Π°Ρ™ΠΈ Ρ€Π°Π΄, ΠΊΡ€Π΅ΠΈΡ€Π°Ρ‚ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½Π΅ Ρ‚Π°Π±Π»Π΅ ΠΈ Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ½Π΅.

ΠŸΡ€ΠΈΠΌΠ΅Π½Π° дистрибуираних услуга Ρƒ ИандСк.Π¦Π»ΠΎΡƒΠ΄ користСћи Π“Ρ€Π°Ρ„Π°Π½Ρƒ ΠΊΠ°ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€

Основна Π²Π΅Ρ€Π·ΠΈΡ˜Π° ΠΈΠΌΠ° јСдан Π·Π½Π°Ρ‡Π°Ρ˜Π°Π½ нСдостатак - ΡƒΠΎΠΏΡˆΡ‚Π΅ нијС ΠΎΡ‚ΠΏΠΎΡ€Π½Π° Π½Π° Π³Ρ€Π΅ΡˆΠΊΠ΅. Односно, Ρ†Π΅Π»ΠΎΠΊΡƒΠΏΠ½Π° функционалност Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π΅ зависи ΠΎΠ΄ одрТивости јСднС Π²ΠΈΡ€Ρ‚ΡƒΠ΅Π»Π½Π΅ машинС. Ако одбијС ΠΈΠ»ΠΈ 10 Ρ™ΡƒΠ΄ΠΈ истоврСмСно ΠΎΡ‚Π²ΠΎΡ€ΠΈ кориснички ΠΈΠ½Ρ‚Π΅Ρ€Ρ„Π΅Ρ˜Ρ, ΠΎΠ½Π΄Π° Ρ›Π΅ настати ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ.

Они сС ΠΌΠΎΠ³Ρƒ Ρ˜Π΅Π΄Π½ΠΎΡΡ‚Π°Π²Π½ΠΎ Ρ€Π΅ΡˆΠΈΡ‚ΠΈ: само Ρ‚Ρ€Π΅Π±Π° Π΄Π°... поставитС ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½ΠΈΡ… Π²ΠΈΡ€Ρ‚ΡƒΠ΅Π»Π½ΠΈΡ… машина са Π²Π΅Π± сСрвСром ΠΈ поставитС ΠΈΡ… ΠΏΠΎΠ΄ Π›3 балансСр. Али ΠΎΠ²Π΄Π΅ нијС свС Ρ‚Π°ΠΊΠΎ јасно. Π“Ρ€Π°Ρ„Π°Π½Π° ΡΠΊΠ»Π°Π΄ΠΈΡˆΡ‚ΠΈ корисничка подСшавања (ΠΏΡƒΡ‚Π°ΡšΠ° Π΄ΠΎ Π±Π°Π·Π° ΠΏΠΎΠ΄Π°Ρ‚Π°ΠΊΠ°, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½Π΅ Ρ‚Π°Π±Π»Π΅, Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ½Π΅, ΠΈΡ‚Π΄.) Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ Π½Π° диск својС Π²ΠΈΡ€Ρ‚ΡƒΠ΅Π»Π½Π΅ машинС. Π”Π°ΠΊΠ»Π΅, Π°ΠΊΠΎ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΠΌΠΎ Π½Π΅ΠΊΠ° подСшавања Ρƒ корисничком ΠΈΠ½Ρ‚Π΅Ρ€Ρ„Π΅Ρ˜ΡΡƒ, ΠΎΠ²Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½Π΅ Ρ›Π΅ сС ΠΎΠ΄Ρ€Π°Π·ΠΈΡ‚ΠΈ само Π½Π° Π²ΠΈΡ€Ρ‚ΡƒΠ΅Π»Π½ΠΎΡ˜ машини Π½Π° ΠΊΠΎΡ˜Ρƒ Π½Π°ΠΌ јС послао балансСр. Ово Ρ›Π΅ довСсти Π΄ΠΎ нСдослСдних подСшавања Π·Π° Π½Π°ΡˆΡƒ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Ρƒ, ΡˆΡ‚ΠΎ Ρ›Π΅ ΠΈΠ·Π°Π·Π²Π°Ρ‚ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ΅ са ΠΏΠΎΠΊΡ€Π΅Ρ‚Π°ΡšΠ΅ΠΌ ΠΈ ΠΊΠΎΡ€ΠΈΡˆΡ›Π΅ΡšΠ΅ΠΌ.

ОвдС Ρ›Π΅ Π΄Ρ€ΡƒΠ³Π° Π±Π°Π·Π° ΠΏΠΎΠ΄Π°Ρ‚Π°ΠΊΠ° Π΄ΠΎΡ›ΠΈ Ρƒ ΠΏΠΎΠΌΠΎΡ›, Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠœΠΈΠ‘ΠšΠ› ΠΈΠ»ΠΈ њСгов Π΅ΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ‚. КаТСмо Π“Ρ€Π°Ρ„Π°Π½ΠΈ Π΄Π° Ρ‚Ρ€Π΅Π±Π° Π΄Π° Ρ‡ΡƒΠ²Π° корисничка подСшавања Ρƒ овој β€žΡ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΡ˜β€œ Π±Π°Π·ΠΈ ΠΏΠΎΠ΄Π°Ρ‚Π°ΠΊΠ°. Након Ρ‚ΠΎΠ³Π°, Π±ΠΈΡ›Π΅ Π΄ΠΎΠ²ΠΎΡ™Π½ΠΎ Π΄Π° Π½Π° свакој машини јСдном Π½Π°Π²Π΅Π΄Π΅Ρ‚Π΅ ΠΏΡƒΡ‚Π°ΡšΡƒ Π΄ΠΎ ΠΎΠ²Π΅ Π±Π°Π·Π΅ ΠΏΠΎΠ΄Π°Ρ‚Π°ΠΊΠ° ΠΈ ΡƒΡ€Π΅Π΄ΠΈΡ‚Π΅ сва остала корисничка подСшавања Π½Π° Π±ΠΈΠ»ΠΎ којој ΠΎΠ΄ Π²ΠΈΡ€Ρ‚ΡƒΠ΅Π»Π½ΠΈΡ… машина; ΠΎΠ½Π° Ρ›Π΅ сС ΠΏΡ€ΠΎΡˆΠΈΡ€ΠΈΡ‚ΠΈ Π½Π° осталС.

Π•Π²ΠΎ Π΄ΠΈΡ˜Π°Π³Ρ€Π°ΠΌΠ° ΠΊΠΎΠ½Π°Ρ‡Π½Π΅ инфраструктурС Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π΅:

ΠŸΡ€ΠΈΠΌΠ΅Π½Π° дистрибуираних услуга Ρƒ ИандСк.Π¦Π»ΠΎΡƒΠ΄ користСћи Π“Ρ€Π°Ρ„Π°Π½Ρƒ ΠΊΠ°ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€

Научимо Π΄Π° ΠΏΠΎΠ΄ΠΈΠ³Π½Π΅ΠΌΠΎ Ρ€ΡƒΠΊΠ°ΠΌΠ°

ΠœΠΈΠ‘ΠšΠ› ΠΈ Π¦Π»ΠΈΡ†ΠΊΠ₯оусС

ΠŸΡ€Π΅ ΠΏΠΎΡΡ‚Π°Π²Ρ™Π°ΡšΠ° Ρ‚Π°ΠΊΠ²Π΅ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π΅ јСдним ΠΊΠ»ΠΈΠΊΠΎΠΌ Π½Π° Π΄ΡƒΠ³ΠΌΠ΅, Π±ΠΈΠ»ΠΎ јС Π½Π΅ΠΎΠΏΡ…ΠΎΠ΄Π½ΠΎ Π½Π°ΡƒΡ‡ΠΈΡ‚ΠΈ ΠΊΠ°ΠΊΠΎ Π΄Π° Ρ€ΡƒΠΊΡƒΡ˜Π΅Ρ‚Π΅ сваком ΠΎΠ΄ ΡšΠ΅Π½ΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ ΠΈ Π΄Π° ΠΈΡ… ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡˆΠ΅Ρ‚Π΅ Ρ˜Π΅Π΄Π½Ρƒ са Π΄Ρ€ΡƒΠ³ΠΎΠΌ.

ОвдС Ρ›Π΅ Π½Π°ΠΌ ΠΏΠΎΠΌΠΎΡ›ΠΈ ИандСк.Π¦Π»ΠΎΡƒΠ΄, који ΠΏΡ€ΡƒΠΆΠ° Π›3 балансСрС, Π¦Π»ΠΈΡ†ΠΊΠ₯оусС ΠΈ ΠœΠΈΠ‘ΠšΠ› ΠΊΠ°ΠΎ ΡƒΠΏΡ€Π°Π²Ρ™Π°Π½Π΅ услугС. ΠšΠΎΡ€ΠΈΡΠ½ΠΈΠΊ само Ρ‚Ρ€Π΅Π±Π° Π΄Π° ΠΎΠ΄Ρ€Π΅Π΄ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅ ΠΈ сачСка Π΄ΠΎΠΊ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° свС Π½Π΅ Π΄ΠΎΠ²Π΅Π΄Π΅ Ρƒ Ρ€Π°Π΄Π½ΠΈ Ρ€Π΅Π΄.

РСгистровао сам сС, Π½Π°ΠΏΡ€Π°Π²ΠΈΠΎ ΠΎΠ±Π»Π°ΠΊ ΠΈ Π½Π°Π»ΠΎΠ³ Π·Π° ΠΏΠ»Π°Ρ›Π°ΡšΠ΅. Након Ρ‚ΠΎΠ³Π°, ΠΎΡ‚ΠΈΡˆΠ°ΠΎ сам Ρƒ ΠΎΠ±Π»Π°ΠΊ ΠΈ поставио ΠœΠΈΠ‘ΠšΠ› ΠΈ Π¦Π»ΠΈΡ†ΠΊΠ₯оусС кластСрС са ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΈΠΌ подСшавањима. Π§Π΅ΠΊΠ°ΠΎ сам Π΄ΠΎΠΊ сС Π½Π΅ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Ρ˜Ρƒ.

ΠŸΡ€ΠΈΠΌΠ΅Π½Π° дистрибуираних услуга Ρƒ ИандСк.Π¦Π»ΠΎΡƒΠ΄ користСћи Π“Ρ€Π°Ρ„Π°Π½Ρƒ ΠΊΠ°ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠŸΡ€ΠΈΠΌΠ΅Π½Π° дистрибуираних услуга Ρƒ ИандСк.Π¦Π»ΠΎΡƒΠ΄ користСћи Π“Ρ€Π°Ρ„Π°Π½Ρƒ ΠΊΠ°ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€

Π’Π°ΠΊΠΎΡ’Π΅ ΠΌΠΎΡ€Π°Ρ‚Π΅ Π΄Π° Π·Π°ΠΏΠ°ΠΌΡ‚ΠΈΡ‚Π΅ Π΄Π° ΠΊΡ€Π΅ΠΈΡ€Π°Ρ‚Π΅ Π±Π°Π·Ρƒ ΠΏΠΎΠ΄Π°Ρ‚Π°ΠΊΠ° Ρƒ сваком кластСру ΠΈ Π΄Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡˆΠ΅Ρ‚Π΅ приступ њој користСћи ΠΏΡ€ΠΈΡ˜Π°Π²Ρƒ ΠΈ Π»ΠΎΠ·ΠΈΠ½ΠΊΡƒ. ОвдС Π½Π΅Ρ›Ρƒ ΡƒΠ»Π°Π·ΠΈΡ‚ΠΈ Ρƒ Π΄Π΅Ρ‚Π°Ρ™Π΅ - свС јС ΠΎΡ‡ΠΈΠ³Π»Π΅Π΄Π½ΠΎ Ρƒ ΠΈΠ½Ρ‚Π΅Ρ€Ρ„Π΅Ρ˜ΡΡƒ.

НСочиглСдан Π΄Π΅Ρ‚Π°Ρ™ јС Π±ΠΈΠΎ Π΄Π° ΠΎΠ²Π΅ Π±Π°Π·Π΅ ΠΏΠΎΠ΄Π°Ρ‚Π°ΠΊΠ° ΠΈΠΌΠ°Ρ˜Ρƒ ΠΌΠ½ΠΎΠ³ΠΎ хостова, који ΠΎΠ±Π΅Π·Π±Π΅Ρ’ΡƒΡ˜Ρƒ ΡšΠΈΡ…ΠΎΠ²Ρƒ Ρ‚ΠΎΠ»Π΅Ρ€Π°Π½Ρ†ΠΈΡ˜Ρƒ Π³Ρ€Π΅ΡˆΠ°ΠΊΠ°. ΠœΠ΅Ρ’ΡƒΡ‚ΠΈΠΌ, Π“Ρ€Π°Ρ„Π°Π½Π° Π·Π°Ρ…Ρ‚Π΅Π²Π° Ρ‚Π°Ρ‡Π½ΠΎ јСдан хост Π·Π° сваку Π±Π°Π·Ρƒ ΠΏΠΎΠ΄Π°Ρ‚Π°ΠΊΠ° са којом Ρ€Π°Π΄ΠΈ. Π”ΡƒΠ³ΠΎ Ρ‡ΠΈΡ‚Π°ΡšΠ΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π° ΠžΠ±Π»Π°Ρ†ΠΈ су ΠΌΠ΅ Π΄ΠΎΠ²Π΅Π»ΠΈ Π΄ΠΎ ΠΎΠ΄Π»ΡƒΠΊΠ΅. Π˜ΡΠΏΠΎΡΡ‚Π°Π²ΠΈΠ»ΠΎ сС Π΄Π° јС Π΄ΠΎΠΌΠ°Ρ›ΠΈΠ½ врстС c-<cluster_id>.rw.mdb.yandexcloud.net ΠΌΠ°ΠΏΠΈΡ€Π°Π½ Π½Π° Ρ‚Ρ€Π΅Π½ΡƒΡ‚Π½ΠΈ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΈ Π³Π»Π°Π²Π½ΠΈ хост кластСра са ΠΎΠ΄Π³ΠΎΠ²Π°Ρ€Π°Ρ˜ΡƒΡ›ΠΈΠΌ Π˜Π”-ΠΎΠΌ. Ово Ρ›Π΅ΠΌΠΎ Π΄Π°Ρ‚ΠΈ Π“Ρ€Π°Ρ„Π°Π½ΠΈ.

Π²Π΅Π± сСрвСр

Π‘Π°Π΄Π° јС Π½Π° Π²Π΅Π± сСрвСру. Π₯ајдС Π΄Π° ΠΏΠΎΠ΄ΠΈΠ³Π½Π΅ΠΌΠΎ ΠΎΠ±ΠΈΡ‡Π½Ρƒ Π²ΠΈΡ€Ρ‚ΡƒΠ΅Π»Π½Ρƒ ΠΌΠ°ΡˆΠΈΠ½Ρƒ са Линуксом ΠΈ Ρ€ΡƒΡ‡Π½ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡˆΠ΅ΠΌΠΎ Π“Ρ€Π°Ρ„Π°Π½Ρƒ Π½Π° њој.

ΠŸΡ€ΠΈΠΌΠ΅Π½Π° дистрибуираних услуга Ρƒ ИандСк.Π¦Π»ΠΎΡƒΠ΄ користСћи Π“Ρ€Π°Ρ„Π°Π½Ρƒ ΠΊΠ°ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€

ΠŸΡ€ΠΈΠΌΠ΅Π½Π° дистрибуираних услуга Ρƒ ИандСк.Π¦Π»ΠΎΡƒΠ΄ користСћи Π“Ρ€Π°Ρ„Π°Π½Ρƒ ΠΊΠ°ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€

ПовСТимо сС ΠΏΡ€Π΅ΠΊΠΎ ссх-Π° ΠΈ инсталирамо ΠΏΠΎΡ‚Ρ€Π΅Π±Π½Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π΅.

sudo apt-get install -y apt-transport-https software-properties-common wget
wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
sudo add-apt-repository "deb https://packages.grafana.com/enterprise/deb stable main"
sudo apt-get update
sudo apt-get install -y grafana-enterprise 

Након Ρ‚ΠΎΠ³Π°, ΠΏΠΎΠΊΡ€Π΅Π½ΠΈΠΌΠΎ Π“Ρ€Π°Ρ„Π°Π½Ρƒ ΠΏΠΎΠ΄ систСмцтл ΠΈ инсталирамо Π΄ΠΎΠ΄Π°Ρ‚Π°ΠΊ Π·Π° Ρ€Π°Π΄ са Π¦Π»ΠΈΡ†ΠΊΠ₯оусС (Π΄Π°, нијС испоручСн Ρƒ основном ΠΏΠ°ΠΊΠ΅Ρ‚Ρƒ).

sudo systemctl start grafana-server
sudo systemctl enable grafana-server
sudo grafana-cli plugins install vertamedia-clickhouse-datasource

Π’ΠΎ јС Ρ‚ΠΎ, Π½Π°ΠΊΠΎΠ½ Ρ‚ΠΎΠ³Π° Ρ˜Π΅Π΄Π½ΠΎΡΡ‚Π°Π²Π½ΠΎΠΌ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΌ

sudo service grafana-server start

ΠΏΠΎΠΊΡ€Π΅Π½ΡƒΡ›Π΅ΠΌΠΎ Π²Π΅Π± сСрвСр. Π‘Π°Π΄Π° ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° унСсСтС спољну ИП адрСсу Π²ΠΈΡ€Ρ‚ΡƒΠ΅Π»Π½Π΅ машинС Ρƒ ΠΏΡ€Π΅Ρ‚Ρ€Π°ΠΆΠΈΠ²Π°Ρ‡, ΠΎΠ΄Ρ€Π΅Π΄ΠΈΡ‚Π΅ ΠΏΠΎΡ€Ρ‚ 3000 ΠΈ Π²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΏΡ€Π΅Π»Π΅ΠΏ Π“Ρ€Π°Ρ„Π°Π½Π° кориснички ΠΈΠ½Ρ‚Π΅Ρ€Ρ„Π΅Ρ˜Ρ.
ΠŸΡ€ΠΈΠΌΠ΅Π½Π° дистрибуираних услуга Ρƒ ИандСк.Π¦Π»ΠΎΡƒΠ΄ користСћи Π“Ρ€Π°Ρ„Π°Π½Ρƒ ΠΊΠ°ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€

Али Π½Π΅ΠΌΠΎΡ˜Ρ‚Π΅ ΠΆΡƒΡ€ΠΈΡ‚ΠΈ, ΠΏΡ€Π΅ Π½Π΅Π³ΠΎ ΡˆΡ‚ΠΎ подСситС Π“Ρ€Π°Ρ„Π°Π½Ρƒ, ΠΌΠΎΡ€Π°Ρ‚Π΅ Π·Π°ΠΏΠ°ΠΌΡ‚ΠΈΡ‚ΠΈ Π΄Π° јој ΠΊΠ°ΠΆΠ΅Ρ‚Π΅ ΠΏΡƒΡ‚Π°ΡšΡƒ Π΄ΠΎ ΠœΠΈΠ‘ΠšΠ›-Π° ΠΊΠ°ΠΊΠΎ бистС Ρ‚Π°ΠΌΠΎ сачували подСшавања.

Π¦Π΅Π»ΠΎΠΊΡƒΠΏΠ½Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ˜Π° Π²Π΅Π± сСрвСра Π“Ρ€Π°Ρ„Π°Π½Π° јС Ρƒ Π΄Π°Ρ‚ΠΎΡ‚Π΅Ρ†ΠΈ /etc/grafana/grafana.ini. ΠŸΠΎΡ‚Ρ€Π΅Π±Π½Π° линија ΠΈΠ·Π³Π»Π΅Π΄Π° ΠΎΠ²Π°ΠΊΠΎ:

;url =

ΠŸΠΎΡΡ‚Π°Π²ΠΈΠ»ΠΈ смо хост Π½Π° ΠœΠΈΠ‘ΠšΠ› кластСр. Π˜ΡΡ‚Π° Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ° садрТи Π»ΠΎΠ³ΠΈΠ½ ΠΈ Π»ΠΎΠ·ΠΈΠ½ΠΊΡƒ Π·Π° приступ Π“Ρ€Π°Ρ„Π°Π½ΠΈ Π½Π° Π³ΠΎΡ€ΡšΠΎΡ˜ слици, којС су ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π½ΠΎ јСднакС admin.

ΠœΠΎΠΆΠ΅Ρ‚Π΅ користити сСд ΠΊΠΎΠΌΠ°Π½Π΄Π΅:

sudo sed -i "s#.*;url =.*#url = mysql://${MYSQL_USERNAME}:${MYSQL_PASSWORD}@${MYSQL_CLUSTER_URI}#" /etc/grafana/grafana.ini
sudo sed -i "s#.*;admin_user =.*#admin_user = ${GRAFANA_USERNAME}#" /etc/grafana/grafana.ini
sudo sed -i "s#.*;admin_password =.*#admin_password = ${GRAFANA_PASSWORD}#" /etc/grafana/grafana.ini

Π’Ρ€Π΅ΠΌΠ΅ јС Π΄Π° ΠΏΠΎΠ½ΠΎΠ²ΠΎ ΠΏΠΎΠΊΡ€Π΅Π½Π΅Ρ‚Π΅ Π²Π΅Π± сСрвСр!

sudo service grafana-server restart

Π‘Π°Π΄Π° Ρ›Π΅ΠΌΠΎ Ρƒ корисничком ΠΈΠ½Ρ‚Π΅Ρ€Ρ„Π΅Ρ˜ΡΡƒ Π“Ρ€Π°Ρ„Π°Π½Π΅ навСсти Π¦Π»ΠΈΡ†ΠΊΠ₯оусС ΠΊΠ°ΠΎ ΠΈΠ·Π²ΠΎΡ€ ΠΏΠΎΠ΄Π°Ρ‚Π°ΠΊΠ°.

УспСо сам Π΄Π° постигнСм Ρ€Π°Π΄Π½Ρƒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ˜Ρƒ са слСдСћим подСшавањима:

ΠŸΡ€ΠΈΠΌΠ΅Π½Π° дистрибуираних услуга Ρƒ ИандСк.Π¦Π»ΠΎΡƒΠ΄ користСћи Π“Ρ€Π°Ρ„Π°Π½Ρƒ ΠΊΠ°ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€

НавСо сам ΠΊΠ°ΠΎ Π£Π Π› https://c-<cluster_id>.rw.mdb.yandexcloud.net:8443

Π‘Π²Π΅! Имамо Ρ˜Π΅Π΄Π½Ρƒ Ρ€Π°Π΄Π½Ρƒ Π²ΠΈΡ€Ρ‚ΡƒΠ΅Π»Π½Ρƒ ΠΌΠ°ΡˆΠΈΠ½Ρƒ са Π²Π΅Π± сСрвСром ΠΏΠΎΠ²Π΅Π·Π°Π½ΠΈΠΌ Π½Π° Π¦Π₯ ΠΈ ΠœΠΈΠ‘ΠšΠ›. Π’Π΅Ρ› ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ΠΎΡ‚ΠΏΡ€Π΅ΠΌΠΈΡ‚Π΅ скуп ΠΏΠΎΠ΄Π°Ρ‚Π°ΠΊΠ° Ρƒ Π¦Π»ΠΈΡ†ΠΊΠ₯оусС ΠΈ Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚Π΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½Π΅ Ρ‚Π°Π±Π»Π΅. ΠœΠ΅Ρ’ΡƒΡ‚ΠΈΠΌ, још нисмо постигли свој Ρ†ΠΈΡ™ ΠΈ нисмо Ρ€Π°Π·Π²ΠΈΠ»ΠΈ ΠΏΡƒΠ½ΠΎΠΏΡ€Π°Π²Π½Ρƒ инфраструктуру.

ΠŸΠ°Ρ†ΠΊΠ΅Ρ€

ИандСк.Π¦Π»ΠΎΡƒΠ΄ Π²Π°ΠΌ ΠΎΠΌΠΎΠ³ΡƒΡ›Π°Π²Π° Π΄Π° ΠΊΡ€Π΅ΠΈΡ€Π°Ρ‚Π΅ слику диска ΠΏΠΎΡΡ‚ΠΎΡ˜Π΅Ρ›Π΅ Π²ΠΈΡ€Ρ‚ΡƒΠ΅Π»Π½Π΅ машинС, Π° Π½Π° њСној основи - Π±ΠΈΠ»ΠΎ који Π±Ρ€ΠΎΡ˜ машина ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½ΠΈΡ… јСдна Π΄Ρ€ΡƒΠ³ΠΎΡ˜. Π’ΠΎ јС ΡƒΠΏΡ€Π°Π²ΠΎ ΠΎΠ½ΠΎ ΡˆΡ‚ΠΎ Ρ›Π΅ΠΌΠΎ користити. Π”Π° бистС Π·Π³ΠΎΠ΄Π½ΠΎ саставили слику, ΡƒΠ·ΠΌΠΈΡ‚Π΅ Π°Π»Π°Ρ‚ ΠŸΠ°Ρ†ΠΊΠ΅Ρ€ ΠΎΠ΄ Π₯асхиЦорп. Као ΡƒΠ»Π°Π· ΡƒΠ·ΠΈΠΌΠ° јсон Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΡƒ са упутствима Π·Π° ΡΠ°ΡΡ‚Π°Π²Ρ™Π°ΡšΠ΅ сликС.

Наша јсон Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ° Ρ›Π΅ сС ΡΠ°ΡΡ‚ΠΎΡ˜Π°Ρ‚ΠΈ ΠΎΠ΄ Π΄Π²Π° Π±Π»ΠΎΠΊΠ°: Π³Ρ€Π°Π΄ΠΈΡ‚Π΅Ρ™Π° ΠΈ ΠΏΡ€ΠΎΠ²Π°Ρ˜Π΄Π΅Ρ€Π°. ΠŸΡ€Π²ΠΈ Π±Π»ΠΎΠΊ ΠΎΠΏΠΈΡΡƒΡ˜Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅ самС сликС ΠΊΠ°ΠΎ Ρ†Π΅Π»ΠΈΠ½Π΅, Π° Π΄Ρ€ΡƒΠ³ΠΈ Π±Π»ΠΎΠΊ ΠΎΠΏΠΈΡΡƒΡ˜Π΅ упутства Π·Π° њСно ΠΏΠΎΠΏΡƒΡšΠ°Π²Π°ΡšΠ΅ ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΈΠΌ ΡΠ°Π΄Ρ€ΠΆΠ°Ρ˜Π΅ΠΌ.

Π³Ρ€Π°Π΄ΠΈΡ‚Π΅Ρ™ΠΈ

{
"builders": [
    {
      "type": "yandex",
      "endpoint": "{{user `endpoint`}}",
      "folder_id": "<folder_id>",
      "subnet_id": "{{user `subnet_id`}}",
      "zone": "{{user `zone`}}",
      "labels": {},
      "use_ipv4_nat": true,
      "use_internal_ip": false,
      "service_account_key_file": "<service_account_key_file>",
      "image_name": "grafana-{{timestamp}}",
      "image_family": "grafana",
      "image_labels": {},
      "image_description": "GRAFANA",
      "source_image_family": "ubuntu-1804-lts",
      "disk_size_gb": 3,
      "disk_type": "network-hdd",
      "ssh_username": "ubuntu"
    }
  ],
...
}

Π£ ΠΎΠ²ΠΎΠΌ ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎ јС Π΄Π° подСситС ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΎΠ΄Π΅Ρ™ΠΊΠ° Ρƒ ΠΎΠ±Π»Π°ΠΊΡƒ Π³Π΄Π΅ ΠΆΠ΅Π»ΠΈΡ‚Π΅ Π΄Π° ΠΊΡ€Π΅ΠΈΡ€Π°Ρ‚Π΅ слику, ΠΊΠ°ΠΎ ΠΈ ΠΏΡƒΡ‚Π°ΡšΡƒ Π΄ΠΎ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ΅ са ΠΊΡ™ΡƒΡ‡Π΅Π²ΠΈΠΌΠ° са Π½Π°Π»ΠΎΠ³Π° услугС који јС ΠΏΡ€Π΅Ρ‚Ρ…ΠΎΠ΄Π½ΠΎ ΠΊΡ€Π΅ΠΈΡ€Π°Π½ Ρƒ ΠΎΠ²ΠΎΠΌ ΠΎΠ΄Π΅Ρ™ΠΊΡƒ. Π’ΠΈΡˆΠ΅ ΠΎ ΠΊΡ€Π΅ΠΈΡ€Π°ΡšΡƒ сСрвисних Π½Π°Π»ΠΎΠ³Π° ΠΈ ΠΊΡ™ΡƒΡ‡Π΅Π²Π° Ρƒ ΠΎΠ±Π»ΠΈΠΊΡƒ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΠΈ Ρƒ ΠΎΠ΄Π³ΠΎΠ²Π°Ρ€Π°Ρ˜ΡƒΡ›Π΅ΠΌ ΠΎΠ΄Π΅Ρ™ΠΊΡƒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π°.

Ова ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ˜Π° ΠΊΠ°ΠΆΠ΅ Π΄Π° Ρ›Π΅ слика диска Π±ΠΈΡ‚ΠΈ Π½Π°ΠΏΡ€Π°Π²Ρ™Π΅Π½Π° Π½Π° основу ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ ubuntu-1804-lts, постављСн Ρƒ ΠΎΠ΄Π³ΠΎΠ²Π°Ρ€Π°Ρ˜ΡƒΡ›ΠΈ кориснички ΠΎΠ΄Π΅Ρ™Π°ΠΊ Ρƒ ΠΏΠΎΡ€ΠΎΠ΄ΠΈΡ†ΠΈ слика GRAFANA ΠΏΠΎΠ΄ Π½Π°Π·ΠΈΠ²ΠΎΠΌ grafana-{{timestamp}}.

ΠŸΡ€ΠΎΠ²ΠΈΡΠΈΠΎΠ½Π΅Ρ€Ρ

Π‘Π°Π΄Π° Π΄ΠΎΠ»Π°Π·ΠΈ Π·Π°Π½ΠΈΠΌΡ™ΠΈΠ²ΠΈΡ˜ΠΈ Π΄Π΅ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ˜Π΅. Он Ρ›Π΅ описати рСдослСд Ρ€Π°Π΄ΡšΠΈ којС Ρ›Π΅ ΠΌΠΎΡ€Π°Ρ‚ΠΈ Π΄Π° сС ΠΈΠ·Π²Ρ€ΡˆΠ΅ Π½Π° Π²ΠΈΡ€Ρ‚ΡƒΠ΅Π»Π½ΠΎΡ˜ машини ΠΏΡ€Π΅ Π·Π°ΠΌΡ€Π·Π°Π²Π°ΡšΠ° њСног ΡΡ‚Π°ΡšΠ° Ρƒ слику диска.

{
...,
"provisioners": [
    {
            "type": "shell",
            "pause_before": "5s",
            "scripts": [
                "prepare-ctg.sh"
            ]
        },
    {
            "type": "file",
            "source": "setup.sh",
            "destination": "/opt/grafana/setup.sh"
        },
        {
            "type": "shell",
        "execute_command": "sudo {{ .Vars }} bash '{{ .Path }}'",
            "pause_before": "5s",
            "scripts": [
                "install-packages.sh",
                "grafana-setup.sh",
                "run-setup-at-reboot.sh"
        ]
        }
  ]
}

ОвдС су свС Π°ΠΊΡ†ΠΈΡ˜Π΅ ΠΏΠΎΠ΄Π΅Ρ™Π΅Π½Π΅ Ρƒ 3 Ρ„Π°Π·Π΅. Π£ ΠΏΡ€Π²ΠΎΡ˜ Ρ„Π°Π·ΠΈ сС ΠΈΠ·Π²Ρ€ΡˆΠ°Π²Π° Ρ˜Π΅Π΄Π½ΠΎΡΡ‚Π°Π²Π½Π° скрипта која ΠΊΡ€Π΅ΠΈΡ€Π° ΠΏΠΎΠΌΠΎΡ›Π½ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡ˜ΡƒΠΌ.

ΠΏΡ€ΠΈΠΏΡ€Π΅ΠΌΠΈ-Ρ†Ρ‚Π³.сх:

#!/bin/bash
sudo mkdir -p /opt/grafana
sudo chown -R ubuntu:ubuntu /opt/grafana

Π£ ΡΠ»Π΅Π΄Π΅Ρ›ΠΎΡ˜ Ρ„Π°Π·ΠΈ постављамо скрипту Ρƒ овај Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡ˜ΡƒΠΌ, која Ρ›Π΅ ΠΌΠΎΡ€Π°Ρ‚ΠΈ Π΄Π° сС ΠΏΠΎΠΊΡ€Π΅Π½Π΅ ΠΎΠ΄ΠΌΠ°Ρ… Π½Π°ΠΊΠΎΠ½ ΠΏΠΎΠΊΡ€Π΅Ρ‚Π°ΡšΠ° Π²ΠΈΡ€Ρ‚ΡƒΠ΅Π»Π½Π΅ машинС. Ова скрипта Ρ›Π΅ поставити корисничкС Π²Π°Ρ€ΠΈΡ˜Π°Π±Π»Π΅ којС Ρ‚Ρ€Π΅Π±Π° рСгистровати Ρƒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ˜Ρƒ Π“Ρ€Π°Ρ„Π°Π½Π΅ ΠΈ ΠΏΠΎΠ½ΠΎΠ²ΠΎ ΠΏΠΎΠΊΡ€Π΅Π½ΡƒΡ‚ΠΈ Π²Π΅Π± сСрвСр.

сСтуп.сх:

#!/bin/bash
CLUSTER_ID="<cluster_id>"
USERNAME="<username>"
PASSWORD="<password>"
sudo sed -i "s#.*;url =.*#url = mysql://${USERNAME}:${PASSWORD}@c-${CLUSTER_ID}.rw.mdb.yandexcloud.net#" /etc/grafana/grafana.ini
sudo sed -i "s#.*;admin_user =.*#admin_user = ${USERNAME}#" /etc/grafana/grafana.ini
sudo sed -i "s#.*;admin_password =.*#admin_password = ${PASSWORD}#" /etc/grafana/grafana.ini
sudo service grafana-server restart

Након ΠΎΠ²ΠΎΠ³Π° ΠΏΡ€Π΅ΠΎΡΡ‚Π°Ρ˜Ρƒ још 3 ствари:
1) ΠΈΠ½ΡΡ‚Π°Π»ΠΈΡ€Π°Ρ˜Ρ‚Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π΅
2) ΠΏΠΎΠΊΡ€Π΅Π½ΠΈΡ‚Π΅ Π“Ρ€Π°Ρ„Π°Π½Π° ΠΏΠΎΠ΄ систСмцтл ΠΈ ΠΈΠ½ΡΡ‚Π°Π»ΠΈΡ€Π°Ρ˜Ρ‚Π΅ Π¦Π»ΠΈΡ†ΠΊΠ₯оусС Π΄ΠΎΠ΄Π°Ρ‚Π°ΠΊ
3) ставитС сСтуп.сх скрипту Ρƒ Ρ€Π΅Π΄ Π·Π° ΠΏΠΎΠΊΡ€Π΅Ρ‚Π°ΡšΠ΅ ΠΎΠ΄ΠΌΠ°Ρ… Π½Π°ΠΊΠΎΠ½ ΡƒΠΊΡ™ΡƒΡ‡ΠΈΠ²Π°ΡšΠ° Π²ΠΈΡ€Ρ‚ΡƒΠ΅Π»Π½Π΅ машинС.

инсталл-пацкагСс.сх:

#!/bin/bash
sudo systemd-run --property='After=apt-daily.service apt-daily-upgrade.service' --wait /bin/true
sudo apt-get install -y apt-transport-https
sudo apt-get install -y software-properties-common wget
wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
sudo add-apt-repository "deb https://packages.grafana.com/enterprise/deb stable main"
sudo apt-get update
sudo apt-get install -y grafana-enterprise 

Π³Ρ€Π°Ρ„Π°Π½Π°-сСтуп.сх:

#!/bin/bash
sudo systemctl start grafana-server
sudo systemctl enable grafana-server
sudo grafana-cli plugins install vertamedia-clickhouse-datasource

Ρ€ΡƒΠ½-сСтуп-Π°Ρ‚-Ρ€Π΅Π±ΠΎΠΎΡ‚.сх:

#!/bin/bash
chmod +x /opt/grafana/setup.sh
cat > /etc/cron.d/first-boot <<EOF
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
@reboot root /bin/bash /opt/grafana/setup.sh > /var/log/yc-setup.log 2>&1
EOF
chmod +x /etc/cron.d/first-boot;

Π‘Π°Π΄Π° ΠΎΡΡ‚Π°Ρ˜Π΅ само Π΄Π° ΠΏΠΎΠΊΡ€Π΅Π½Π΅Ρ‚Π΅ ΠŸΠ°Ρ†ΠΊΠ΅Ρ€ ΠΈ Π΄ΠΎΠ±ΠΈΡ˜Π΅Ρ‚Π΅ ΠΈΠ·Π»Π°Π·Π½Ρƒ слику постављСну Ρƒ Π½Π°Π²Π΅Π΄Π΅Π½ΠΈ ΠΎΠ΄Π΅Ρ™Π°ΠΊ. Када ΠΊΡ€Π΅ΠΈΡ€Π°Ρ‚Π΅ Π²ΠΈΡ€Ρ‚ΡƒΠ΅Π»Π½Ρƒ ΠΌΠ°ΡˆΠΈΠ½Ρƒ, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° јС ΠΈΠ·Π°Π±Π΅Ρ€Π΅Ρ‚Π΅ ΠΊΠ°ΠΎ диск Π·Π° ΠΏΠΎΠΊΡ€Π΅Ρ‚Π°ΡšΠ΅ ΠΈ Π½Π°ΠΊΠΎΠ½ ΠΏΠΎΠΊΡ€Π΅Ρ‚Π°ΡšΠ° Π΄ΠΎΠ±ΠΈΡ›Π΅Ρ‚Π΅ Π³ΠΎΡ‚ΠΎΠ² Π“Ρ€Π°Ρ„Π°Π½Π° Π²Π΅Π± сСрвСр.

ΠŸΡ€ΠΈΠΌΠ΅Π½Π° дистрибуираних услуга Ρƒ ИандСк.Π¦Π»ΠΎΡƒΠ΄ користСћи Π“Ρ€Π°Ρ„Π°Π½Ρƒ ΠΊΠ°ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€
ΠŸΡ€ΠΈΠΌΠ΅Π½Π° дистрибуираних услуга Ρƒ ИандСк.Π¦Π»ΠΎΡƒΠ΄ користСћи Π“Ρ€Π°Ρ„Π°Π½Ρƒ ΠΊΠ°ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€

Π“Ρ€ΡƒΠΏΠ° инстанци ΠΈ балансСр

Када ΠΈΠΌΠ°ΠΌΠΎ слику диска која Π½Π°ΠΌ ΠΎΠΌΠΎΠ³ΡƒΡ›Π°Π²Π° Π΄Π° ΠΊΡ€Π΅ΠΈΡ€Π°ΠΌΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½ΠΈΡ… Π“Ρ€Π°Ρ„Π°Π½Π° Π²Π΅Π± сСрвСра, ΠΌΠΎΠΆΠ΅ΠΌΠΎ Π΄Π° ΠΊΡ€Π΅ΠΈΡ€Π°ΠΌΠΎ Π³Ρ€ΡƒΠΏΡƒ инстанци. На ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΈ ИандСк.Π¦Π»ΠΎΡƒΠ΄, овај Ρ‚Π΅Ρ€ΠΌΠΈΠ½ сС односи Π½Π° ΡƒΠ½ΠΈΡ˜Ρƒ Π²ΠΈΡ€Ρ‚ΡƒΠ΅Π»Π½ΠΈΡ… машина којС ΠΈΠΌΠ°Ρ˜Ρƒ истС карактСристикС. ΠŸΡ€ΠΈΠ»ΠΈΠΊΠΎΠΌ ΠΊΡ€Π΅ΠΈΡ€Π°ΡšΠ° Π³Ρ€ΡƒΠΏΠ΅ инстанцС, ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡˆΠ΅ сС ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏ свих машина Ρƒ овој Π³Ρ€ΡƒΠΏΠΈ, Π° Π·Π°Ρ‚ΠΈΠΌ ΠΈ карактСристикС самС Π³Ρ€ΡƒΠΏΠ΅ (Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΈ ΠΈ максимални Π±Ρ€ΠΎΡ˜ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΈΡ… машина). Ако Ρ‚Ρ€Π΅Π½ΡƒΡ‚Π½ΠΈ Π±Ρ€ΠΎΡ˜ Π½Π΅ ΠΈΡΠΏΡƒΡšΠ°Π²Π° ΠΎΠ²Π΅ ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΡ˜ΡƒΠΌΠ΅, Π³Ρ€ΡƒΠΏΠ° инстанци Ρ›Π΅ сама ΡƒΠΊΠ»ΠΎΠ½ΠΈΡ‚ΠΈ Π½Π΅ΠΏΠΎΡ‚Ρ€Π΅Π±Π½Π΅ машинС ΠΈΠ»ΠΈ ΠΊΡ€Π΅ΠΈΡ€Π°Ρ‚ΠΈ Π½ΠΎΠ²Π΅ ΠΏΠΎ ΡΠΎΠΏΡΡ‚Π²Π΅Π½ΠΎΡ˜ слици.

Као Π΄Π΅ΠΎ нашСг Π·Π°Π΄Π°Ρ‚ΠΊΠ°, ΠΊΡ€Π΅ΠΈΡ€Π°Ρ›Π΅ΠΌΠΎ Π³Ρ€ΡƒΠΏΡƒ инстанци Π²Π΅Π± сСрвСра која Ρ›Π΅ Π±ΠΈΡ‚ΠΈ гСнСрисана ΠΈΠ· ΠΏΡ€Π΅Ρ‚Ρ…ΠΎΠ΄Π½ΠΎ ΠΊΡ€Π΅ΠΈΡ€Π°Π½Π΅ сликС диска.

ΠŸΡ€ΠΈΠΌΠ΅Π½Π° дистрибуираних услуга Ρƒ ИандСк.Π¦Π»ΠΎΡƒΠ΄ користСћи Π“Ρ€Π°Ρ„Π°Π½Ρƒ ΠΊΠ°ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€

ΠŸΡ€ΠΈΠΌΠ΅Π½Π° дистрибуираних услуга Ρƒ ИандСк.Π¦Π»ΠΎΡƒΠ΄ користСћи Π“Ρ€Π°Ρ„Π°Π½Ρƒ ΠΊΠ°ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€

Оно ΡˆΡ‚ΠΎ јС заиста ΠΈΠ·Π²Π°Π½Ρ€Π΅Π΄Π½ΠΎ јС подСшавањС Π³Ρ€ΡƒΠΏΠ΅ послСдњС инстанцС. Π¦ΠΈΡ™Π½Π° Π³Ρ€ΡƒΠΏΠ° Ρƒ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ˜ΠΈ са Π›ΠΎΠ°Π΄ Π‘Π°Π»Π°Π½Ρ†Π΅Ρ€ΠΎΠΌ Ρ›Π΅ Π²Π°ΠΌ ΠΏΠΎΠΌΠΎΡ›ΠΈ Π΄Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡˆΠ΅Ρ‚Π΅ Π›3 балансСр Π½Π° Π²Ρ€Ρ…Ρƒ Π²ΠΈΡ€Ρ‚ΡƒΠ΅Π»Π½ΠΈΡ… машина ΠΎΠ²Π΅ Π³Ρ€ΡƒΠΏΠ΅ ΠΊΠ»ΠΈΠΊΠΎΠΌ Π½Π° Π½Π΅ΠΊΠΎΠ»ΠΈΠΊΠΎ Π΄ΡƒΠ³ΠΌΠ°Π΄ΠΈ.

ΠŸΡ€ΠΈΠΌΠ΅Π½Π° дистрибуираних услуга Ρƒ ИандСк.Π¦Π»ΠΎΡƒΠ΄ користСћи Π“Ρ€Π°Ρ„Π°Π½Ρƒ ΠΊΠ°ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€

ΠŸΡ€ΠΈΠ»ΠΈΠΊΠΎΠΌ подСшавања балансСра ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΎ сам Π΄Π²Π΅ Π²Π°ΠΆΠ½Π΅ Ρ‚Π°Ρ‡ΠΊΠ΅:

  1. НатСрао сам балансСр Π΄Π° ΠΏΡ€ΠΈΡ…Π²Π°Ρ‚ΠΈ кориснички ΡΠ°ΠΎΠ±Ρ€Π°Ρ›Π°Ρ˜ Π½Π° ΠΏΠΎΡ€Ρ‚Ρƒ 80 ΠΈ прСусмСрио Π³Π° Π½Π° ΠΏΠΎΡ€Ρ‚ 3000 Π²ΠΈΡ€Ρ‚ΡƒΠ΅Π»Π½ΠΈΡ… машина, Ρ‚Π°Ρ‡Π½ΠΎ Ρ‚Π°ΠΌΠΎ Π³Π΄Π΅ ΠΆΠΈΠ²ΠΈ Π“Ρ€Π°Ρ„Π°Π½Π°.
  2. ΠŸΠΎΡΡ‚Π°Π²ΠΈΠΎ сам ΠΏΡ€ΠΎΠ²Π΅Ρ€Ρƒ одрТивости машина Ρ‚Π°ΠΊΠΎ ΡˆΡ‚ΠΎ сам ΠΈΡ… ΠΏΠΈΠ½Π³ΠΎΠ²Π°ΠΎ Π½Π° ΠΏΠΎΡ€Ρ‚ 3000.

ΠŸΡ€ΠΈΠΌΠ΅Π½Π° дистрибуираних услуга Ρƒ ИандСк.Π¦Π»ΠΎΡƒΠ΄ користСћи Π“Ρ€Π°Ρ„Π°Π½Ρƒ ΠΊΠ°ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€

Мини Ρ€Π΅Π·ΠΈΠΌΠ΅

ΠšΠΎΠ½Π°Ρ‡Π½ΠΎ, успСли смо Π΄Π° Ρ€ΡƒΡ‡Π½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΠΎ ΠΆΠ΅Ρ™Π΅Π½Ρƒ инфраструктуру Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π° ΠΈ сада ΠΈΠΌΠ°ΠΌΠΎ Π²Π΅ΠΎΠΌΠ° ΠΎΡ‚ΠΏΠΎΡ€Π½Ρƒ услугу Π“Ρ€Π°Ρ„Π°Π½Π°. ΠŸΠΎΡ‚Ρ€Π΅Π±Π½ΠΎ јС само Π΄Π° Π·Π½Π°Ρ‚Π΅ ИП адрСсу балансСра ΠΊΠ°ΠΎ ΡƒΠ»Π°Π·Π½Π΅ Ρ‚Π°Ρ‡ΠΊΠ΅ Ρƒ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Ρƒ ΠΈ Π΄ΠΎΠΌΠ°Ρ›ΠΈΠ½Π° Π¦Π»ΠΈΡ†ΠΊΠ₯оусС кластСра Π΄Π° бистС Ρƒ њСга ΡƒΡ‡ΠΈΡ‚Π°Π»ΠΈ скуп ΠΏΠΎΠ΄Π°Ρ‚Π°ΠΊΠ°.

Π”Π΅Π»ΠΎΠ²Π°Π»ΠΎ Π±ΠΈ ΠΊΠ°ΠΎ ΠΏΠΎΠ±Π΅Π΄Π°? Π”Π°, ΠΏΠΎΠ±Π΅Π΄Π°. Али Π½Π΅ΡˆΡ‚ΠΎ ΠΌΠ΅ ΠΈΠΏΠ°ΠΊ Π·Π±ΡƒΡšΡƒΡ˜Π΅. Π¦Π΅ΠΎ Π³ΠΎΡ€Π΅Π½Π°Π²Π΅Π΄Π΅Π½ΠΈ процСс Π·Π°Ρ…Ρ‚Π΅Π²Π° ΠΌΠ½ΠΎΠ³ΠΎ Ρ€ΡƒΡ‡Π½ΠΈΡ… ΠΊΠΎΡ€Π°ΠΊΠ° ΠΈ ΡƒΠΎΠΏΡˆΡ‚Π΅ нијС скалабилан; ΠΆΠ΅Π»Π΅ΠΎ Π±ΠΈΡ… Π΄Π° Π³Π° Π°ΡƒΡ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΡƒΡ˜Π΅ΠΌ Π°ΠΊΠΎ јС ΠΌΠΎΠ³ΡƒΡ›Π΅. Π’ΠΎΠΌΠ΅ Ρ›Π΅ Π±ΠΈΡ‚ΠΈ посвСћСн слСдСћи ΠΎΠ΄Π΅Ρ™Π°ΠΊ.

Π’Π΅Ρ€Ρ€Π°Ρ„ΠΎΡ€ΠΌ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ˜Π°

Поново Ρ›Π΅ΠΌΠΎ користити Π°Π»Π°Ρ‚ΠΊΡƒ компанијС Π₯асхиЦорп ΠΏΠΎΠ΄ Π½Π°Π·ΠΈΠ²ΠΎΠΌ Π’Π΅Ρ€Ρ€Π°Ρ„ΠΎΡ€ΠΌ. ΠŸΠΎΠΌΠΎΡ›ΠΈ Ρ›Π΅ Π²Π°ΠΌ Π΄Π° ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚Π΅ Ρ†Π΅Π»ΠΎΠΊΡƒΠΏΠ½Ρƒ инфраструктуру Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π΅ јСдним ΠΊΠ»ΠΈΠΊΠΎΠΌ Π½Π° Π΄ΡƒΠ³ΠΌΠ΅, Π½Π° основу Π½Π΅ΠΊΠΎΠ»ΠΈΠΊΠΎ ΠΏΡ€ΠΎΠΌΠ΅Π½Ρ™ΠΈΠ²ΠΈΡ… којС јС корисник прослСдио. Π₯ајдС Π΄Π° напишСмо Ρ€Π΅Ρ†Π΅ΠΏΡ‚ који сС ΠΌΠΎΠΆΠ΅ ΠΏΠΎΠΊΡ€Π΅Π½ΡƒΡ‚ΠΈ вишС ΠΏΡƒΡ‚Π° Ρƒ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΡ‚ΠΈΠΌ ΠΎΠ΄Π΅Ρ™Ρ†ΠΈΠΌΠ° Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΡ‚ΠΈΡ… корисника.

Π‘Π°Π² Ρ€Π°Π΄ са Π’Π΅Ρ€Ρ€Π°Ρ„ΠΎΡ€ΠΌΠΎΠΌ своди сС Π½Π° писањС ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π΅ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ΅ (*.tf) ΠΈ ΡΡ‚Π²Π°Ρ€Π°ΡšΠ΅ инфраструктурС Π½Π° основу Ρ‚ΠΎΠ³Π°.

ΠŸΡ€ΠΎΠΌΠ΅Π½Ρ™ΠΈΠ²Π΅

На самом ΠΏΠΎΡ‡Π΅Ρ‚ΠΊΡƒ Ρ„Π°Ρ˜Π»Π° Ρ›Π΅ΠΌΠΎ ΡƒΠΊΡ™ΡƒΡ‡ΠΈΡ‚ΠΈ Π²Π°Ρ€ΠΈΡ˜Π°Π±Π»Π΅ којС ΠΎΠ΄Ρ€Π΅Ρ’ΡƒΡ˜Ρƒ Π³Π΄Π΅ ΠΈ ΠΊΠ°ΠΊΠΎ Ρ›Π΅ Π±ΡƒΠ΄ΡƒΡ›Π° инфраструктура Π±ΠΈΡ‚ΠΈ распорСђСна.

variable "oauth_token" {
    type = string
    default = "<oauth-token>"
}
variable "cloud_id" {
    type = string
    default = "<cloud-id>"
}
variable "folder_id" {
    type = string
    default = "<folder_id>"
}
variable "service_account_id" {
    type = string
    default = "<service_account_id>"
}
variable "image_id" {
    type = string
    default = "<image_id>"
}
variable "username" {
    type = string
    default = "<username>"
}
variable "password" {
    type = string
    default = "<password>"
}
variable "dbname" {
    type = string
    default = "<dbname>"
}
variable "public_key_path" {
    type = string
    default = "<path to ssh public key>"
}

Π¦Π΅ΠΎ процСс ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π΅ Ρ›Π΅ сС свСсти Π½Π° ΠΏΡ€Π°Π²Ρ™Π΅ΡšΠ΅ сликС диска ΠΈ подСшавањС ΠΎΠ²ΠΈΡ… ΠΏΡ€ΠΎΠΌΠ΅Π½Ρ™ΠΈΠ²ΠΈΡ…. Π”ΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚Π΅ ΠΌΠΈ Π΄Π° објасним Π·Π° ΡˆΡ‚Π° су ΠΎΠ΄Π³ΠΎΠ²ΠΎΡ€Π½ΠΈ:

ΠΎΠ°ΡƒΡ‚Ρ…_Ρ‚ΠΎΠΊΠ΅Π½ β€” Ρ‚ΠΎΠΊΠ΅Π½ Π·Π° приступ ΠΎΠ±Π»Π°ΠΊΡƒ. МоТС сС Π΄ΠΎΠ±ΠΈΡ‚ΠΈ ΠΎΠ΄ Π²Π΅Π·Π°.
Ρ†Π»ΠΎΡƒΠ΄_ΠΈΠ΄ β€” ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΎΠ±Π»Π°ΠΊΠ° Π³Π΄Π΅ Ρ›Π΅ΠΌΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΠΈ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Ρƒ
Ρ„ΠΎΠ»Π΄Π΅Ρ€_ΠΈΠ΄ β€” ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΎΠ΄Π΅Ρ™ΠΊΠ° Π³Π΄Π΅ Ρ›Π΅ΠΌΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΠΈ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Ρƒ
сСрвицС_Π°Ρ†Ρ†ΠΎΡƒΠ½Ρ‚_ΠΈΠ΄ β€” ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π½Π°Π»ΠΎΠ³Π° услугС Ρƒ ΠΎΠ΄Π³ΠΎΠ²Π°Ρ€Π°Ρ˜ΡƒΡ›Π΅ΠΌ Π΄Π΅Π»Ρƒ ΠΎΠ±Π»Π°ΠΊΠ°.
ΠΈΠΌΠ°Π³Π΅_ΠΈΠ΄ β€” ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ сликС диска добијСног ΠΊΠΎΡ€ΠΈΡˆΡ›Π΅ΡšΠ΅ΠΌ ΠŸΠ°Ρ†ΠΊΠ΅Ρ€-Π°
корисничко ΠΈΠΌΠ΅ ΠΈ Π»ΠΎΠ·ΠΈΠ½ΠΊΠ° β€” корисничко ΠΈΠΌΠ΅ ΠΈ Π»ΠΎΠ·ΠΈΠ½ΠΊΠ° Π·Π° приступ ΠΈ Π±Π°Π·Π°ΠΌΠ° ΠΏΠΎΠ΄Π°Ρ‚Π°ΠΊΠ° ΠΈ Π²Π΅Π± сСрвСру Π“Ρ€Π°Ρ„Π°Π½Π°
Π΄Π±Π½Π°ΠΌΠ΅ β€” ΠΈΠΌΠ΅ Π±Π°Π·Π΅ ΠΏΠΎΠ΄Π°Ρ‚Π°ΠΊΠ° ΡƒΠ½ΡƒΡ‚Π°Ρ€ Π¦Π₯ ΠΈ ΠœΠΈΠ‘ΠšΠ› кластСра
ΠΏΡƒΠ±Π»ΠΈΡ†_ΠΊΠ΅ΠΈ_ΠΏΠ°Ρ‚Ρ… β€” ΠΏΡƒΡ‚Π°ΡšΡƒ Π΄ΠΎ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ΅ са вашим јавним ссх ΠΊΡ™ΡƒΡ‡Π΅ΠΌ, који ΠΌΠΎΠΆΠ΅Ρ‚Π΅ користити Π·Π° повСзивањС ΠΏΠΎΠ΄ ΠΈΠΌΠ΅Π½ΠΎΠΌ ubuntu Π½Π° Π²ΠΈΡ€Ρ‚ΡƒΠ΅Π»Π½Π΅ машинС са Π²Π΅Π± сСрвСрима

ПодСшавањС ΠΏΡ€ΠΎΠ²Π°Ρ˜Π΄Π΅Ρ€Π°

Π‘Π°Π΄Π° ΠΌΠΎΡ€Π°Ρ‚Π΅ Π΄Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡˆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ²Π°Ρ˜Π΄Π΅Ρ€Π° Π’Π΅Ρ€Ρ€Π°Ρ„ΠΎΡ€ΠΌ - Ρƒ нашСм ΡΠ»ΡƒΡ‡Π°Ρ˜Ρƒ, ИандСк:

provider "yandex" {
  token     = var.oauth_token
  cloud_id  = var.cloud_id
  folder_id = var.folder_id
  zone      = "ru-central1-a"
}

ΠŸΡ€ΠΈΠΌΠ΅Ρ‚ΠΈΡ›Π΅Ρ‚Π΅ Π΄Π° ΠΎΠ²Π΄Π΅ користимо ΠΏΡ€ΠΎΠΌΠ΅Π½Ρ™ΠΈΠ²Π΅ дСфинисанС ΠΈΠ·Π½Π°Π΄.

ΠœΡ€Π΅ΠΆΠ° ΠΈ кластСри

Π‘Π°Π΄Π° Ρ›Π΅ΠΌΠΎ Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚ΠΈ ΠΌΡ€Π΅ΠΆΡƒ Ρƒ којој Ρ›Π΅ ΠΊΠΎΠΌΡƒΠ½ΠΈΡ†ΠΈΡ€Π°Ρ‚ΠΈ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈ нашС инфраструктурС, Ρ‚Ρ€ΠΈ ΠΏΠΎΠ΄ΠΌΡ€Π΅ΠΆΠ΅ (ΠΏΠΎ јСдна Ρƒ сваком Ρ€Π΅Π³ΠΈΠΎΠ½Ρƒ) ΠΈ ΠΏΠΎΠ΄ΠΈΡ›ΠΈ Π¦Π₯ ΠΈ ΠœΠΈΠ‘ΠšΠ› кластСрС.


resource "yandex_vpc_network" "grafana_network" {}

resource "yandex_vpc_subnet" "subnet_a" {
  zone           = "ru-central1-a"
  network_id     = yandex_vpc_network.grafana_network.id
  v4_cidr_blocks = ["10.1.0.0/24"]
}

resource "yandex_vpc_subnet" "subnet_b" {
  zone           = "ru-central1-b"
  network_id     = yandex_vpc_network.grafana_network.id
  v4_cidr_blocks = ["10.2.0.0/24"]
}

resource "yandex_vpc_subnet" "subnet_c" {
  zone           = "ru-central1-c"
  network_id     = yandex_vpc_network.grafana_network.id
  v4_cidr_blocks = ["10.3.0.0/24"]
}

resource "yandex_mdb_clickhouse_cluster" "ch_cluster" {
  name        = "grafana-clickhouse"
  environment = "PRODUCTION"
  network_id  = yandex_vpc_network.grafana_network.id

  clickhouse {
    resources {
      resource_preset_id = "s2.micro"
      disk_type_id       = "network-ssd"
      disk_size          = 16
    }
  }

  zookeeper {
    resources {
      resource_preset_id = "s2.micro"
      disk_type_id       = "network-ssd"
      disk_size          = 10
    }
  }

  database {
    name = var.dbname
  }

  user {
    name     = var.username
    password = var.password
    permission {
      database_name = var.dbname
    }
  }

  host {
    type      = "CLICKHOUSE"
    zone      = "ru-central1-a"
    subnet_id = yandex_vpc_subnet.subnet_a.id
  }

  host {
    type      = "CLICKHOUSE"
    zone      = "ru-central1-b"
    subnet_id = yandex_vpc_subnet.subnet_b.id
  }

  host {
    type      = "CLICKHOUSE"
    zone      = "ru-central1-c"
    subnet_id = yandex_vpc_subnet.subnet_c.id
  }

  host {
    type      = "ZOOKEEPER"
    zone      = "ru-central1-a"
    subnet_id = yandex_vpc_subnet.subnet_a.id
  }

  host {
    type      = "ZOOKEEPER"
    zone      = "ru-central1-b"
    subnet_id = yandex_vpc_subnet.subnet_b.id
  }

  host {
    type      = "ZOOKEEPER"
    zone      = "ru-central1-c"
    subnet_id = yandex_vpc_subnet.subnet_c.id
  }
}

resource "yandex_mdb_mysql_cluster" "mysql_cluster" {
  name        = "grafana_mysql"
  environment = "PRODUCTION"
  network_id  = yandex_vpc_network.grafana_network.id
  version     = "8.0"

  resources {
    resource_preset_id = "s2.micro"
    disk_type_id       = "network-ssd"
    disk_size          = 16
  }

  database {
    name = var.dbname
  }

  user {
    name     = var.username
    password = var.password
    permission {
      database_name = var.dbname
      roles         = ["ALL"]
    }
  }

  host {
    zone      = "ru-central1-a"
    subnet_id = yandex_vpc_subnet.subnet_a.id
  }
  host {
    zone      = "ru-central1-b"
    subnet_id = yandex_vpc_subnet.subnet_b.id
  }
  host {
    zone      = "ru-central1-c"
    subnet_id = yandex_vpc_subnet.subnet_c.id
  }
}

Као ΡˆΡ‚ΠΎ Π²ΠΈΠ΄ΠΈΡ‚Π΅, сваки ΠΎΠ΄ Π΄Π²Π° кластСра јС Π½Π°ΠΏΡ€Π°Π²Ρ™Π΅Π½ ΠΏΡ€ΠΈΠ»ΠΈΡ‡Π½ΠΎ ΠΎΡ‚ΠΏΠΎΡ€Π°Π½ Π½Π° Π³Ρ€Π΅ΡˆΠΊΠ΅ Ρ‚Π°ΠΊΠΎ ΡˆΡ‚ΠΎ јС ΡΠΌΠ΅ΡˆΡ‚Π΅Π½ Ρƒ Ρ‚Ρ€ΠΈ Π·ΠΎΠ½Π΅ доступности.

Π’Π΅Π± сСрвСри

Π§ΠΈΠ½ΠΈΠ»ΠΎ сС Π΄Π° бисмо ΠΌΠΎΠ³Π»ΠΈ Π΄Π° наставимо Ρƒ истом Π΄ΡƒΡ…Ρƒ, Π°Π»ΠΈ сам наишао Π½Π° ΠΏΠΎΡ‚Π΅ΡˆΠΊΠΎΡ›Π΅. ΠŸΡ€Π΅ Ρ‚ΠΎΠ³Π° сам ΠΏΡ€Π²ΠΎ ΠΏΠΎΠ΄ΠΈΠ³Π°ΠΎ ΠœΠΈΠ‘ΠšΠ› кластСр ΠΈ Ρ‚Π΅ΠΊ Π½Π°ΠΊΠΎΠ½ Ρ‚ΠΎΠ³Π°, Π·Π½Π°Ρ˜ΡƒΡ›ΠΈ њСгов Π˜Π”, сакупио сам слику диска са ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎΠΌ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ˜ΠΎΠΌ, Π³Π΄Π΅ сам ΠΎΠ΄Ρ€Π΅Π΄ΠΈΠΎ хост кластСра. Али сада Π½Π΅ Π·Π½Π°ΠΌΠΎ Π˜Π” кластСра ΠΏΡ€Π΅ ΠΏΠΎΠΊΡ€Π΅Ρ‚Π°ΡšΠ° Π’Π΅Ρ€Ρ€Π°Ρ„ΠΎΡ€ΠΌ-Π°, ΡƒΠΊΡ™ΡƒΡ‡ΡƒΡ˜ΡƒΡ›ΠΈ ΠΈ Π²Ρ€Π΅ΠΌΠ΅ ΠΏΡ€Π°Π²Ρ™Π΅ΡšΠ° сликС. Π‘Ρ‚ΠΎΠ³Π° сам ΠΌΠΎΡ€Π°ΠΎ Π΄Π° ΠΏΡ€ΠΈΠ±Π΅Π³Π½Π΅ΠΌ слСдСћСм Ρ‚Ρ€ΠΈΠΊ.

ΠšΠΎΡ€ΠΈΡΡ‚Π΅Ρ›ΠΈ Амазонову услугу ΠΌΠ΅Ρ‚Π°ΠΏΠΎΠ΄Π°Ρ‚Π°ΠΊΠ°, прослСдићСмо Π½Π΅ΠΊΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅ Π²ΠΈΡ€Ρ‚ΡƒΠ΅Π»Π½ΠΎΡ˜ машини, којС Ρ›Π΅ ΠΎΠ½Π° ΠΏΡ€ΠΈΡ…Π²Π°Ρ‚ΠΈΡ‚ΠΈ ΠΈ ΠΎΠ±Ρ€Π°Π΄ΠΈΡ‚ΠΈ. ΠŸΠΎΡ‚Ρ€Π΅Π±Π½Π° Π½Π°ΠΌ јС машина Π΄Π° ΠΎΠ΄Π΅ Π΄ΠΎ ΠΌΠ΅Ρ‚Π°ΠΏΠΎΠ΄Π°Ρ‚Π°ΠΊΠ° ΠΈΠ·Π° хоста ΠœΠΈΠ‘ΠšΠ› кластСра ΠΈ корисничког ΠΈΠΌΠ΅Π½Π°-Π»ΠΎΠ·ΠΈΠ½ΠΊΠ΅, којС јС корисник Π½Π°Π²Π΅ΠΎ Ρƒ Π’Π΅Ρ€Ρ€Π°Ρ„ΠΎΡ€ΠΌ Π΄Π°Ρ‚ΠΎΡ‚Π΅Ρ†ΠΈ, Π½Π°ΠΊΠΎΠ½ ΠΏΠΎΠΊΡ€Π΅Ρ‚Π°ΡšΠ°. Π₯ајдС Π΄Π° ΠΌΠ°Π»ΠΎ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΠΌΠΎ ΡΠ°Π΄Ρ€ΠΆΠ°Ρ˜ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ΅ setup.sh, који сС ΠΏΠΎΠΊΡ€Π΅Ρ›Π΅ ΠΊΠ°Π΄Π° јС Π²ΠΈΡ€Ρ‚ΡƒΠ΅Π»Π½Π° машина ΡƒΠΊΡ™ΡƒΡ‡Π΅Π½Π°.

сСтуп.сх:

#!/bin/bash
CLUSTER_URI="$(curl -H 'Metadata-Flavor:Google' http://169.254.169.254/computeMetadata/v1/instance/attributes/mysql_cluster_uri)"
USERNAME="$(curl -H 'Metadata-Flavor:Google' http://169.254.169.254/computeMetadata/v1/instance/attributes/username)"
PASSWORD="$(curl -H 'Metadata-Flavor:Google' http://169.254.169.254/computeMetadata/v1/instance/attributes/password)"
sudo sed -i "s#.*;url =.*#url = mysql://${USERNAME}:${PASSWORD}@${CLUSTER_URI}#" /etc/grafana/grafana.ini
sudo sed -i "s#.*;admin_user =.*#admin_user = ${USERNAME}#" /etc/grafana/grafana.ini
sudo sed -i "s#.*;admin_password =.*#admin_password = ${PASSWORD}#" /etc/grafana/grafana.ini
sudo service grafana-server restart

Π˜Π½Ρ‚Π°Π½Ρ Π³Ρ€ΡƒΠΏΠ° ΠΈ балансСр

Након ΡˆΡ‚ΠΎ смо ΠΏΠΎΠ½ΠΎΠ²ΠΎ Π½Π°ΠΏΡ€Π°Π²ΠΈΠ»ΠΈ Π½ΠΎΠ²Ρƒ слику диска, ΠΊΠΎΠ½Π°Ρ‡Π½ΠΎ ΠΌΠΎΠΆΠ΅ΠΌΠΎ Π΄ΠΎΠ΄Π°Ρ‚ΠΈ Π½Π°ΡˆΡƒ Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΡƒ Π·Π° Π’Π΅Ρ€Ρ€Π°Ρ„ΠΎΡ€ΠΌ.

Π₯ајдС Π΄Π° Π½Π°Π·Π½Π°Ρ‡ΠΈΠΌΠΎ Π΄Π° ΠΆΠ΅Π»ΠΈΠΌΠΎ Π΄Π° користимо ΠΏΠΎΡΡ‚ΠΎΡ˜Π΅Ρ›Ρƒ слику диска:

data "yandex_compute_image" "grafana_image" {
  image_id = var.image_id
}

Π‘Π°Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌΠΎ Π³Ρ€ΡƒΠΏΡƒ инстанци:

resource "yandex_compute_instance_group" "grafana_group" {
  name               = "grafana-group"
  folder_id          = var.folder_id
  service_account_id = var.service_account_id
  instance_template {
    platform_id = "standard-v1"
    resources {
      memory = 1
      cores  = 1
    }
    boot_disk {
      mode = "READ_WRITE"
      initialize_params {
        image_id = data.yandex_compute_image.grafana_image.id
        size     = 4
      }
    }
    network_interface {
      network_id = yandex_vpc_network.grafana_network.id
      subnet_ids = [yandex_vpc_subnet.subnet_a.id, yandex_vpc_subnet.subnet_b.id, yandex_vpc_subnet.subnet_c.id]
      nat = "true"
    }
    metadata = {
      mysql_cluster_uri = "c-${yandex_mdb_mysql_cluster.mysql_cluster.id}.rw.mdb.yandexcloud.net:3306/${var.dbname}"
      username = var.username
      password = var.password
      ssh-keys = "ubuntu:${file("${var.public_key_path}")}"
    }
    network_settings {
      type = "STANDARD"
    }
  }

  scale_policy {
    fixed_scale {
      size = 6
    }
  }

  allocation_policy {
    zones = ["ru-central1-a", "ru-central1-b", "ru-central1-c"]
  }

  deploy_policy {
    max_unavailable = 2
    max_creating    = 2
    max_expansion   = 2
    max_deleting    = 2
  }

  load_balancer {
    target_group_name = "grafana-target-group"
  }
}

Π’Ρ€Π΅Π΄ΠΈ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΠΈ ΠΏΠ°ΠΆΡšΡƒ Π½Π° Ρ‚ΠΎ ΠΊΠ°ΠΊΠΎ смо Ρ‚ΠΎ ΠΏΡ€Π΅Π½Π΅Π»ΠΈ Ρƒ ΠΌΠ΅Ρ‚Π°ΠΏΠΎΠ΄Π°Ρ‚ΠΊΠ΅ cluster_uri, username ΠΈ password. Π’ΠΎ су којС Ρ›Π΅ Π²ΠΈΡ€Ρ‚ΡƒΠ΅Π»Π½Π° машина ΠΈΠ·Π²Π°Π΄ΠΈΡ‚ΠΈ ΠΏΡ€ΠΈ ΠΏΠΎΠΊΡ€Π΅Ρ‚Π°ΡšΡƒ ΠΈ ставити Ρƒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ˜Ρƒ Π“Ρ€Π°Ρ„Π°Π½Π΅.

Π‘Π²Π΅ зависи ΠΎΠ΄ балансСра.

resource "yandex_lb_network_load_balancer" "grafana_balancer" {
  name = "grafana-balancer"

  listener {
    name = "grafana-listener"
    port = 80
    target_port = 3000
    external_address_spec {
      ip_version = "ipv4"
    }
  }

  attached_target_group {
    target_group_id = yandex_compute_instance_group.grafana_group.load_balancer.0.target_group_id

    healthcheck {
      name = "healthcheck"
      tcp_options {
        port = 3000
      }
    }
  }
}

Мало ΡˆΠ΅Ρ›Π΅Ρ€Π°

ΠžΡΡ‚Π°Π»ΠΎ јС само ΠΌΠ°Π»ΠΎ. Након ΡˆΡ‚ΠΎ сС инфраструктура распорСди, ΠΌΠΎΡ€Π°Ρ›Π΅Ρ‚Π΅ Π΄Π° ΠΎΠ΄Π΅Ρ‚Π΅ Π½Π° Π“Ρ€Π°Ρ„Π°Π½Π° УИ ΠΈ Ρ€ΡƒΡ‡Π½ΠΎ Π΄ΠΎΠ΄Π°Ρ‚Π΅ Π¦Π₯ кластСр (Ρ‡ΠΈΡ˜ΠΈ Π˜Π” још Ρ‚Ρ€Π΅Π±Π° Π΄Π° сС добијС) ΠΊΠ°ΠΎ ΠΈΠ·Π²ΠΎΡ€ ΠΏΠΎΠ΄Π°Ρ‚Π°ΠΊΠ°. Али Π’Π΅Ρ€Ρ€Π°Ρ„ΠΎΡ€ΠΌ Π·Π½Π° Π˜Π” кластСра. ΠŸΠΎΠ²Π΅Ρ€ΠΈΠΌΠΎ ΠΌΡƒ Π΄Π° Π΄ΠΎΠ²Π΅Π΄Π΅ ствар Π΄ΠΎ ΠΊΡ€Π°Ρ˜Π°.

Π₯ајдС Π΄Π° Π΄ΠΎΠ΄Π°ΠΌΠΎ Π½ΠΎΠ²ΠΎΠ³ ΠΏΡ€ΠΎΠ²Π°Ρ˜Π΄Π΅Ρ€Π° - Π“Ρ€Π°Ρ„Π°Π½Ρƒ, ΠΈ Π΄Π°ΠΌΠΎ јој ИП адрСсу балансСра ΠΊΠ°ΠΎ Π΄ΠΎΠΌΠ°Ρ›ΠΈΠ½Π°. Π‘Π²Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½Π΅ којС Π’Π΅Ρ€Ρ€Π°Ρ„ΠΎΡ€ΠΌ Π½Π°ΠΏΡ€Π°Π²ΠΈ Π½Π° машини Π½Π° којој њСн балансСр ΠΎΠ΄Ρ€Π΅Π΄ΠΈ Ρ›Π΅ расти Ρƒ ΠœΠΈΠ‘ΠšΠ›, Π° самим Ρ‚ΠΈΠΌ ΠΈ Π½Π° свим Π΄Ρ€ΡƒΠ³ΠΈΠΌ машинама.

provider "grafana" {
  url  = "http://${[for s in yandex_lb_network_load_balancer.grafana_balancer.listener: s.external_address_spec.0.address].0}"
  auth = "${var.username}:${var.password}"
}

resource "grafana_data_source" "ch_data_source" {
  type          = "vertamedia-clickhouse-datasource"
  name          = "grafana"
  url           = "https://c-${yandex_mdb_clickhouse_cluster.ch_cluster.id}.rw.mdb.yandexcloud.net:8443"
  basic_auth_enabled = "true"
  basic_auth_username = var.username
  basic_auth_password = var.password
  is_default = "true"
  access_mode = "proxy"
}

Π₯ајдС Π΄Π° сС ΠΏΠΎΡ‡Π΅ΡˆΡ™Π°ΠΌΠΎ

Π₯ајдС Π΄Π° ΠΏΡ€ΠΈΠΊΠ°ΠΆΠ΅ΠΌΠΎ ИП адрСсу балансСра ΠΈ Π΄ΠΎΠΌΠ°Ρ›ΠΈΠ½Π° Π¦Π»ΠΈΡ†ΠΊΠ₯оусС кластСра

output "grafana_balancer_ip_address" {
  value = [for s in yandex_lb_network_load_balancer.grafana_balancer.listener: s.external_address_spec.0.address].0
}

output "clickhouse_cluster_host" {
  value = "https://c-${yandex_mdb_clickhouse_cluster.ch_cluster.id}.rw.mdb.yandexcloud.net:8443"
}

МоТС ΠΏΠΎΠΊΡ€Π΅Π½ΡƒΡ‚ΠΈ

Π‘Π²Π΅! Наш ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½ΠΈ Ρ„Π°Ρ˜Π» јС спрСман ΠΈ ΠΌΠΎΠΆΠ΅ΠΌΠΎ, ΠΏΠΎΡΡ‚Π°Π²Ρ™Π°ΡšΠ΅ΠΌ ΠΏΡ€ΠΎΠΌΠ΅Π½Ρ™ΠΈΠ²ΠΈΡ…, Ρ€Π΅Ρ›ΠΈ Π’Π΅Ρ€Ρ€Π°Ρ„ΠΎΡ€ΠΌΡƒ Π΄Π° ΠΏΠΎΠ΄ΠΈΠ³Π½Π΅ свС ΡˆΡ‚ΠΎ смо описали Π³ΠΎΡ€Π΅. Π¦Π΅ΠΎ процСс ΠΌΠΈ јС Ρ‚Ρ€Π°Ρ˜Π°ΠΎ ΠΎΠΊΠΎ 15 ΠΌΠΈΠ½ΡƒΡ‚Π°.
На ΠΊΡ€Π°Ρ˜Ρƒ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΠΈ ΠΏΡ€Π΅Π»Π΅ΠΏΡƒ ΠΏΠΎΡ€ΡƒΠΊΡƒ:

Apply complete! Resources: 9 added, 0 changed, 0 destroyed.
Outputs:

clickhouse_cluster_host = https://c-c9q14ipa2ngadqsbp2iq.rw.mdb.yandexcloud.net:8443
grafana_balancer_ip_address = 130.193.50.25

А Ρƒ ΠΎΠ±Π»Π°ΠΊΡƒ Ρ›Π΅ Π±ΠΈΡ‚ΠΈ Π²ΠΈΠ΄Ρ™ΠΈΠ²ΠΈ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈ ΠΏΠΎΠ΄ΠΈΠ³Π½ΡƒΡ‚Π΅ инфраструктурС:

ΠŸΡ€ΠΈΠΌΠ΅Π½Π° дистрибуираних услуга Ρƒ ИандСк.Π¦Π»ΠΎΡƒΠ΄ користСћи Π“Ρ€Π°Ρ„Π°Π½Ρƒ ΠΊΠ°ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€

Π‘Π°ΠΆΠΈΠΌΠ°Ρ‚ΠΈ

Π‘Π°Π΄Π°, користСћи Π“Ρ€Π°Ρ„Π°Π½Ρƒ ΠΊΠ°ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, свако ΠΎΠ΄ вас ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈ Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π΅ са Π²Π΅Π»ΠΈΠΊΠΎΠΌ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΎΠΌ ΠΎΠ±Π»Π°ΠΊΠ° Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΈ ИандСк.Π¦Π»ΠΎΡƒΠ΄. ΠšΠΎΡ€ΠΈΡΠ½ΠΈ Π°Π»Π°Ρ‚ΠΈ ΠΈΠ· Π₯асхиЦорп-Π° ΠΊΠ°ΠΎ ΡˆΡ‚ΠΎ су ΠŸΠ°Ρ†ΠΊΠ΅Ρ€ ΠΈ Π’Π΅Ρ€Ρ€Π°Ρ„ΠΎΡ€ΠΌ ΠΌΠΎΠ³Ρƒ Π²Π°ΠΌ ΠΏΠΎΠΌΠΎΡ›ΠΈ Ρƒ Ρ‚ΠΎΠΌΠ΅. Надам сС Π΄Π° Ρ›Π΅ Π½Π΅ΠΊΠΎΠΌΠ΅ овај Ρ‡Π»Π°Π½Π°ΠΊ Π±ΠΈΡ‚ΠΈ користан :)

ПБ Π£ наставку Ρ›Ρƒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠΈΡ‚ΠΈ Π»ΠΈΠ½ΠΊ Π΄ΠΎ ΡΠΏΡ€Π΅ΠΌΠΈΡˆΡ‚Π° Π³Π΄Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ½Π°Ρ›ΠΈ Π³ΠΎΡ‚ΠΎΠ²Π΅ Ρ€Π΅Ρ†Π΅ΠΏΡ‚Π΅ Π·Π° ΠŸΠ°Ρ†ΠΊΠ΅Ρ€ ΠΈ Π’Π΅Ρ€Ρ€Π°Ρ„ΠΎΡ€ΠΌ, Ρ‡ΠΈΡ˜Π΅ сам Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π΅ Π½Π°Π²Π΅ΠΎ Ρƒ ΠΎΠ²ΠΎΠΌ Ρ‡Π»Π°Π½ΠΊΡƒ.

Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΡ˜ΡƒΠΌ

Π˜Π·Π²ΠΎΡ€: Π²Π²Π².Ρ…Π°Π±Ρ€.Ρ†ΠΎΠΌ

Π”ΠΎΠ΄Π°Ρ˜ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€