Serombongan buruh pelabuhan adalah (alias mesin Docker dalam mode swarm) solusi pengelompokan asli yang membuat sekelompok host Docker menjadi satu server virtual logis. Swarm memastikan ketersediaan dan kinerja tinggi aplikasi Anda dengan mendistribusikannya ke sejumlah host Docker di dalam sebuah cluster.
Selain itu, dengan Docker swarm, Anda dapat menskalakan aplikasi Anda secara horizontal, yaitu, meningkatkan jumlah instance container untuk aplikasi yang sama.
Infrastruktur Kami
Untuk demonstrasi, saya menggunakan lingkungan sistem operasi campuran:
NamaHost | Alamat IP | Sistem Operasi | Tujuan |
---|---|---|---|
dockerm.itgeek.local | 192.168.12.10 | CentOS 7 | Bertindak sebagai manajer Docker yang mengelola mesin Docker yang berjalan pada node. Manajer Docker juga akan mengambil bagian dari sebuah cluster yaitu, Ini akan menjalankan container juga. |
node1.itzgeek.local | 192.168.12.20 | Ubuntu 16.04 | Node Pekerja 1 (Menjalankan mesin Docker) |
node2.itzgeek.local | 192.168.12.30 | Fedora 26/25 | Worker Node 2 (Menjalankan mesin Docker) |
Kawanan Docker sebelumnya merupakan alat yang terpisah. Sekarang terintegrasi dengan mesin Docker dari v 1.12 . Jadi, Anda cukup menginstal mesin Docker di semua host Anda (Node Manajer dan Pekerja ).
BACA :Cara Memasang Edisi Komunitas Docker di CentOS 7 / RHEL 7
BACA :Cara Menginstal Edisi Komunitas Docker di Ubuntu 16.04
BACA :Cara Memasang Edisi Komunitas Docker di Fedora 26 / Fedora 25
Firewall
Anda perlu membuka port berikut di firewall agar swarm cluster berfungsi dengan baik.
CentOS / Fedora:
firewall-cmd --permanent --add-port=7946/tcpfirewall-cmd --permanent --add-port=4789/udpfirewall-cmd --permanent --add-port=7946/udpfirewall-cmd -- permanen --add-port=2376/tcpfirewall-cmd --permanent --add-port=2377/tcpfirewall-cmd --permanent --add-port=80/tcp ## Kami Menguji Docker Swarm dengan WebService firewall-cmd --reload
Ubuntu:
ufw statusufw allow 2376/tcpufw allow 7946/tcpufw allow 7946/udpufw allow 2377/tcpufw allow 4789/udpufw allow 80/tcp ## Kami sedang Menguji Docker Swarm dengan WebService ufw reloadufw aktifkan
Mulai ulang mesin Docker setelah Anda membuka port yang diperlukan karena rantai firewall memengaruhi aturan buruh pelabuhan.
systemctl restart buruh pelabuhan
Di sini dan seterusnya, semua perintah yang disebutkan adalah perintah docker universal sehingga Anda dapat menjalankan perintah pada sistem operasi apa pun yang didukung Docker (Dalam kasus kami, CentOS 7 , Ubuntu 16.04 , dan Fedora 26/25 ).
Buat Kawanan
Mari kita mulai pembuatan cluster menggunakan “swarm init “. Jalankan perintah berikut pada simpul manajer Anda (dockerm.itzgeek.local ).
[root@dockerm ~]# docker swarm init --advertise-addr 192.168.12.10
–advertise-addr opsi menentukan node manajer untuk mempublikasikan alamatnya sebagai 192.168.12.10 sehingga node pekerja dapat bergabung dengan cluster.
Keluaran:
Swarm diinisialisasi:node saat ini (uhh38rpazd5tnzjph2g5rhgxy) sekarang menjadi manajer. Untuk menambahkan pekerja ke swarm ini, jalankan perintah berikut: docker swarm join \ --token SWMTKN-1-5y1u36a0osykywxeme2akpjp4jgx2l67mbqbc4fnazs39bp314-e6djx8ma2qnevolztpplkn26j \ 192.168.12.10:2377 Untuk menambahkan manajer ke swarm ini, jalankan 'docker swarm join-token manager' dan ikuti petunjuknya.
Output di atas memiliki token untuk menambahkan node pekerja ke cluster.
Lihat status kawanan saat ini menggunakan perintah berikut.
[root@dockerm ~]# info buruh pelabuhan
Keluaran:
Wadah:0 Berjalan:0 Dijeda:0 Dihentikan:0Gambar:0Versi Server:17.03.1-ceStorage Driver:devicemapper Nama Kumpulan:docker-253:1-297-pool. . .. . . File loop metadata:/var/lib/docker/devicemapper/devicemapper/metadata Library Version:1.02.135-RHEL7 (2016-11-16)Logging Driver:json-fileCgroup Driver:cgroupfsPlugins: Volume:local Network:bridge host macvlan null hamparanSwarm:aktif NodeID:uhh38rpazd5tnzjph2g5rhgxy Apakah Manajer:benar ID Cluster:kp8tgowwcuiv3om0wzfgpngp7 Pengelola:1 Node:1 Orchestration: Batas Retensi Riwayat Tugas:5 Raft: Interval Snapshot:10000 Jumlah Snapshot Lama yang Harus Dipertahankan:0 Detak Jantung:1 Centang Pemilihan:3 Dispatcher: Periode Detak Jantung:5 detik Konfigurasi CA: Durasi Kedaluwarsa:3 bulan Alamat Node:192.168. 12.10 Alamat Manager:192.168.12.10:2377Runtimes:runcDefault Runtime:runcInit Binary:versi buruh pelabuhan-initcontainerd:versi 4ab9917febca54791c5f071a9d1f404867857fccrunc:versi 54296cf40ad8143b62dbcaa1d90e520a2136ddfeinit:949e6faSecurity Pilihan:seccomp Profil:defaultKernel versi:3.10.0-123.el7.x86_64Operating Sistem:CentOS Linux 7 (Core)OSType:linuxArsitektur:x86_64CPU:1Total Memori:979.9 MiBNama:dockerm.itzgeek.local ID:OTNI:UJZA:7CC4:TS5N:TVJ7:XXQE:5J7Q:ENWW:ZVPD:3VJI:F5DL:JYSPDocker Root Dir:/var/lib/dockerDebug Mode (klien):falseDebug Mode (server):falseRegistry:https:/ /index.docker.io/v1/PERINGATAN:bridge-nf-call-iptables dinonaktifkanPERINGATAN:bridge-nf-call-ip6tables dinonaktifkanEksperimental:falseInsecure Registries: 127.0.0.0/8Live Restore Diaktifkan:false
Anda dapat membuat daftar node Docker di swarm dengan perintah berikut.
[root@dockerm ~]# simpul buruh pelabuhan ls
Keluaran:
ID HOSTNAME STATUS KETERSEDIAAN MANAGER STATUSUHH38rpazd5tnzjph2g5rhgxy * dockerm.itzgeek Siappre Pemimpin Aktif halaman:1 2
Cara Setup Docker Private Registry di CentOS 7 / Ubuntu 16.04 / Fedora 26/25 Cara Mendaftar Server Linux ke Server Katello menggunakan Kunci AktivasiCent OS