GNU/Linux >> Belajar Linux >  >> Cent OS

Bagaimana Menginstal dan Mengonfigurasi Docker Swarm Cluster di CentOS 8

Docker adalah alat sumber terbuka yang dapat digunakan untuk membuat, menyebarkan, dan menjalankan aplikasi menggunakan wadah. Wadah memungkinkan Anda untuk mengemas aplikasi dengan semua dependensi yang diperlukan dan mengirimkannya sebagai satu paket.

Docker Swarm adalah alat pengelompokan yang digunakan untuk mengelola host Docker. Ini memungkinkan Anda untuk membuat sekelompok host Docker menjadi satu server virtual logis. Dengan cara ini Anda dapat menskalakan aplikasi Anda secara horizontal dan menambah jumlah instance container. Kawanan Docker menawarkan fitur yang sangat berguna termasuk, pemulihan mandiri container, penyeimbangan muatan, peningkatan dan penskalaan container, penemuan layanan, dan pembaruan berkelanjutan.

Dalam posting ini, kami akan menunjukkan cara mengatur cluster Docker Swarm di CentOS 8.

Prasyarat

  • Dua server yang menjalankan CentOS 8.
  • Kata sandi root dikonfigurasi di setiap server.

Instal Docker di Kedua Node

Pertama, Anda perlu menginstal Docker di kedua node. Secara default, versi terbaru Docker tidak disertakan dalam repositori default CentOS 8. Jadi, Anda perlu menambahkan repo Docker di sistem Anda.

Anda dapat menambahkannya dengan perintah berikut:

dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo

Setelah repo Docker dibuat, instal Docker dengan perintah berikut:

dnf install docker-ce --nobest

Setelah menginstal Docker, mulai layanan Docker dan aktifkan untuk memulai saat reboot sistem dengan perintah berikut:

systemctl start docker
systemctl aktifkan docker

Anda juga dapat memverifikasi status Docker dengan perintah berikut:

systemctl status buruh pelabuhan

Anda akan mendapatkan output berikut:

? docker.service - Mesin Kontainer Aplikasi Docker Dimuat:dimuat (/usr/lib/systemd/system/docker.service; dinonaktifkan; preset vendor:dinonaktifkan) Aktif:aktif (berjalan) sejak Jumat 2021-03-12 03:55:24 EST; 6 detik yang lalu Dokumen:https://docs.docker.com PID Utama:2173 (dockerd) Tugas:8 Memori:44.7M CGroup:/system.slice/docker.service ??2173 ​​/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sockMar 12 03:55:23 workernode dockerd[2173]:time="2021-03-12T03:55:23.570387991-05:00" level=error msg="Gagal ke grafik GetDriver bawaan btrfs>12 Mar 03:55:23 workernode dockerd[2173]:time="2021-03-12T03:55:23.617049696-05:00" level=warning msg="Kernel Anda tidak mendukung cgroup bl>12 Mar 03:55:23 workernode dockerd[2173]:time="2021-03-12T03:55:23.617096273-05:00" level=warning msg="Kernel Anda tidak mendukung cgroup bl>12 Mar 03:55:23 workernode dockerd[2173]:time="2021-03-12T03:55:23.617278059-05:00" level=info msg="Memuat wadah:mulai." 12 Mar 03:55:23 workernode dockerd[2173] :time="2021-03-12T03:55:23.884953789-05:00" level=info msg="Default bridge (docker0) ditetapkan dengan>12 Mar 03:55:24 workernode dockerd[2173]:time="2021 -03-12T03:55:24.039811428-05 :00" level=info msg="Memuat wadah:selesai." 12 Mar 03:55:24 workernode dockerd[2173]:time="2021-03-12T03:55:24.066358016-05:00" level=info msg="Docker daemon" commit=363e9a8 graphdriver>12 Mar 03:55:24 workernode dockerd[2173]:time="2021-03-12T03:55:24.066498611-05:00" level=info msg="Daemon telah menyelesaikan inisialisasi" 12 Mar 03:55:24 workernode systemd[1]:Memulai Docker Application Container Engine.12 Mar 03:55:24 workernode dockerd[2173]:time="2021-03-12T03:55:24.119523516-05:00" level =info msg="API mendengarkan di /var/run/docker.sock"

