Cara Mengkonfigurasi Docker Swarm dengan Nod Docker berganda di Ubuntu 18.04

Cara Mengkonfigurasi Docker Swarm dengan Nod Docker berganda di Ubuntu 18.04

Docker Swarm adalah alat orkestrasi dan alat clustering untuk menguruskan tuan rumah docker, dan merupakan sebahagian daripada enjin docker. Ini adalah alat kluster asli yang disediakan oleh Docker yang menyediakan ketersediaan tinggi dan berprestasi tinggi untuk aplikasi anda.

Objektif utama Swarm Docker adalah untuk mengumpulkan pelbagai tuan rumah Docker ke dalam satu pelayan maya logik tunggal-ini memastikan ketersediaan dan prestasi tinggi untuk aplikasi anda dengan mengedarkannya ke atas beberapa tuan rumah Docker dan bukan hanya satu.

Dalam tutorial ini anda akan belajar:

  • Apa itu Swarm Docker
  • Cara mengkonfigurasi tuan rumah
  • Cara memasang dan menjalankan perkhidmatan docker
  • Cara Mengkonfigurasi Nod Pengurus untuk Inisialisasi Kluster Swarm
  • Cara Mengkonfigurasi Node Pekerja untuk Menyertai Kelompok Swarm
  • Cara Mengesahkan Kluster Swarm
  • Cara Menggunakan Perkhidmatan Baru di Swarm Cluster
Perkhidmatan Swarm Docker.

Keperluan perisian dan konvensyen yang digunakan

Keperluan Perisian dan Konvensyen Talian Perintah Linux
Kategori Keperluan, konvensyen atau versi perisian yang digunakan
Sistem Ubuntu 18.04
Perisian Docker-CE 18.09
Yang lain Akses istimewa ke sistem linux anda sebagai akar atau melalui sudo perintah.
Konvensyen # - Memerlukan arahan Linux yang diberikan untuk dilaksanakan dengan keistimewaan akar sama ada secara langsung sebagai pengguna root atau dengan menggunakan sudo perintah
$ - Memerlukan arahan Linux yang diberikan sebagai pengguna yang tidak layak

Konsep Swarm secara terperinci

Ciri -ciri pengurusan dan orkestrasi kluster yang tertanam dalam enjin docker dibina menggunakan swarmkit.

Swarm terdiri daripada pelbagai tuan rumah Docker yang berjalan dalam mod Swarm dan bertindak sebagai pengurus (yang menguruskan keahlian dan delegasi) dan pekerja (yang menjalankan perkhidmatan kawanan). Hos Docker yang diberikan boleh menjadi pengurus, pekerja, atau melaksanakan kedua -dua peranan. Apabila anda membuat perkhidmatan, anda menentukan keadaan optimumnya seperti bilangan replika, rangkaian dan sumber penyimpanan yang tersedia untuknya, pelabuhan perkhidmatan mendedahkan kepada dunia luar dan lain -lain. Sekiranya nod pekerja menjadi tidak tersedia, jadual docker yang tugas nod pada nod lain. Tugas adalah bekas yang berjalan yang merupakan sebahagian daripada perkhidmatan kawanan dan diuruskan oleh pengurus kawanan.



Salah satu kelebihan utama perkhidmatan kawanan di atas bekas mandiri ialah anda boleh mengubah suai konfigurasi perkhidmatan, termasuk rangkaian dan jumlah yang disambungkan ke, tanpa perlu memulakan semula perkhidmatan secara manual tersebut. Docker akan mengemas kini konfigurasi, menghentikan tugas perkhidmatan dengan konfigurasi dari tarikh, dan membuat yang baru yang sepadan dengan konfigurasi yang dikehendaki.

Apabila Docker berjalan dalam mod Swarm, anda masih boleh menjalankan bekas mandiri di mana -mana tuan rumah Docker yang menyertai Swarm, serta perkhidmatan Swarm. Perbezaan utama antara bekas mandiri dan perkhidmatan kawanan adalah bahawa hanya pengurus kawanan yang dapat menguruskan kawanan, sementara bekas mandiri dapat dimulakan di mana -mana daemon. Docker Daemons boleh mengambil bahagian dalam kawanan sebagai pengurus, pekerja, atau kedua -duanya.

Konfigurasikan tuan rumah Docker

Sebelum memasang pakej docker yang diperlukan untuk kelompok kawanan, kami akan mengkonfigurasi fail tuan rumah pada semua nod Ubuntu.

