Docker Swarm Secara Singkat

· 3 min read
Docker Swarm Secara Singkat
Photo by Luca Bravo / Unsplash

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:

Menjelajahi Traefik: Reverse Proxy untuk Docker
Apa itu Traefik? Ini adalah reverse proxy yang dirancang untuk bekerja dengan Docker. Ini memungkinkan Anda untuk mem-proxy layanan dalam container dengan cara yang sangat sederhana dan deklaratif. Pada awalnya, Anda mungkin terintimidasi oleh label, tetapi Anda akan terbiasa. Mengapa Traefik dan bukan nginx, misalnya? Menurut kami Traefik lebih mudah

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