Sekarang, verifikasi versi Docker yang diinstal menggunakan perintah berikut:

docker --version

Anda akan melihat output berikut:

Versi Docker 20.10.5, build 55c4c88

Konfigurasi Firewall

Selanjutnya, Anda harus mengizinkan port 2376, 2377, 7946, dan 80 melalui firewall di kedua node. Anda dapat mengizinkannya dengan perintah berikut:

firewall-cmd --permanent --add-port=2376/tcp
firewall-cmd --permanent --add-port=2377/tcp
firewall-cmd --permanent --add -port=7946/tcp
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --add-port=7946/udp
firewall- cmd --permanent --add-port=4789/udp

Selanjutnya, muat ulang firewalld untuk menerapkan perubahan:

firewall-cmd --reload

Inisialisasi Docker Swarm Cluster

Selanjutnya, Anda perlu menginisialisasi cluster Docker Swarm pada node manager. Anda dapat melakukannya dengan perintah berikut:

docker swarm init --advertise-addr 45.58.32.185

Anda akan mendapatkan output berikut:

Swarm diinisialisasi:node saat ini (cq8xpscsls2ctqhdha8lhdrph) sekarang menjadi manajer. Untuk menambahkan pekerja ke swarm ini, jalankan perintah berikut:docker swarm join --token SWMTKN-1-24ciicg1knfh8htmvymnfw1igx64tcq6ah91n6amk18m2f75832. ke swarm ini, jalankan 'docker swarm join-token manager' dan ikuti petunjuknya.

Anda dapat menggunakan perintah yang ditunjukkan pada output di atas di node pekerja Docker untuk menggabungkan node ke cluster.

Anda dapat memeriksa informasi dari cluster Docker Swarm dengan perintah berikut:

info buruh pelabuhan

Anda akan mendapatkan output berikut:

Klien:Konteks:Mode Debug default:Plugin palsu:aplikasi:Aplikasi Docker (Docker Inc., v0.9.1-beta3) buildx:Bangun dengan BuildKit (Docker Inc., v0.5.1-docker)Server:Wadah:0 Berjalan:0 Dijeda:0 Dihentikan:0 Gambar:0 Versi Server:20.10.5 Driver Penyimpanan:overlay2 Sistem File Dukungan:xfs Mendukung d_type:true Native Overlay Diff:true Logging Driver:json-file Cgroup Driver:cgroupfs Versi Cgroup:1 Plugin :Volume:lokal Jaringan:menjembatani host ipvlan macvlan null overlay Log:awslogs fasih gcplogs gelf journald json-file log masuk lokal splunk syslog Swarm:active NodeID:cq8xpscsls2ctqhdha8lhdrph Adalah Manajer:true ClusterID:m7jrgvuw1k7jrgvuw1k7pvf Default .0.0/8 SubnetSize:24 Jalur Data Port:4789 Orkestrasi:Batas Retensi Riwayat Tugas:5 Rakit:Interval Snapshot:10000 Jumlah Snapshot Lama yang Harus Dipertahankan:0 Detak Jantung Centang:1 Kutu Pemilihan:10 Operator:Periode Detak Jantung:5 detik CA Konfigurasikan asi:Durasi Kedaluwarsa:3 bulan Putar Paksa:0 Manajer Penguncian Otomatis:Rotasi Akar palsu Sedang Berlangsung:palsu Alamat Node:45.58.32.185 Alamat Manajer:45.58.32.185:2377

Anda sekarang dapat memverifikasi simpul Docker Swarm dengan perintah berikut:

simpul buruh pelabuhan ls

Anda akan mendapatkan output berikut:

ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSIONcq8xpscsls2ctqhdha8lhdrph * masternode Siap Aktif Leader 20.10.5

Tambahkan Worker Node ke Docker Swarm Cluster

Selanjutnya, Anda perlu menambahkan node pekerja ke node manajer Docker Swarm. Anda dapat melakukannya dengan perintah berikut pada node pekerja:

