ΠšΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΡ DEVOXX UK. Π’Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ: Docker Swarm, Kubernetes ΠΈΠ»ΠΈ Mesos. Π§Π°ΡΡ‚ΡŒ 3

Docker Swarm, Kubernetes ΠΈ Mesos ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ популярными Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°ΠΌΠΈ для оркСстровки ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ². Π’ своСм выступлСнии Арун Π“ΡƒΠΏΡ‚Π° сравниваСт ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ аспСкты Ρ€Π°Π±ΠΎΡ‚Ρ‹ Docker, Swarm, ΠΈ Kubernetes:

  • Π›ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π΄Π΅Π²Π΅Π»ΠΎΠΏΠΌΠ΅Π½Ρ‚.
  • Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ развСртывания.
  • ΠœΡƒΠ»ΡŒΡ‚ΠΈΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½Ρ‹Π΅ прилоТСния.
  • ΠžΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ слуТб service discovery.
  • ΠœΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ сСрвиса.
  • Run-once задания.
  • Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ с Maven.
  • Β«Π‘ΠΊΠΎΠ»ΡŒΠ·ΡΡ‰Π΅Π΅Β» ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅.
  • Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ кластСра Π‘Π” Couchbase.

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Ρ‡Π΅Ρ‚ΠΊΠΎΠ΅ прСдставлСниС ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ инструмСнт оркСстровки, ΠΈ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ эффСктивного использования этих ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ.

Арун Π“ΡƒΠΏΡ‚Π° β€” Π³Π»Π°Π²Π½Ρ‹ΠΉ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ open-source ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΎΠ² Amazon Web Services, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΆΠ΅ Π±ΠΎΠ»Π΅Π΅ 10 Π»Π΅Ρ‚ Ρ€Π°Π·Π²ΠΈΠ²Π°Π΅Ρ‚ сообщСства Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Sun, Oracle, Red Hat ΠΈ Couchbase. Π˜ΠΌΠ΅Π΅Ρ‚ большой ΠΎΠΏΡ‹Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² Π²Π΅Π΄ΡƒΡ‰ΠΈΡ… кросс-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ…, Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΡ…ΡΡ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ стратСгии ΠΌΠ°Ρ€ΠΊΠ΅Ρ‚ΠΈΠ½Π³ΠΎΠ²Ρ‹Ρ… ΠΊΠ°ΠΌΠΏΠ°Π½ΠΈΠΉ ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π ΡƒΠΊΠΎΠ²ΠΎΠ΄ΠΈΠ» Π³Ρ€ΡƒΠΏΠΏΠ°ΠΌΠΈ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΎΠ² Sun, являСтся ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· основатСлСй ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Java EE ΠΈ создатСлСм амСриканского отдСлСния Devoxx4Kids. Арун Π“ΡƒΠΏΡ‚Π° являСтся Π°Π²Ρ‚ΠΎΡ€ΠΎΠΌ Π±ΠΎΠ»Π΅Π΅ 2 тысяч постов Π² IT-Π±Π»ΠΎΠ³Π°Ρ… ΠΈ выступил с Π΄ΠΎΠΊΠ»Π°Π΄Π°ΠΌΠΈ Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ Π² 40 странах.

ΠšΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΡ DEVOXX UK. Π’Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ: Docker Swarm, Kubernetes ΠΈΠ»ΠΈ Mesos. Π§Π°ΡΡ‚ΡŒ 1
ΠšΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΡ DEVOXX UK. Π’Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ: Docker Swarm, Kubernetes ΠΈΠ»ΠΈ Mesos. Π§Π°ΡΡ‚ΡŒ 2

Π’ строкС 55 содСрТится COUCHBASE_URI, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ ΠΊ Π½Π° сСрвис этой Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚ΠΎΠΆΠ΅ создан с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„Π°ΠΉΠ»Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Kubernetes. Если ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° строку 2, ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ kind: Service – это сСрвис, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ я создаю ΠΏΠΎΠ΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ couchbase-service, ΠΈ это ΠΆΠ΅ имя ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎ Π² строкС 4. НиТС приводятся нСсколько ΠΏΠΎΡ€Ρ‚ΠΎΠ².

ΠšΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΡ DEVOXX UK. Π’Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ: Docker Swarm, Kubernetes ΠΈΠ»ΠΈ Mesos. Π§Π°ΡΡ‚ΡŒ 3

ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌΠΈ строками ΡΠ²Π»ΡΡŽΡ‚ΡΡ 6 ΠΈ 7. Π’ service я Π³ΠΎΠ²ΠΎΡ€ΡŽ: Β«Π­ΠΉ, Π²ΠΎΡ‚ эти ΠΌΠ΅Ρ‚ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я ΠΈΡ‰Ρƒ!Β», ΠΈ эти labels Π½Π΅ Ρ‡Ρ‚ΠΎ ΠΈΠ½ΠΎΠ΅, ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π° ΠΏΠ°Ρ€ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Π° строка 7 ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° ΠΌΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ couchbase-rs-pod. Π”Π°Π»Π΅Π΅ пСрСчислСны ΠΏΠΎΡ€Ρ‚Ρ‹, Π΄Π°ΡŽΡ‰ΠΈΠ΅ доступ ΠΊ этим самым labels.

