Cara Mengkonfigurasi Docker Swarm dengan beberapa node Docker di Ubuntu 18.04

Cara Mengkonfigurasi Docker Swarm dengan beberapa node Docker di Ubuntu 18.04

Docker Swarm adalah alat orkestrasi dan pengelompokan kontainer untuk mengelola host Docker, dan merupakan bagian dari mesin Docker. Ini adalah alat pengelompokan asli yang disediakan oleh Docker yang menyediakan ketersediaan tinggi dan kinerja tinggi untuk aplikasi Anda.

Tujuan utama dari Docker Swarm adalah untuk mengelompokkan beberapa host Docker ke dalam server virtual logis tunggal-ini memastikan ketersediaan dan kinerja tinggi untuk aplikasi Anda dengan mendistribusikannya melalui sejumlah host Docker, bukan hanya satu.

Dalam tutorial ini Anda akan belajar:

  • Apa itu Docker Swarm
  • Cara mengkonfigurasi host
  • Cara Menginstal dan Menjalankan Layanan Docker
  • Cara Mengkonfigurasi Node Manajer untuk Inisialisasi Cluster Swarm
  • Cara mengkonfigurasi node pekerja untuk bergabung dengan cluster swarm
  • Cara memverifikasi cluster kawanan
  • Cara menggunakan layanan baru di swarm cluster
Docker Swarm Services.

Persyaratan dan konvensi perangkat lunak yang digunakan

Persyaratan Perangkat Lunak dan Konvensi Baris Perintah Linux
Kategori Persyaratan, konvensi atau versi perangkat lunak yang digunakan
Sistem Ubuntu 18.04
Perangkat lunak Docker-CE 18.09
Lainnya Akses istimewa ke sistem Linux Anda sebagai root atau melalui sudo memerintah.
Konvensi # - mensyaratkan perintah linux yang diberikan untuk dieksekusi dengan hak istimewa root baik secara langsung sebagai pengguna root atau dengan menggunakan sudo memerintah
$ - mensyaratkan perintah Linux yang diberikan untuk dieksekusi sebagai pengguna biasa

Konsep berkerumun secara rinci

Fitur manajemen dan orkestrasi cluster yang tertanam di mesin Docker dibangun menggunakan Swarmkit.

Gerombolan terdiri dari beberapa host Docker yang berjalan dalam mode Swarm dan bertindak sebagai manajer (yang mengelola keanggotaan dan delegasi) dan pekerja (yang menjalankan layanan Swarm). Host Docker yang diberikan dapat menjadi manajer, pekerja, atau melakukan kedua peran. Saat Anda membuat layanan, Anda mendefinisikan keadaan optimalnya seperti jumlah replika, jaringan dan sumber daya penyimpanan yang tersedia untuk itu, ports layanan terpapar ke dunia luar dll. Jika simpul pekerja menjadi tidak tersedia, Docker menjadwalkan tugas node pada node lain. Tugas adalah wadah yang sedang berjalan yang merupakan bagian dari layanan segerombolan dan dikelola oleh manajer yang berkerumun.



Salah satu keunggulan utama layanan Swarm dibandingkan wadah mandiri adalah Anda dapat memodifikasi konfigurasi layanan, termasuk jaringan dan volume yang terhubung, tanpa perlu memulai kembali layanan secara manual. Docker akan memperbarui konfigurasi, menghentikan tugas layanan dengan konfigurasi keluar dari tanggal, dan membuat yang baru cocok dengan konfigurasi yang diinginkan.

Saat Docker berjalan dalam mode Swarm, Anda masih dapat menjalankan wadah mandiri pada salah satu host Docker yang berpartisipasi dalam Swarm, serta layanan Swarm. Perbedaan utama antara wadah mandiri dan layanan gerombolan adalah bahwa hanya manajer segerombolan yang dapat mengelola segerombolan, sementara wadah mandiri dapat dimulai dengan daemon apa pun. Docker Daemon dapat berpartisipasi dalam segerombolan sebagai manajer, pekerja, atau keduanya.

Konfigurasikan host Docker

Sebelum memasang paket Docker yang diperlukan untuk cluster Swarm, kami akan mengonfigurasi file host di semua node Ubuntu.

Node Manajer - 192.168.1.103 (nama host - DockerManager) Pekerja Node1 - 192.168.1.107 (nama host - dockerworker1) pekerja node2 - 192.168.1.108 (nama host - Dockerworker2) 

