‫Sebelum kami memperluas layanan kami untuk mulai berjalan melintasi sekelompok node dan semua layanan saling berbicara,
‫mari kita membahas beberapa konsep baru yang dibawa Swarm ke meja.
‫Yang pertama adalah driver jaringan baru yang disebut Overlay, dan Anda benar-benar hanya membuat jaringan
‫seperti Anda
‫terbiasa membuatnya, membuat jaringan buruh pelabuhan, dan Anda memasukkan overlay --driver.
‫Seperti apa itu pada dasarnya menciptakan jaringan jembatan Swarm di mana kontainer di seluruh host di jaringan virtual
‫yang sama dapat mengakses satu sama lain seperti mereka berada di VLAN.
‫Ini hanya untuk komunikasi antar kawanan.
‫Pengemudi overlay tidak memainkan jumlah besar dalam lalu lintas yang masuk, karena mencoba untuk
‫mengambil tampilan keseluruhan jaringan sehingga Anda tidak terus-menerus bermain-main dengan pengaturan jaringan pada
‫masing-masing node.
‫Anda juga dapat mengaktifkan enkripsi jaringan penuh menggunakan IPiece SEC di mana ia benar-benar akan mengatur terowongan IPSec antara
‫semua node yang berbeda dari kawanan Anda.
‫Tapi itu tidak aktif secara default hanya untuk alasan kinerja.
‫Saat Anda membuat layanan, Anda dapat menambahkannya ke tanpa jaringan Hamparan, atau satu atau lebih jaringan Hamparan.
‫Itu benar-benar tergantung pada desain aplikasi Anda.
‫Anda tahu, banyak desain tradisional akan memiliki database di jaringan backend dan
‫server Web di jaringan frontend. Maka mungkin Anda akan memiliki API antara keduanya yang berada di kedua
‫jaringan, atau sesuatu seperti itu.
‫Dan Anda benar-benar dapat melakukannya di Swarm.
‫Mari kita lihat ini dalam aksi. Apa yang ingin saya lakukan adalah
‫saya ingin menunjukkan kepada Anda bagaimana jadinya jika kita menggunakan contoh Drupal dari tugas sebelumnya dengan Database Postgres, sebagai layanan, dan kemudian
‫membuat jaringan Overlay agar mereka dapat saling berbicara.
‫Pertama kita perlu membuat jaringan, jadi jaringan buruh pelabuhan buat, dan ini tidak berubah untuk
‫Swarm selain fakta bahwa kita akan menggunakan driver baru.
‫Saya hanya akan menyebutnya mydrupal.
‫BAIK.
‫Jadi, saya akan melakukan jaringan buruh pelabuhan, dan Anda akan melihat saya memiliki lapisan baru. Masuknya ada di sana secara default.
‫Anda juga akan melihat yang baru karena segerombolan, yang sebenarnya merupakan jaringan keluar yang tidak perlu kita
‫atasi.
‫Jadi, mari kita buat layanan Postgres kami ... layanan buruh pelabuhan membuat nama ... sebut saja jaringan psql.
‫Kita akan menghubungkannya ke jaringan mydrupal.
‫Sebenarnya ada penyelesaian tab pada nama jaringan.
‫Maka ingat saya perlu menambahkan variabel lingkungan itu untuk kata sandi Postgres.
‫Jadi kita bisa terhubung nanti.
‫Lalu kita akan menggunakan gambar Postgres. Kelihatan bagus.
‫Anda akan melihat di sini bahwa kami tidak mendapatkan seluruh unduhan gambar dan semua itu, karena layanan tidak dapat berjalan
‫di latar depan, karena mereka harus melalui orkestra dan penjadwal. Jadi, kita dapat melakukan layanan
‫buruh pelabuhan, dan kita dapat melihat bahwa salah satu dari mereka berjalan.
‫Jika kita melakukan layanan buruh pelabuhan ps psql, kita dapat melihat bahwa ini sebenarnya berjalan pada Node 1.
‫Jadi saya bisa membuat log kontainer kontainer psql, dan kemudian saya bisa melihat log itu.
‫Ya. Sepertinya sedang berjalan.
‫Baiklah.
‫Mari kita buat layanan kami yang lain jadi saya
‫akan melanjutkan dan menyebutnya drupal.
‫Kita juga perlu melampirkan ke jaringan yang sama. Kemudian kami ingin menerbitkan port 80:80 seperti yang
‫kami lakukan dengan perintah run docker. Dan kami akan menggunakan gambar Drupal.
‫BAIK.
‫Kita dapat melihat bahwa itu mulai dari sana.
‫Ada tipuan. Anda benar-benar dapat menggunakan perintah arloji di Linux untuk menonton. Itu pada dasarnya
‫akan ... apa yang dilakukannya adalah menjalankan kembali perintah berulang kali. Ini diinstal secara default
‫di Ubuntu.
‫Jika Anda hanya menempatkan jam di depan layanan buruh pelabuhan, itu akan terus menjalankannya setiap dua detik secara default
‫sampai ... ah, lihat?
‫Sekarang kita punya satu per satu.
‫Baiklah, dan kemudian saya hanya akan mengontrol c dari itu. Kita dapat melakukan layanan buruh
‫pelabuhan ps drupal dan melihat bahwa drupal sebenarnya berjalan pada Node 2.
‫Kami memiliki database yang berjalan pada Node 1.
‫Kami memiliki situs web Drupal berjalan pada Node 2.
‫Jadi, bagaimana mereka tahu cara berbicara satu sama lain?
‫Nah, menggunakan nama layanan.
‫Jika saya tempel di salah satu alamat IP, itu akan muncul pada instalasi Drupal. Dan jika saya katakan itu database di sini, nama
‫database, kami hanya akan melakukan postgres lagi,
‫postgres, kata sandi saya.
‫Untuk tuan rumah, sama seperti ketika kami dengan Compose, kami membuat nama layanan di file Compose, di sini, kami
‫akan menggunakan nama layanan yang kami buat untuk server database. Jadi, itu psql.
‫Layar ini pada dasarnya memberi tahu kita bahwa ia dapat berbicara dengan database di seluruh
‫node dan mengatur sistem.
‫Itu hal yang hebat tentang Overlay, itu benar-benar hanya bertindak seperti semuanya ada di subnet yang sama.
‫Baiklah.
‫Jadi kita tidak membutuhkan ini lagi.
‫Saya akan menyelesaikan contoh ini dengan sangat cepat hanya untuk menunjukkan kepada Anda hal keren berikutnya tentang Swarm. BAIK.
‫Sekarang, situs ini sedang berjalan. Tapi saya punya tiga node, jadi bagaimana saya tahu simpul mana yang akan
‫berada dan port mana yang saya perlukan untuk memastikan bahwa DNS saya menunjuk ke saat saya membuat nama situs web ini?
‫Dalam kasus saya, saya memiliki tiga alamat IP, dan saya dapat menyalin ketiganya dan memasukkan ketiga alamat IP
‫itu
‫ke dan ... Ups ... Ada yang salah di sana.
‫Jadi, jika Anda lihat, sepertinya situs web berjalan di ketiga node karena saya melihat ketiga
‫alamat IP.
‫Tetapi jika saya pergi ke sini dan melakukan layanan ini ps drupal, saya tahu itu hanya menjalankan simpul 2.
‫Saya bahkan dapat melakukan inspeksi ke layanan buruh pelabuhan, dan melihat bahwa memang hanya ada satu alamat IP di jaringan overlay
‫itu ... disini.
‫Jadi, mengapa itu merespons pada ketiga host?
‫Itu membawa kita ke fitur baru berikutnya.