Π’ строкС 19 я создаю Π½ΠΎΠ²Ρ‹ΠΉ Ρ‚ΠΈΠΏ ReplicaSet, Π² строкС 31 содСрТится имя ΠΎΠ±Ρ€Π°Π·Π°, Π° строки 24-27 ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ Π½Π° ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅, ассоциированныС с ΠΌΠΎΠΈΠΌ ΠΏΠΎΠ΄ΠΎΠΌ. Π­Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΈΡ‰Π΅Ρ‚ service ΠΈ с Ρ‡Π΅ΠΌ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ установлСно соСдинСниС. Π’ ΠΊΠΎΠ½Ρ†Π΅ Ρ„Π°ΠΉΠ»Π° располоТСн Π½Π΅ΠΊΠΈΠΉ Π²ΠΈΠ΄ связи строк 55-56 ΠΈ 4, говорящий: Β«ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉ этот service!Β».

Π˜Ρ‚Π°ΠΊ, я Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽ свой service ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ Π½Π°Π±ΠΎΡ€Π° Ρ€Π΅ΠΏΠ»ΠΈΠΊ, ΠΈ ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ Ρ€Π΅ΠΏΠ»ΠΈΠΊ ΠΈΠΌΠ΅Π΅Ρ‚ свой ΠΏΠΎΡ€Ρ‚ с ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ ΠΌΠ΅Ρ‚ΠΊΠΎΠΉ, ΠΎΠ½ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² состав service. Π‘ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°, Π²Ρ‹ просто ΠΎΠ±Ρ€Π°Ρ‰Π°Π΅Ρ‚Π΅ΡΡŒ ΠΊ сСрвису, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°Ρ‚Π΅ΠΌ задСйствуСт Π½ΡƒΠΆΠ½Ρ‹ΠΉ Π²Π°ΠΌ Π½Π°Π±ΠΎΡ€ Ρ€Π΅ΠΏΠ»ΠΈΠΊ.

Π’ ΠΈΡ‚ΠΎΠ³Π΅ Ρƒ мСня имССтся ΠΏΠΎΠ΄ WildFly, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ общаСтся с бэкСндом Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Ρ‡Π΅Ρ€Π΅Π· Couchbase Service. Π― ΠΌΠΎΠ³Ρƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄ с нСсколькими ΠΏΠΎΠ΄Π°ΠΌΠΈ WildFly, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Π°ΠΊΠΆΠ΅ Ρ‡Π΅Ρ€Π΅Π· couchbase service связываСтся с бэкСндом couchbase.

ΠšΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΡ DEVOXX UK. Π’Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ: Docker Swarm, Kubernetes ΠΈΠ»ΠΈ Mesos. Π§Π°ΡΡ‚ΡŒ 3

ПозТС ΠΌΡ‹ рассмотрим, ΠΊΠ°ΠΊ service, располоТСнный Π²Π½Π΅ кластСра, Ρ‡Π΅Ρ€Π΅Π· свой IP-адрСс общаСтся с элСмСнтами, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ располоТСны Π²Π½ΡƒΡ‚Ρ€ΠΈ кластСра ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ IP-адрСс.

Π˜Ρ‚Π°ΠΊ, stateless-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ – это Ρ…ΠΎΡ€ΠΎΡˆΠΎ, Π½ΠΎ насколько Ρ…ΠΎΡ€ΠΎΡˆΠ° идСя ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ stateful-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹? Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим настройки систСмы для stateful, ΠΈΠ»ΠΈ постоянных ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ². Π’ Docker сущСствуСт 4 Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° ΠΊ Ρ€Π°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° Π΄Π°Π½Π½Ρ‹Ρ…, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ слСдуСт ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ – это Implicit Per-Container, ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‰ΠΈΠΉ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ использовании satateful-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² couchbase, MySQL ΠΈΠ»ΠΈ MyDB, всС ΠΎΠ½ΠΈ Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ с Π΄Π΅Ρ„ΠΎΠ»Ρ‚Π½Ρ‹ΠΌ Sandbox. Π’ΠΎ Π΅ΡΡ‚ΡŒ всС, Ρ‡Ρ‚ΠΎ хранится Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…, хранится Π² самом ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅. Если ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ ΠΏΡ€ΠΎΠΏΠ°Π΄Π°Π΅Ρ‚, Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠΏΠ°Π΄Π°ΡŽΡ‚ вмСстС с Π½ΠΈΠΌ.