Edit /etc/host file di ketiga node melalui gedit atau vim dan lakukan perubahan berikut:

192.168.1.103 DockerManager 192.168.1.107 Dockerworker1 192.168.1.108 DockerWorker2 
Menyalin

Setelah memodifikasi dengan detail di atas dalam file host, periksa konektivitasnya ping di antara semua node.

Dari pembawa acara Docker Manager

# ping dockerworker1 # ping 192.168.1.107 
# ping dockerworker2 # ping 192.168.1.108 

Dari Node Pekerja Docker 1

# ping dockermanager # ping 192.168.1.103 

Dari Node Pekerja Docker 2

# ping dockermanager # ping 192.168.1.103 

Instal dan Jalankan Layanan Docker

Untuk membuat cluster Swarm, kita perlu menginstal Docker di semua node server. Kami akan menginstal Docker-CE I.e. Edisi Komunitas Docker di ketiga mesin Ubuntu.

Sebelum Anda menginstal Docker CE untuk pertama kalinya di mesin host baru, Anda harus mengatur repositori Docker. Setelah itu, Anda dapat menginstal dan memperbarui Docker dari repositori. Lakukan semua langkah di bawah ini di ketiga node Ubuntu.

Perbarui Indeks Paket APT:

# Perbarui APT-GET 

Instal Paket untuk Mengizinkan Cenderung Menggunakan Repositori melalui HTTPS:

# apt-get install apt-transport-https ca-sertifikat CURL perangkat lunak-properti-common -y 


Tambahkan kunci GPG resmi Docker:

CURL -FSSL https: // download.buruh pelabuhan.com/linux/ubuntu/gpg | sudo apt-key add - 

Gunakan perintah berikut untuk mengatur repositori stabil:

# add-apt-repository "deb [arch = amd64] https: // download.buruh pelabuhan.com/linux/ubuntu $ (lsb_release -cs) stabil " 

Sekali lagi perbarui paket APT:

# Perbarui APT-GET 

Instal versi terbaru Docker CE:

Menginstal Docker-CE APT-GET

Setelah instalasi selesai, mulailah layanan Docker dan memungkinkannya untuk diluncurkan setiap kali di System Boot.

# Systemctl Start Docker # Systemctl Enable Docker 

Untuk mengonfigurasi Docker agar dijalankan sebagai pengguna normal atau pengguna non-root, jalankan perintah berikut:

# usermod -ag docker  
# USERMOD -AG Docker Manager # USERMOD -AG Docker Worker1 # USERMOD -AG Docker Worker2 

Sekarang, login sebagai pengguna yang ditunjuk dan jalankan Docker Halo Dunia untuk memverifikasi.

# Su - Manajer $ Docker Run Hello -World 

Setelah berhasil dijalankan itu akan memberikan output di bawah ini

Instalasi Docker Cek hello_world.

Konfigurasikan Node Manajer untuk Inisialisasi Cluster Swarm

Pada langkah ini, kami akan membuat sekelompok kawanan node kami. Untuk membuat cluster Swarm, kita perlu menginisialisasi mode Swarm pada simpul 'DockerManager' dan kemudian bergabung dengan simpul 'Dockerworker1' dan 'DockerWorker2' ke cluster.

Inisialisasi mode Docker Swarm dengan menjalankan perintah Docker berikut pada node 'DockerManager'.




Docker Swarm Init-Advertise-Addr

$ Docker Swarm Init-Advertise-Addr 192.168.1.103 
Inisialisasi Cluster Swarm.

'Bergabunglah Token' telah dihasilkan oleh 'DockerManager' yang akan diminta untuk bergabung dengan node pekerja ke manajer cluster.

Konfigurasikan node pekerja untuk bergabung dengan cluster Swarm

Sekarang, untuk bergabung dengan node pekerja ke Swarm, kami akan menjalankan perintah Docker Swarm bergabung di semua node pekerja yang kami terima dalam langkah inisialisasi Swarm:

$ Docker Swarm bergabung-Token SWMTKN-1-4HTF3VNZMBHC88VXJYGUIPO91IHMUTRXI2P1SI2DE4WHAQYLR6-3OED1HNTTWKALUR1EY7ZKDP9L 192.168.1.103: 2377 
Node Pekerja 1 Bergabung dengan The Swarm Cluster. Node Pekerja 2 Bergabung dengan The Swarm Cluster.

