Tutorial sederhana ini menunjukkan bagaimana kluster kawanan docker yang sedang berjalan dapat dibuat dalam kurang lebih 15 menit.
1. Pengenalan
Setiap kali Anda membaca "Docker Swarm" kita sebenarnya berbicara tentang "mode Docker Swarm". (bukan produk Docker swarm yang sudah usang).
1.1 Mengapa Docker Swarm?
Docker Swarm adalah alat yang tepat untuk menyebarkan tumpukan aplikasi Anda ke produksi, dalam klaster terdistribusi, menggunakan file yang sama yang digunakan oleh Docker Compose secara lokal.
Keuntungan tambahan adalah:
- Replikabilitas (file dev dapat digunakan dalam produksi)
- Ketahanan (kelompok toleran-kesalahan)
- Kesederhanaan dan kecepatan untuk pengembangan dan penyebaran
Manfaat utama Docker Swarm adalah kesederhanaan dan kecepatan pengembangan sambil tetap dapat menyiapkan klaster terdistribusi yang siap untuk produksi dalam 15 menit.
1.2 Prasyarat
Untuk mengikuti tutorial ini di Docker Swarm Anda memerlukan prasyarat ini:
- Keakraban dasar dengan Linux dan Docker
- Perlu akses ke setidaknya 2 (saya menggunakan empat) server ubuntu dari penyedia cloud tempat Docker Swarm akan berjalan
- Domain yang menunjuk ke salah satu server Anda
2. Buat Docker Swarm
2.1 Menginstal dependensi
Dalam infrastruktur server yang baru dipasang, setiap ketergantungan harus dipasang untuk membuat kluster kawanan. Ini termasuk Memperbarui sistem operasi dan memasang docker-engine.
Untuk memperbarui sistem operasi ke versi terbaru
sudo apt-get update && sudo apt-get upgrade
Selanjutnya, curl
dapat digunakan untuk mendownload get-docker.sh yang merupakan skrip yang dibuat oleh docker.com untuk menginstal docker dengan mudah di sistem:
curl -fsSL https://get.docker.com -o get-docker.sh
Perintah curl
ini membuka situs web, membaca konten, dan mentransfer kontennya ke dalam file get-docker.sh
Selanjutnya, file harus dieksekusi (sebagai pengguna root):
sh get-docker.sh
Skrip ini menginstal semua yang Anda butuhkan untuk menggunakan docker di server Anda.
2.2 Inisialisasi Docker Swarm
Setelah instalasi Docker selesai pilih simpul Manajer Anda. Node Manajer akan menjadi server di dalam klaster Anda yang melakukan semua penyebaran dan pengelolaan. Node Manajer harus menjadi server di dalam lingkungan yang IP-nya ditargetkan oleh nama domain.
Pada manajer Anda jalankan perintah berikut:
docker swarm init --advertise-addr X.X.X.X
This command activates swarm mode on the server. The advertise-addr
has to be the internal IP from the server. (normally if you buy more than one server from the same hosting company you can put all of them into an internal network and get the internal IP).
2.3 Menyelesaikan Docker Swarm
Langkah terakhir adalah bergabung dengan kawanan buruh docker dari server lain. Setelah menjalankan perintah sebelumnya akan ada beberapa baris yang dicetak di akhir yang harus dieksekusi pada server yang tersisa di klaster Anda. Akan terlihat seperti ini:
docker swarm join --token SOME_CRYPTIC_HASH_TOKEN X.X.X.X:2377
Jalankan perintah pada setiap server lain di jaringan Anda yang kemudian akan terhubung ke simpul Pekerja ke Manajer Anda.
3. Peningkatan opsional
Sekarang setelah kawanan siap untuk digunakan, dimungkinkan untuk menyebarkan layanan.
Saya akan menyarankan untuk menyebarkan setidaknya Portainer. Portainer adalah layanan manajemen kontainer yang dapat digunakan untuk mengelola dan menyebarkan layanan.
Sebagai titik awal, Anda dapat menggunakan docker-compose.yml ini
version: '3.2'
services:
agent:
image: portainer/agent
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /var/lib/docker/volumes:/var/lib/docker/volumes
networks:
- agent_network
deploy:
mode: global
placement:
constraints: [node.platform.os == linux]
portainer:
image: portainer/portainer-ce
command: -H tcp://tasks.agent:9001 --tlsskipverify
ports:
- "9000:9000"
- "8000:8000"
volumes:
- portainer_data:/data
networks:
- agent_network
deploy:
mode: replicated
replicas: 1
placement:
constraints: [node.role == manager]
networks:
agent_network:
driver: overlay
attachable: true
volumes:
portainer_data:
Setelah menyimpan file ini di simpul Manajer, itu dapat digunakan dalam Docker Swarm:
docker stack deploy -c docker-compose.portainer.yml portainer
Segera setelah menjalankan perintah, Portainer dapat diakses di http:// ip add anda:9000
Perlu diingat bahwa contoh contoh Portainer akan digunakan tanpa SSL. Untuk mencapai ini Anda dapat menggunakan penyeimbang beban seperti traefik. Sebagai titik awal, Anda dapat membaca artikel yang menjelaskan cara mengatur layanan traefik dalam lingkungan docker biasa:
Selain itu, saya sedang mengerjakan artikel follow-up yang berisi informasi tentang layanan terbaik yang ingin Anda miliki di Docker Swarm. traefik akan menjadi bagian darinya sebagai penyeimbang beban jadi kuti atau Berlangganan saya untuk mendapatkan informasi ketika artikel "docker swarm services" saya diterbitkan.
Sekian dan TerimaKasih