Π’Ρ‚ΠΎΡ€ΠΎΠΉ – это Explicit Per-Container, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ создаСтС ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ docker volume create ΠΈ сохраняСтС Π² Π½Π΅ΠΌ Π΄Π°Π½Π½Ρ‹Π΅. Π’Ρ€Π΅Ρ‚ΠΈΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Per-Host связан с ΠΌΠ°ΠΏΠΏΠΈΠ½Π³ΠΎΠΌ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰, ΠΊΠΎΠ³Π΄Π° всС, Ρ‡Ρ‚ΠΎ хранится Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅, ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ дублируСтся Π½Π° хостС. Если ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ даст сбой, Π΄Π°Π½Π½Ρ‹Π΅ останутся Π½Π° хостС. ПослСднСС – это использованиС Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… хостов Multi-Host, Ρ‡Ρ‚ΠΎ цСлСсообразно Π½Π° стадии ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ваши ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ с вашими прилоТСниями Π·Π°ΠΏΡƒΡ‰Π΅Π½Ρ‹ Π½Π° хостС, Π½ΠΎ ΠΏΡ€ΠΈ этом Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ свои Π΄Π°Π½Π½Ρ‹Π΅ Π³Π΄Π΅-Ρ‚ΠΎ Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ автоматичСский ΠΌΠ°ΠΏΠΏΠΈΠ½Π³ для распрСдСлСнных систСм.

ΠšΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΡ DEVOXX UK. Π’Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ: Docker Swarm, Kubernetes ΠΈΠ»ΠΈ Mesos. Π§Π°ΡΡ‚ΡŒ 3

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· этих ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ΅ мСстополоТСниС Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°. Implicit ΠΈ Explicit Per-Container хранят Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° хостС ΠΏΠΎ адрСсу /var/lib/docker/volumes. ΠŸΡ€ΠΈ использовании ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Per-Host Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ монтируСтся Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°, Π° сам ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ монтируСтся Π½Π° хостС. Для ΠΌΡƒΠ»ΡŒΡ‚ΠΈΡ…ΠΎΡΡ‚ΠΎΠ² ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Ρ‚ΠΈΠΏΠ° Ceph, ClusterFS, NFS ΠΈ Ρ‚.Π΄.

ΠŸΡ€ΠΈ сбоС постоянного ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° дирСктория Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° становится нСдоступной Π² Π΄Π²ΡƒΡ… ΠΏΠ΅Ρ€Π²Ρ‹Ρ… случаях, Π° Π² Π΄Π²ΡƒΡ… послСдних доступ сохраняСтся. Однако Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ случаС Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ ΠΊ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Ρƒ Ρ‡Π΅Ρ€Π΅Π· хост Docker, Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹ΠΉ Π½Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ машинС. Π’ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ случаС Π΄Π°Π½Π½Ρ‹Π΅ Ρ‚ΠΎΠΆΠ΅ Π½Π΅ ΠΏΡ€ΠΎΠΏΠ°Π΄ΡƒΡ‚, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π²Ρ‹ создали Explicit-Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅.

ΠŸΡ€ΠΈ сбоС хоста дирСктория Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° нСдоступна Π² Ρ‚Ρ€Π΅Ρ… ΠΏΠ΅Ρ€Π²Ρ‹Ρ… случаях, Π² послСднСм случаС связь с Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ΠΌ Π½Π΅ прСрываСтся. НаконСц, функция shared ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½Π° для Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ случаС ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° Π² ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ…. Π’ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ случаС ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ΠΌ Π² зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ваша Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… распрСдСлСнныС Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° ΠΈΠ»ΠΈ Π½Π΅Ρ‚. Π’ случаС Per-Host распрСдСлСниС Π΄Π°Π½Π½Ρ‹Ρ… Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° Π΄Π°Π½Π½ΠΎΠΌ хостС, Π° для ΠΌΡƒΠ»ΡŒΡ‚ΠΈΡ…ΠΎΡΡ‚Π° ΠΎΠ½ΠΎ обСспСчиваСтся Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ кластСра.

Π­Ρ‚ΠΎ слСдуСт ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ создании stateful-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ². Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ инструмСнт Docker – это ΠΏΠ»Π°Π³ΠΈΠ½ Volume, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ ΠΏΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ Β«Π±Π°Ρ‚Π°Ρ€Π΅ΠΈ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚, Π½ΠΎ ΠΏΠΎΠ΄Π»Π΅ΠΆΠ°Ρ‚ Π·Π°ΠΌΠ΅Π½Π΅Β». ΠŸΡ€ΠΈ запускС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° Docker ΠΎΠ½ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚: Β«Π­ΠΉ, запустив ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚Ρ‹ моТСшь Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ свои Π΄Π°Π½Π½Ρ‹Π΅ Π² этом ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅!Β» Π­Ρ‚Π° функция ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Π½ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΅Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ. Π­Ρ‚ΠΎΡ‚ ΠΏΠ»Π°Π³ΠΈΠ½ позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ вмСсто ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π½ΠΎΠΉ Π‘Π” сСтСвой диск ΠΈΠ»ΠΈ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅. Он Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для host-based Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰ ΠΈ позволяСт ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡŽ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² с внСшними систСмами хранСния Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ Amazon EBS, Azure Storage ΠΈ постоянными дисками GCE Persistent.

На ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ слайдС ΠΏΠΎΠΊΠ°Π·Π°Π½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° ΠΏΠ»Π°Π³ΠΈΠ½Π° Docker Volume.

ΠšΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΡ DEVOXX UK. Π’Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ: Docker Swarm, Kubernetes ΠΈΠ»ΠΈ Mesos. Π§Π°ΡΡ‚ΡŒ 3