gabungan buruh pelabuhan --token SWMTKN-1-24ciicg1knfh8htmvymnfw1igx64tcq6ah91n6amk18m2ek9qo-8sf9oysu08t5mf4ggd4ut7o3e 45.58.32.185:2377

Anda akan mendapatkan output berikut:

Node ini bergabung dengan swarm sebagai pekerja.

Pada node Docker Manager, verifikasi node pekerja dengan perintah berikut:

simpul buruh pelabuhan ls

Anda akan melihat bahwa node pekerja ditambahkan ke Docker Swarm:

cq8xpscsls2ctqhdha8lhdrph * masternode Siap Pemimpin Aktif 20.10.5bipfv8sfm94a9po0uame5rd1n workernode Siap Aktif 20.10.5

Luncurkan layanan di Docker Swarm

Di sini, kita akan membuat layanan web Nginx baru dan menskalakannya dengan dua wadah. Anda dapat membuatnya dengan menjalankan perintah berikut pada simpul Manajer:

layanan buruh pelabuhan buat -p 80:80 --name webservice --replicas 2 nginx

Anda akan mendapatkan output berikut:

agyxlaswxakrbboakkyydsh0keseluruhan kemajuan:2 dari 2 tugas 1/2:berjalan [=================================================>] 2/2:berlari [===================================================>] verifikasi:Layanan terkonvergensi 

Anda sekarang dapat memeriksa layanan web dengan perintah berikut:

layanan buruh pelabuhan ls

Anda akan melihat output berikut:

ID NAMA MODE REPLIKAS PORT GAMBARLayanan web Sagyxlaswxakr direplikasi 2/2 nginx:latest *:80->80/tcp

Anda juga dapat memeriksa container yang sedang berjalan dengan perintah berikut:

docker ps

Anda akan melihat output berikut:

INTAINER ID IMAGE COMMAND NAMA PORT STATUS YANG DIBUAT SC887cad1df2e nginx:latest "/docker-entrypoint...." 32 detik yang lalu Naik 30 detik 80/tcp webservice.2.jelyj9gmeb7ikl2scg7mz8yg8

Untuk mendapatkan informasi detail webservice, jalankan perintah berikut:

layanan buruh pelabuhan ps layanan web

Anda akan melihat output berikut:

ID NAMA NAMA GAMBAR NADA NEGARA YANG DIINGINKAN PORT ERROR NEGARA SAAT INISeye9zukwwrkq webservice.1 nginx:latest workernode Berjalan Berjalan 3 menit yang lalu jelyj9gmeb7i webservice.2 nginx:latest masternode Berjalan Berjalan 3 menit yang lalu 

Verifikasi Docker Swarm

Pada titik ini, kami telah menerapkan wadah Nginx di seluruh node cluster termasuk node manajemen. Sekarang Anda dapat mengakses server web Nginx Anda menggunakan salah satu simpul Pekerja atau alamat IP simpul Manajer:

Kesimpulan

Dalam panduan di atas, Anda telah mempelajari cara menyiapkan cluster Docker Swarm di CentOS 8. Sekarang Anda dapat menambahkan sejumlah node pekerja ke cluster Docker Swarm dan menskalakan aplikasi Anda.


Cent OS
  1. Cara Menginstal dan Mengkonfigurasi Nginx di CentOS 7

  2. Cara Menginstal dan Mengonfigurasi Redis di CentOS 7

  3. Cara menginstal dan mengkonfigurasi buruh pelabuhan Di Rocky Linux/Centos 8

  1. Cara Menginstal dan Mengonfigurasi GitLab di CentOS 7

  2. Cara Instal dan Konfigurasi Redmine di CentOS 7

  3. Cara Menginstal dan Mengonfigurasi Redis di CentOS 8

  1. Cara Install dan Konfigurasi Docker Swarm Mode di CentOS 7 / RHEL 7

  2. Cara Menginstal dan Mengonfigurasi Samba di CentOS 8

  3. Cara Menginstal dan Mengonfigurasi GitLab CE di CentOS 7