Nod Pengurus - 192.168.1.103 (HostName - Dockermanager) Pekerja Node1 - 192.168.1.107 (HostName - Dockeworker1) Pekerja Node2 - 192.168.1.108 (Nama Host - DockWorker2) 

Edit /etc/hos fail di ketiga -tiga nod melalui gedit atau vim Dan lakukan perubahan berikut:

192.168.1.103 Dockermanager 192.168.1.107 DockWorker1 192.168.1.108 DockWorker2 
Salinan

Setelah mengubahsuai dengan butiran di atas dalam fail tuan rumah, periksa sambungan dengan ping antara semua nod.

Dari tuan rumah pengurus docker

# ping dockeworker1 # ping 192.168.1.107 
# ping dockeworker2 # 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 

Memasang dan menjalankan perkhidmatan Docker

Untuk membuat kelompok kawanan, kita perlu memasang Docker pada semua nod pelayan. Kami akan memasang docker-ce i.e. Edisi Komuniti Docker di ketiga -tiga mesin Ubuntu.

Sebelum anda memasang Docker CE untuk kali pertama pada mesin hos baru, anda perlu menyediakan repositori Docker. Selepas itu, anda boleh memasang dan mengemas kini Docker dari repositori. Lakukan semua langkah di bawah di ketiga -tiga nod Ubuntu.

Kemas kini Indeks Pakej APT:

# Apt-Get Update 

Pasang pakej untuk membolehkan APT menggunakan repositori melalui HTTPS:

# apt-get pemasangan apt-transport-https ca-certificates curl software-properties-propers -y -y 


Tambahkan kunci GPG rasmi Docker:

curl -fssl https: // muat turun.Docker.com/linux/ubuntu/gpg | Sudo Apt-Key Tambah - 

Gunakan arahan berikut untuk menubuhkan repositori yang stabil:

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

Sekali lagi kemas kini pakej APT:

# Apt-Get Update 

Pasang versi terkini Docker CE:

APT-GET Pasang Docker-CE

Setelah pemasangan selesai, mulakan perkhidmatan Docker dan membolehkannya dilancarkan setiap kali di boot sistem.

# Systemctl Mula Docker # Systemctl Dayakan Docker 

Untuk mengkonfigurasi Docker untuk dijalankan sebagai pengguna biasa atau pengguna bukan akar, jalankan arahan berikut:

# usermod -ag docker  
# USERMOD -AG Docker Manager # usermod -ag docker worker1 # usermod -ag docker worker2 

Sekarang, log masuk sebagai pengguna yang ditetapkan dan jalankan Docker Hai dunia untuk mengesahkan.

# Su - Pengurus $ Docker Run Hello -World 

Setelah berjaya, ia akan memberikan output di bawah

Periksa pemasangan docker hello_world.

Konfigurasikan Nod Pengurus untuk Inisialisasi Kluster Swarm

Dalam langkah ini, kami akan mencipta kelompok kawanan nod kami. Untuk mencipta kelompok kawanan, kita perlu memulakan mod swarm pada nod 'dockermanager' dan kemudian menyertai node 'dockworker1' dan 'dockeworker2' ke kluster.

Mulakan mod Swarm Docker dengan menjalankan arahan Docker berikut pada nod 'Dockermanager'.




Docker Swarm Init-Addvertise-Addr

$ docker swarm init --advertise-addr 192.168.1.103 
Inisialisasi kluster swarm.

'Join Token' telah dihasilkan oleh 'Dockermanager' yang akan dikehendaki menyertai nod pekerja ke pengurus kluster.

Konfigurasikan nod pekerja untuk menyertai kelompok kawanan

Sekarang, untuk menyertai nod pekerja ke kawanan, kami akan menjalankan perintah gabungan Docker Swarm pada semua nod pekerja yang kami terima dalam langkah permulaan kawanan:

$ docker swarm menyertai-token swmtkn-1-4htf3vnzmbhc88vxjyguipo91ihmutrxi2p1si2de4whaqylr6-3oed1hnttwkalur1ey7zkdp9l 192.168.1.103: 2377 
Node Pekerja 1 Menyertai kelompok kawanan. Node Pekerja 2 Menyertai kelompok kawanan.

Sahkan kelompok kawanan

Untuk melihat status nod, supaya kita dapat menentukan sama ada nod aktif/tersedia dan lain -lain, dari nod pengurus, senaraikan semua nod dalam kawanan:

$ docker node ls 
Pengesahan Kluster Swarm Docker.

Jika pada bila -bila masa, anda kehilangan token gabungan anda, ia boleh diambil dengan menjalankan arahan berikut pada nod pengurus untuk Pengurus Token:

$ Docker swarm Join -Token Manager -Q 

Cara yang sama untuk mengambil token pekerja menjalankan arahan berikut pada nod pengurus:

$ docker swarm to -token worker -q 

Menyebarkan perkhidmatan baru di Swarm Cluster

Dalam langkah ini, kami akan membuat dan menggunakan perkhidmatan pertama kami ke kelompok kawanan. Perkhidmatan baru Nginx Web Server akan dijalankan pada port HTTP lalai 80, dan kemudian dedahkannya ke port 8081 pada mesin tuan rumah. Kami akan membuat perkhidmatan nginx ini dengan 2 replika, yang bermaksud bahawa terdapat 2 bekas nginx yang berjalan di kawanan kami. Sekiranya mana -mana bekas ini gagal, mereka akan dilahirkan semula untuk mempunyai nombor yang dikehendaki yang kami tetapkan pada pilihan replika.

$ docker Service create-Name My-Web1 --Publish 8081: 80 --Replicas 2 nginx 

Setelah berjaya menggunakan perkhidmatan, anda dapat melihat output di bawah:

Menyebarkan Perkhidmatan Nginx di Swarm Cluster.

Untuk memeriksa perkhidmatan nginx yang baru dibuat menggunakan arahan perkhidmatan docker di bawah.

$ docker Service ls 
Senaraikan perkhidmatan yang baru digunakan di Swarm Cluster.


Perkhidmatan Docker PS

$ docker Service ps my-web1 
Menyenaraikan tugas yang dijalankan sebagai sebahagian daripada perkhidmatan yang ditentukan pada kelompok kawanan.

Sekiranya kita perlu menyemak sama ada perkhidmatan nginx berfungsi dengan baik, sama ada kita boleh menggunakan perintah curl atau periksa penyemak imbas pada mesin hos untuk halaman selamat datang pelayan web nginx.

$ curl http: // dockermanager: 8081 

Nginx Web Service Check melalui Curl.

Dalam penyemak imbas pada mesin tuan rumah, kami dapat mengakses halaman selamat datang dari nginx

Pemeriksaan Perkhidmatan Nginx melalui Penyemak Imbas.

Sekarang, jika kita perlu skala perkhidmatan nginx kita akan membuat 3 replika dan untuk melakukan yang menjalankan perintah berikut pada nod pengurus:

$ Docker Service Scale My-Web1 = 3 

Perkhidmatan skala untuk bilangan replika yang dikehendaki.

Untuk memeriksa output selepas skala yang boleh kita gunakan Perkhidmatan Docker LS atau Perkhidmatan Docker PS perintah.

Kita boleh guna Periksa perkhidmatan docker Perintah untuk memeriksa butiran lanjutan perkhidmatan yang digunakan di Swarm. Secara lalai, ini menjadikan semua hasil dalam pelbagai JSON.

Kesimpulan

Docker telah menjadi cara yang sangat popular untuk mengkonfigurasi, menyimpan, dan berkongsi persekitaran pelayan menggunakan bekas. Kerana ini, memasang aplikasi atau bahkan timbunan yang besar sering boleh semudah berjalan Docker Pull atau Docker Run. Memisahkan fungsi aplikasi ke dalam bekas yang berbeza juga menawarkan kelebihan dalam pengurusan keselamatan dan ketergantungan.

Tutorial Linux Berkaitan:

  • Pengenalan kepada Automasi, Alat dan Teknik Linux
  • Perkara yang hendak dipasang di Ubuntu 20.04
  • Pengenalan kepada enjin penyimpanan MySQL
  • Menguasai Gelung Skrip Bash
  • Cara memasang kubernet di ubuntu 20.04 Focal Fossa Linux
  • Mint 20: Lebih baik daripada Ubuntu dan Microsoft Windows?
  • Berapa kerap anda perlu reboot pelayan Linux anda?
  • Perkara yang perlu dilakukan setelah memasang ubuntu 20.04 Focal Fossa Linux
  • Cara memasang Kubernet di Ubuntu 22.04 Jur -ubur Jammy ..
  • Gelung bersarang dalam skrip bash