Π‘ΠΈΠ½ΠΈΠΌ Ρ†Π²Π΅Ρ‚ΠΎΠΌ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Docker, связанный с синим Docker-хостом, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ имССтся Local storage engine, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ Π²Π°ΠΌ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ для хранСния Π΄Π°Π½Π½Ρ‹Ρ…. Π—Π΅Π»Π΅Π½Ρ‹ΠΌ Ρ†Π²Π΅Ρ‚ΠΎΠΌ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½Ρ‹ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Plugin Client ΠΈ Plugin Daemon, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Π°ΠΊΠΆΠ΅ подсоСдинСны ΠΊ хосту. Они ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π² сСтСвых Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°Ρ… Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ Π²Π°ΠΌ Π²ΠΈΠ΄Π° Storage Backend.

Плагин Docker Volume ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ с Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ΠΌ Portworx. ΠœΠΎΠ΄ΡƒΠ»ΡŒ PX-Dev собствСнно являСтся запускаСмым Π²Π°ΠΌΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊ Docker-хосту ΠΈ позволяСт Π»Π΅Π³ΠΊΠΎ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° Amazon EBS.

ΠšΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΡ DEVOXX UK. Π’Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ: Docker Swarm, Kubernetes ΠΈΠ»ΠΈ Mesos. Π§Π°ΡΡ‚ΡŒ 3

ΠšΠ»ΠΈΠ΅Π½Ρ‚ Portworx позволяСт Π²Π°ΠΌ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ состояниС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ подсоСдинСны ΠΊ Π²Π°ΡˆΠ΅ΠΌΡƒ хосту. Если Π²Ρ‹ посСтитС ΠΌΠΎΠΉ Π±Π»ΠΎΠ³, Ρ‚ΠΎ смоТСтС ΠΏΡ€ΠΎΡ‡Π΅ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ эффСктивно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Portworx с Docker.

ΠšΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰ Π² Kubernetes ΠΏΠΎΡ…ΠΎΠΆΠ° Π½Π° Docker ΠΈ прСдставлСна дирСкториями, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ доступны Π²Π°ΡˆΠ΅ΠΌΡƒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρƒ Π² ΠΏΠΎΠ΄Π΅. Они Π½Π΅ зависимы ΠΎΡ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΆΠΈΠ·Π½ΠΈ любого ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°. НаиболСС распространСнными доступными Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰ ΡΠ²Π»ΡΡŽΡ‚ΡΡ hostPath, nfs, awsElasticBlockStore ΠΈ gsePersistentDisk. Рассмотрим, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ эти Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° Π² Kubernetes. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ процСсс ΠΈΡ… ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ состоит ΠΈΠ· 3 шагов.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΡ‚ΠΎ-Ρ‚ΠΎ Π½Π° сторонС сСти, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ это администратор, прСдоставляСт Π²Π°ΠΌ постоянноС Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅. Для этого имССтся ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ PersistentVolume. Π”Π°Π»Π΅Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ прилоТСния ΠΏΠΈΡˆΠ΅Ρ‚ Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ PersistentVolumeClaim, ΠΈΠ»ΠΈ запрос Π½Π° Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ PVC, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ говорится: Β«Ρƒ мСня ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½ΠΎ распрСдСлСнноС Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ объСмом 50Π“Π±, Π½ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ люди Ρ‚ΠΎΠΆΠ΅ ΠΌΠΎΠ³Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π΅ΠΌΠΊΠΎΡΡ‚ΡŒ, я ΡΠΎΠΎΠ±Ρ‰Π°ΡŽ Π² этом PVC, Ρ‡Ρ‚ΠΎ сСйчас ΠΌΠ½Π΅ Π½ΡƒΠΆΠ½ΠΎ всСго 10 Π“Π±Β». НаконСц, Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ шаг состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ваш запрос монтируСтся ΠΊΠ°ΠΊ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅, ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ имССтся ΠΏΠΎΠ΄, ΠΈΠ»ΠΈ Π½Π°Π±ΠΎΡ€ Ρ€Π΅ΠΏΠ»ΠΈΠΊ, ΠΈΠ»ΠΈ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅, Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ ΠΈΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ. Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ этот процСсс состоит ΠΈΠ· 3-Ρ… упомянутых этапов ΠΈ позволяСт ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅.

ΠšΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΡ DEVOXX UK. Π’Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ: Docker Swarm, Kubernetes ΠΈΠ»ΠΈ Mesos. Π§Π°ΡΡ‚ΡŒ 3

На ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ слайдС ΠΏΠΎΠΊΠ°Π·Π°Π½ постоянный ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Kubernetes Persistence Container Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ AWS.

ΠšΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΡ DEVOXX UK. Π’Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ: Docker Swarm, Kubernetes ΠΈΠ»ΠΈ Mesos. Π§Π°ΡΡ‚ΡŒ 3