Verifikasi Cluster Swarm

Untuk melihat status node, sehingga kami dapat menentukan apakah node aktif/tersedia dll, dari node manajer, daftar semua node di gerombolan:

$ docker node ls 
Verifikasi Docker Swarm Cluster.

Jika kapan saja, Anda kehilangan token gabungan, itu dapat diambil dengan menjalankan perintah berikut pada node manajer untuk token manajer:

$ Docker Swarm bergabung dengan manajer -Q 

Cara yang sama untuk mengambil token pekerja menjalankan perintah berikut pada node manajer:

$ Docker Swarm Bergabung dengan Pekerja -Q 

Menyebarkan layanan baru di Swarm Cluster

Pada langkah ini, kami akan membuat dan menggunakan layanan pertama kami ke The Swarm Cluster. Server Web Layanan Nginx baru akan berjalan pada port http default 80, dan kemudian mengeksposnya ke port 8081 pada mesin host. Kami akan membuat layanan nginx ini dengan 2 replika, yang berarti akan ada 2 wadah Nginx yang berjalan di gerombolan kami. Jika salah satu dari wadah ini gagal, mereka akan dimuncang lagi untuk memiliki nomor yang diinginkan yang kami tetapkan pada opsi replika.

$ Docker Service Buat --Name my-web1 --Terblish 8081: 80 --Replicas 2 nginx 

Setelah penyebaran layanan yang berhasil Anda dapat melihat output di bawah ini:

Menyebarkan Layanan Nginx di Swarm Cluster.

Untuk memeriksa layanan Nginx yang baru dibuat menggunakan perintah layanan Docker di bawah ini.

$ Docker Service LS 
Sebutkan layanan yang baru digunakan di Swarm Cluster.


Layanan Docker PS

$ Docker Service PS My-Web1 
Mencantumkan tugas yang berjalan sebagai bagian dari layanan yang ditentukan di Swarm Cluster.

Jika kita perlu memeriksa apakah layanan nginx berfungsi dengan baik, baik kita dapat menggunakan perintah curl atau memeriksa di browser pada mesin host untuk halaman sambutan server web nginx.

$ curl http: // dockermanager: 8081 

Nginx Web Service Check via Curl.

Di browser di mesin host kita dapat mengakses halaman selamat datang dari nginx

Periksa Layanan Nginx melalui browser.

Sekarang, jika kita perlu skala layanan Nginx kita akan membuat 3 replika dan melakukan itu menjalankan perintah berikut pada node manajer:

$ Docker Service Scale my-web1 = 3 

Penskalaan layanan untuk jumlah replika yang diinginkan.

Untuk memeriksa output setelah penskalaan yang dapat kita gunakan Layanan Docker LS atau Layanan Docker PS memerintah.

Kita bisa gunakan Periksa layanan Docker Perintah untuk memeriksa detail yang diperluas dari layanan yang digunakan di Swarm. Secara default, ini membuat semua hasil dalam array JSON.

Kesimpulan

Docker telah menjadi cara yang sangat populer untuk mengonfigurasi, menyimpan, dan berbagi lingkungan server menggunakan wadah. Karena itu, memasang aplikasi atau bahkan tumpukan besar seringkali bisa sesederhana runing docker tarik atau pelari buruh. Memisahkan fungsi aplikasi menjadi berbagai wadah juga menawarkan keuntungan dalam manajemen keamanan dan ketergantungan.

Tutorial Linux Terkait:

  • Pengantar Otomatisasi Linux, Alat dan Teknik
  • Hal -hal yang harus diinstal pada ubuntu 20.04
  • Pengantar Mesin Penyimpanan MySQL
  • Menguasai loop skrip bash
  • Cara menginstal kubernet di ubuntu 20.04 FOSSA FOSSA Linux
  • Mint 20: Lebih baik dari Ubuntu dan Microsoft Windows?
  • Seberapa sering Anda harus me -reboot server linux Anda?
  • Hal -hal yang harus dilakukan setelah menginstal ubuntu 20.04 FOSSA FOSSA Linux
  • Cara menginstal kubernet di ubuntu 22.04 Jammy Jellyfish…
  • Loop bersarang dalam skrip bash