Π’Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΡ€ΠΈΡ‡Π½Π΅Π²ΠΎΠ³ΠΎ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ кластСр Kubernetes, располоТСн ΠΎΠ΄ΠΈΠ½ мастСр-Π½ΠΎΠ΄ ΠΈ Π΄Π²Π° Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… Π½ΠΎΠ΄Π°, ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ ΠΆΠ΅Π»Ρ‚Ρ‹ΠΌ Ρ†Π²Π΅Ρ‚ΠΎΠΌ. Π’ ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· worker node находится ΠΎΡ€Π°Π½ΠΆΠ΅Π²Ρ‹ΠΉ ΠΏΠΎΠ΄, Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ Ρ€Π΅ΠΏΠ»ΠΈΠΊ ΠΈ Π·Π΅Π»Π΅Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Docker Couchbase. Π’Π½ΡƒΡ‚Ρ€ΠΈ кластСра Π½Π°Π΄ Π½ΠΎΠ΄Π°ΠΌΠΈ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠΎΠΌ Π»ΠΈΠ»ΠΎΠ²ΠΎΠ³ΠΎ Ρ†Π²Π΅Ρ‚Π° ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ доступный ΠΈΠ·Π²Π½Π΅ Service. Π­Ρ‚Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° рСкомСндуСтся для сохранСния Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° самом устройствС. ΠŸΡ€ΠΈ нСобходимости я ΠΌΠΎΠ³Ρƒ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ свои Π΄Π°Π½Π½Ρ‹Π΅ Π² EBS Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ кластСра, ΠΊΠ°ΠΊ это ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ слайдС. Π­Ρ‚ΠΎ типичная модСль для ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΏΡ€ΠΈ Π΅Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π½ΡƒΠΆΠ½ΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ финансовый аспСкт – Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π³Π΄Π΅-Ρ‚ΠΎ Π² сСти ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π΄ΠΎΡ€ΠΎΠΆΠ΅, Ρ‡Π΅ΠΌ Π½Π° хостС. ΠŸΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΠΈ это ΠΎΠ΄ΠΈΠ½ ΠΈΠ· вСсомых Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ².

ΠšΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΡ DEVOXX UK. Π’Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ: Docker Swarm, Kubernetes ΠΈΠ»ΠΈ Mesos. Π§Π°ΡΡ‚ΡŒ 3

Π’Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ Π² случаС с Docker, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ постоянныС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ Kubernetes вмСстС с Portworx.

ΠšΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΡ DEVOXX UK. Π’Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ: Docker Swarm, Kubernetes ΠΈΠ»ΠΈ Mesos. Π§Π°ΡΡ‚ΡŒ 3

Π­Ρ‚ΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π² Π½Ρ‹Π½Π΅ΡˆΠ½Π΅ΠΉ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Kubernetes 1.6 называСтся Β«StatefulSetΒ» β€” способ Ρ€Π°Π±ΠΎΡ‚Ρ‹ со Stateful-прилоТСниями, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ события ΠΎΠ± остановкС Ρ€Π°Π±ΠΎΡ‚Ρ‹ Pod ΠΈ осущСствлСния Graceful Shutdown. Π’ нашСм случаС Ρ‚Π°ΠΊΠΈΠΌΠΈ прилоТСниями ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. Π’ ΠΌΠΎΠ΅ΠΌ Π±Π»ΠΎΠ³Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΡ‡Π΅ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ StatefulSet Π² Kubernetes ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Portworx.
Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΏΡ€ΠΎ аспСкт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Как я сказал, Docker ΠΈΠΌΠ΅Π΅Ρ‚ 2 вСрсии – Π‘Π• ΠΈ Π•Π•, Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ случаС Ρ€Π΅Ρ‡ΡŒ ΠΈΠ΄Π΅Ρ‚ ΠΎ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠΉ вСрсии Community Edition, которая обновляСтся Ρ€Π°Π· Π² 3 мСсяца Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ СТСмСсячно обновляСмой вСрсии Π•Π•. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ Docker для Mac, Linux ΠΈΠ»ΠΈ Windows. ПослС установки Docker Π±ΡƒΠ΄Π΅Ρ‚ автоматичСски ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒΡΡ, ΠΈ Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π½ΠΈΠΌ ΠΎΡ‡Π΅Π½ΡŒ Π»Π΅Π³ΠΊΠΎ.

ΠšΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΡ DEVOXX UK. Π’Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ: Docker Swarm, Kubernetes ΠΈΠ»ΠΈ Mesos. Π§Π°ΡΡ‚ΡŒ 3

Π’ Kubernetes я ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΡŽ Π²Π΅Ρ€ΡΠΈΡŽ Minikube – это Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ способ Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ с этой ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎΠΉ ΠΏΡƒΡ‚Π΅ΠΌ создания кластСра Π½Π° ΠΎΠ΄ΠΈΠ½ΠΎΡ‡Π½ΠΎΠΌ ΡƒΠ·Π»Π΅. Для создания кластСров ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π½ΠΎΠ΄ΠΎΠ² Π²Ρ‹Π±ΠΎΡ€ вСрсий ΡˆΠΈΡ€Π΅: это kops, kube-aws (CoreOS+AWS), kube-up (устарСла). Если Π²Ρ‹ ΡΠΎΠ±ΠΈΡ€Π°Π΅Ρ‚Π΅ΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Kubernetes Π½Π° основС AWS, Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ присоСдинится ΠΊ Π³Ρ€ΡƒΠΏΠΏΠ΅ AWS SIG, которая встрСчаСтся Π² сСти ΠΊΠ°ΠΆΠ΄ΡƒΡŽ пятницу ΠΈ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ΅Ρ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ интСрСсныС ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ ΠΏΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ с Kubernetes AWS.

Рассмотрим, ΠΊΠ°ΠΊ Π½Π° этих ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ… выполняСтся ΡΠΊΠΎΠ»ΡŒΠ·ΡΡ‰Π΅Π΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Rolling Update. Если имССтся кластСр ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π½ΠΎΠ΄ΠΎΠ², Ρ‚ΠΎ Π² Π½Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ конкрСтная вСрсия ΠΎΠ±Ρ€Π°Π·Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, WildFly:1. Π‘ΠΊΠΎΠ»ΡŒΠ·ΡΡ‰Π΅Π΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ вСрсия ΠΎΠ±Ρ€Π°Π·Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ замСняСтся Π½ΠΎΠ²ΠΎΠΉ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π½ΠΎΠ΄Π΅, ΠΎΠ΄ΠΈΠ½ Π·Π° Π΄Ρ€ΡƒΠ³ΠΈΠΌ.

ΠšΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΡ DEVOXX UK. Π’Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ: Docker Swarm, Kubernetes ΠΈΠ»ΠΈ Mesos. Π§Π°ΡΡ‚ΡŒ 3

Для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° docker service update (имя сСрвиса), Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ я ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ ΠΎΠ±Ρ€Π°Π·Π° WildFly:2 ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ обновлСния update-parallelism 2. Π¦ΠΈΡ„Ρ€Π° 2 ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ систСма Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ ΠΏΠΎ 2 ΠΎΠ±Ρ€Π°Π·Π° прилоТСния ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ, Π·Π°Ρ‚Π΅ΠΌ послСдуСт 10-Ρ‚ΠΈ сСкундная Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ° update delay 10s, послС Ρ‡Π΅Π³ΠΎ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ‹ 2 ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΎΠ±Ρ€Π°Π·Π° Π΅Ρ‰Π΅ Π½Π° 2-Ρ… Π½ΠΎΠ΄Π°Ρ…, ΠΈ Ρ‚.Π΄. Π­Ρ‚ΠΎΡ‚ простой ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΡΠΊΠΎΠ»ΡŒΠ·ΡΡ‰Π΅Π³ΠΎ обновлСния прСдоставляСтся Π²Π°ΠΌ ΠΊΠ°ΠΊ составная Ρ‡Π°ΡΡ‚ΡŒ Docker.

Π’ Kubernetes ΡΠΊΠΎΠ»ΡŒΠ·ΡΡ‰Π΅Π΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ происходит Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ rc создаСт Π½Π°Π±ΠΎΡ€ Ρ€Π΅ΠΏΠ»ΠΈΠΊ ΠΎΠ΄Π½ΠΎΠΉ вСрсии, ΠΈ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΠΎΠ΄ Π² этом webapp-rc снабТСн ΠΌΠ΅Ρ‚ΠΊΠΎΠΉ label, находящСйся Π² etcd. Когда ΠΌΠ½Π΅ Π½ΡƒΠΆΠ΅Π½ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΏΠΎΠ΄, я Ρ‡Π΅Ρ€Π΅Π· Application Service ΠΎΠ±Ρ€Π°Ρ‰Π°ΡŽΡΡŒ ΠΊ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Ρƒ etcd, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΠΎ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΠΌΠ΅Ρ‚ΠΊΠ΅ прСдоставляСт ΠΌΠ½Π΅ этот ΠΏΠΎΠ΄.

ΠšΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΡ DEVOXX UK. Π’Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ: Docker Swarm, Kubernetes ΠΈΠ»ΠΈ Mesos. Π§Π°ΡΡ‚ΡŒ 3

Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС Ρƒ нас Π² Replication controller имССтся 3 ΠΏΠΎΠ΄Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π·Π°ΠΏΡƒΡ‰Π΅Π½ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ WildFly вСрсии 1. ΠŸΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ Π² Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ создаСтся Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ с Ρ‚Π΅ΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΈ индСксом Π² ΠΊΠΎΠ½Ρ†Π΅ β€” — xxxxx, Π³Π΄Π΅ Ρ… – случайныС числа, ΠΈ с Ρ‚Π΅ΠΌΠΈ ΠΆΠ΅ ΠΌΠ΅Ρ‚ΠΊΠ°ΠΌΠΈ labels. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Application Service располагаСт трСмя ΠΏΠΎΠ΄Π°ΠΌΠΈ с ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ старой вСрсии ΠΈ трСмя ΠΏΠΎΠ΄Π°ΠΌΠΈ с Π½ΠΎΠ²ΠΎΠΉ вСрсиСй Π² Π½ΠΎΠ²ΠΎΠΌ Replication controller. ПослС этого старыС ΠΏΠΎΠ΄Ρ‹ ΡƒΠ΄Π°Π»ΡΡŽΡ‚ΡΡ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ с Π½ΠΎΠ²Ρ‹ΠΌΠΈ ΠΏΠΎΠ΄Π°ΠΌΠΈ пСрСимСновываСтся ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ€Π°Π±ΠΎΡ‚Ρƒ.

ΠšΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΡ DEVOXX UK. Π’Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ: Docker Swarm, Kubernetes ΠΈΠ»ΠΈ Mesos. Π§Π°ΡΡ‚ΡŒ 3

ΠŸΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ ΠΊ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Π½ΠΈΡŽ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°. Π’ Docker имССтся мноТСство встроСнных ΠΊΠΎΠΌΠ°Π½Π΄ для ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°. НапримСр, интСрфСйс ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки docker container stats позволяСт ΠΊΠ°ΠΆΠ΄ΡƒΡŽ сСкунду Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π² консоль Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ состоянии ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² – использованиС процСссора, диска, Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ сСти. Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ Docker Remote API прСдоставляСт Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ общаСтся с сСрвСром. Он ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ простыС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Π½ΠΎ Π² Π΅Π³ΠΎ основС Π»Π΅ΠΆΠΈΡ‚ Docker REST API. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС слова REST, Flash, Remote ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‚ ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅. Когда Π²Ρ‹ ΠΎΠ±Ρ‰Π°Π΅Ρ‚Π΅ΡΡŒ с хостом, это REST API. Docker Remote API позволяСт ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ большС свСдСний ΠΎ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Ρ… ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°Ρ…. Π’ ΠΌΠΎΠ΅ΠΌ Π±Π»ΠΎΠ³Π΅ ΠΈΠ·Π»ΠΎΠΆΠ΅Π½Ρ‹ Π΄Π΅Ρ‚Π°Π»ΠΈ использования этого ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° с Windows Server.

ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ систСмных событий docker system events ΠΏΡ€ΠΈ запускС ΠΌΡƒΠ»ΡŒΡ‚ΠΈΡ…ΠΎΡΡ‚ΠΎΠ²ΠΎΠ³ΠΎ кластСра Π΄Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ ΠΏΠ°Π΄Π΅Π½ΠΈΠΈ хоста ΠΈΠ»ΠΈ ΠΏΠ°Π΄Π΅Π½ΠΈΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ хостС, ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ сСрвисов ΠΈ Ρ‚ΠΎΠΌΡƒ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ. Начиная с вСрсии Docker 1.20, Π² Π½Π΅Π³ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ Prometheus, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ осущСствляСт встраиваниС endpoints Π² ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ прилоТСния. Π­Ρ‚ΠΎ позволяСт ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ Ρ‡Π΅Ρ€Π΅Π· HTTP ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ ΠΈΡ… Π½Π° панСлях ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°.

Π•Ρ‰Π΅ ΠΎΠ΄Π½Π° функция ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° – это cAdvisor (сокращСниС ΠΎΡ‚ container Advisor). Он Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈ прСдоставляСт Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΠ± использовании рСсурсов ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈΠ· Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Ρ… ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ², прСдоставляя ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ Prometheus «прямо ΠΈΠ· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈΒ». ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ этого инструмСнта Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ прСдоставляСт Π΄Π°Π½Π½Ρ‹Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π·Π° послСдниС 60 сСкунд. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡƒΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ эти Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ ΠΏΠΎΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ Π² Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ процСсса. Π•Π³ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для отобраТСния ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π² графичСском Π²ΠΈΠ΄Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Grafana ΠΈΠ»ΠΈ Kibana. Π’ ΠΌΠΎΠ΅ΠΌ Π±Π»ΠΎΠ³Π΅ Π΅ΡΡ‚ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ описаниС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ cAdvisor для ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ°Π½Π΅Π»ΠΈ Kibana.

На ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ слайдС ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ выглядит Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Prometheus endpoint ΠΈ доступныС для отобраТСния ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ.

ΠšΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΡ DEVOXX UK. Π’Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ: Docker Swarm, Kubernetes ΠΈΠ»ΠΈ Mesos. Π§Π°ΡΡ‚ΡŒ 3

Π‘Π»Π΅Π²Π° Π²Π½ΠΈΠ·Ρƒ Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ HTTP-запросов, ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² ΠΈ Ρ‚.Π΄., справа – ΠΈΡ… графичСскоС ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅.

Kubernetes Ρ‚Π°ΠΊΠΆΠ΅ содСрТит встроСнныС инструмСнты ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°. На этом слайдС ΠΏΠΎΠΊΠ°Π·Π°Π½ Ρ‚ΠΈΠΏΠΎΠ²ΠΎΠΉ кластСр, содСрТащий ΠΎΠ΄ΠΈΠ½ мастСр ΠΈ Ρ‚Ρ€ΠΈ Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… ΡƒΠ·Π»Π°.

ΠšΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΡ DEVOXX UK. Π’Ρ‹Π±ΠΈΡ€Π°Π΅ΠΌ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ: Docker Swarm, Kubernetes ΠΈΠ»ΠΈ Mesos. Π§Π°ΡΡ‚ΡŒ 3

Π’ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… Π½ΠΎΠ΄ΠΎΠ² располоТСн автоматичСски запускаСмый cAdvisor. ΠšΡ€ΠΎΠΌΠ΅ этого, здСсь имССтся Heapster β€” систСма ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈ сбора ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ, совмСстимая с Kubernetes вСрсии 1.0.6 ΠΈ Π²Ρ‹ΡˆΠ΅. Heapster позволяСт ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… Π½Π°Π³Ρ€ΡƒΠ·ΠΎΠΊ, ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ², Π½ΠΎ ΠΈ события ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ сигналы, Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ Ρ†Π΅Π»Ρ‹ΠΌ кластСром. Для сбора Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠ½ общаСтся с Kubelet ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Π°, автоматичСски сохраняСт ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… InfluxDB ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π² Π²ΠΈΠ΄Π΅ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ Π½Π° панСль ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Grafana. Однако ΡƒΡ‡Ρ‚ΠΈΡ‚Π΅ – Ссли Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ miniKube, эта функция ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ нСдоступна, поэтому для ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° придСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π°Π΄Π΄ΠΎΠ½Ρ‹. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ всС зависит ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Π³Π΄Π΅ Π²Ρ‹ запускаСтС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ ΠΈ ΠΊΠ°ΠΊΠΈΠΌΠΈ инструмСнтами ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Π° ΠΊΠ°ΠΊΠΈΠ΅ трСбуСтся ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π² Π²ΠΈΠ΄Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΉ.

На ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ слайдС ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Ρ‹ ΠΏΠ°Π½Π΅Π»ΠΈ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Grafana, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ состояниС ΠΌΠΎΠΈΡ… ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ². Π—Π΄Π΅ΡΡŒ достаточно ΠΌΠ½ΠΎΠ³ΠΎ интСрСсных Π΄Π°Π½Π½Ρ‹Ρ…. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, сущСствуСт мноТСство коммСрчСских инструмСнтов ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° процСссов Docker ΠΈ Kubernetes, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ SysDig, DataDog, NewRelic. НСкоторыС ΠΈΠ· Π½ΠΈΡ… ΠΈΠΌΠ΅ΡŽΡ‚ 30-Ρ‚ΠΈ бСсплатный ΠΏΡ€ΠΎΠ±Π½Ρ‹ΠΉ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Ρ€Π°Ρ‚ΡŒ сСбС Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ подходящий. Π›ΠΈΡ‡Π½ΠΎ я ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ SysDig ΠΈ NewRelic, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² Kubernetes. Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ инструмСнты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² ΠΎΠ±Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ – ΠΈ Docker, ΠΈ Kubernetes.

НСмного Ρ€Π΅ΠΊΠ»Π°ΠΌΡ‹ πŸ™‚

Бпасибо, Ρ‡Ρ‚ΠΎ ΠΎΡΡ‚Π°Ρ‘Ρ‚Π΅ΡΡŒ с Π½Π°ΠΌΠΈ. Π’Π°ΠΌ нравятся наши ΡΡ‚Π°Ρ‚ΡŒΠΈ? Π₯ΠΎΡ‚ΠΈΡ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ большС интСрСсных ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠ²? ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΡ‚Π΅ нас, ΠΎΡ„ΠΎΡ€ΠΌΠΈΠ² Π·Π°ΠΊΠ°Π· ΠΈΠ»ΠΈ ΠΏΠΎΡ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π² Π·Π½Π°ΠΊΠΎΠΌΡ‹ΠΌ, ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹Π΅ VPS для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΎΡ‚ $4.99, ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π°Π½Π°Π»ΠΎΠ³ entry-level сСрвСров, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π½ Π½Π°ΠΌΠΈ для Вас: Вся ΠΏΡ€Π°Π²Π΄Π° ΠΎ VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps ΠΎΡ‚ $19 ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π΄Π΅Π»ΠΈΡ‚ΡŒ сСрвСр? (доступны Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ с RAID1 ΠΈ RAID10, Π΄ΠΎ 24 ядСр ΠΈ Π΄ΠΎ 40GB DDR4).

Dell R730xd Π² 2 Ρ€Π°Π·Π° дСшСвлС Π² Π΄Π°Ρ‚Π°-Ρ†Π΅Π½Ρ‚Ρ€Π΅ Equinix Tier IV Π² АмстСрдамС? Волько Ρƒ нас 2 Ρ… Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 Π’Π’ ΠΎΡ‚ $199 Π² НидСрландах! Dell R420 β€” 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB β€” ΠΎΡ‚ $99! Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΎ Ρ‚ΠΎΠΌ Как ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ инфраструктуру ΠΊΠΎΡ€ΠΏ. класса c ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ сСрвСров Dell R730xd Π•5-2650 v4 ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΡŽ 9000 Π΅Π²Ρ€ΠΎ Π·Π° ΠΊΠΎΠΏΠ΅ΠΉΠΊΠΈ?

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com