Docker Swarm adalah alat yang memungkinkan Anda untuk menyebarkan sekelompok Host Docker. Ini adalah alat pengelompokan asli yang disediakan oleh Docker yang menyediakan ketersediaan tinggi dan kinerja tinggi untuk aplikasi Anda dengan mendistribusikannya ke semua node di dalam swarm cluster.
Dalam tutorial ini, kami akan menunjukkan kepada Anda langkah demi langkah cara membuat Swarm Cluster menggunakan Ubuntu 16.04. Kami akan membuat swarm cluster menggunakan 2 mesin server ubuntu, 1 node server sebagai pengelola dan 1 lainnya sebagai pekerja. Dan kemudian kami akan mencoba menerapkan layanan Nginx sederhana ke swarm cluster.
Prasyarat
- 2 atau lebih - Server Ubuntu 16.04
- manajer 132.92.41.4
- pekerja01 132.92.41.5
- Hak istimewa root
Apa yang akan kita lakukan?
- Konfigurasi Host
- Instal Docker-ce
- Inisialisasi Docker Swarm
- Menerapkan Layanan Pertama ke Cluster
Langkah 1 - Konfigurasikan Host
Sebelum menginstal paket apa pun untuk swarm cluster, kami akan mengonfigurasi file host di kedua server.
Jalankan perintah di bawah ini di semua server, 'manager' dan 'worker01'.
Edit file '/etc/hosts' menggunakan editor vim.
vim /etc/hosts
Tambahkan konfigurasi berikut ke akhir baris.
132.92.41.4 manager
132.92.41.5 worker01
Simpan dan keluar.
Sekarang ping semua node menggunakan 'hostname' alih-alih menggunakan alamat IP.
ping -c 3 manager
ping -c 3 worker01
Dan pastikan itu berfungsi di semua host.
Langkah 2 - Instal Docker-ce
Untuk membuat swarm cluster, kita perlu menginstal docker di semua node server. Pada langkah ini, kita akan menginstal Docker-ce Community Edition pada kedua server manager dan worker01.
Instal dependensi Docker-ce menggunakan perintah apt di bawah ini.
sudo apt install apt-transport-https software-properties-common ca-certificates -y
Sekarang tambahkan kunci Docker dan repositori Docker-ce ke server kami.
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
sudo echo "deb [arch=amd64] https://download.docker.com/linux/ubuntu xenial stable" > /etc/apt/sources.list.d/docker-ce.list
Perbarui repositori dan instal paket Docker-ce menggunakan perintah apt install di bawah ini.
sudo apt update
sudo apt install docker-ce -y
Setelah instalasi selesai, mulai layanan buruh pelabuhan dan aktifkan untuk diluncurkan setiap kali sistem boot.
systemctl start docker
systemctl enable docker
Docker-ce sekarang diinstal pada node server kami.
Selanjutnya, kita akan mengkonfigurasi buruh pelabuhan untuk berjalan sebagai pengguna biasa atau pengguna non-root.
Buat pengguna baru bernama 'mohammad' dan tambahkan ke grup 'docker'.
useradd -m -s /bin/bash mohammad
sudo usermod -aG docker mohammad
Sekarang login ke pengguna 'mohammad' dan jalankan perintah docker hello-world seperti di bawah ini.
su - mohammad
docker run hello-world
Dan Anda akan mendapatkan hello world dari docker seperti gambar di bawah ini.
Langkah 3 - Buat Swarm Cluster
Pada langkah ini, kita akan membuat Swarm Cluster dari node kita. Dan untuk membuat node swarm cluster, kita perlu menginisialisasi mode swarm pada node 'manager' dan kemudian menggabungkan node 'worker01' ke cluster.
Inisialisasi mode Docker Swarm dengan menjalankan perintah docker di bawah ini pada node 'manager'.
docker swarm init --advertise-addr 132.92.41.4
Dan Anda akan mendapatkan hasil seperti gambar di bawah ini.
Anda akan melihat 'join-token' telah dibuat oleh node 'manager'.
Selanjutnya, kita perlu menambahkan node 'worker01' ke cluster 'manager'. Dan untuk melakukannya, kita memerlukan 'join-token' dari node cluster 'manager', jadi pastikan untuk menuliskannya di catatan Anda.
Jalankan perintah docker swarm join pada node 'worker01'.
docker swarm join --token SWMTKN-1-5p5ujrr67rl2rlmyvrj56fksblbcrtaeirf7fj5r4snid2vn6y-918gbqr02m64xct43i2ssi4qs 132.92.41.4:2377
Sekarang Anda akan mendapatkan hasil seperti gambar di bawah ini.
Node 'worker01' telah bergabung ke cluster.
Periksa dengan menjalankan perintah berikut pada node 'manager'.
docker node ls
Sekarang Anda melihat node 'worker01' telah bergabung dengan swarm cluster.
Swarm Cluster telah dibuat.
Langkah 4 - Menerapkan Layanan Pertama ke Cluster
Pada langkah ini, kami akan membuat dan menyebarkan layanan pertama kami ke swarm cluster. Kami ingin membuat server web Nginx layanan baru yang akan berjalan pada port http default 80, dan kemudian mengeksposnya ke port 8080 di server host, dan kemudian mencoba mereplikasi layanan nginx di dalam swarm cluster.
Buat Layanan
Buat layanan Nginx baru bernama 'my-web' dan ekspos port HTTP container ke port 8080 di host.
docker service create --name my-web --publish 8080:80 nginx:1.13-alpine
Dan ketika sudah dibuat, periksa menggunakan perintah layanan buruh pelabuhan di bawah ini.
docker service ls
Dan Anda akan mendapatkan hasil seperti gambar di bawah ini.
Layanan Nginx telah dibuat dan disebarkan ke swarm cluster sebagai layanan bernama 'my-web', didasarkan pada Nginx Alpine Linux, mengekspos port HTTP dari layanan kontainer ke port '8080' di host, dan itu hanya memiliki 1 replika.
Replika dan Skala Layanan
Sekarang kita akan membuat replika untuk layanan 'my-web'. Kami akan membuat 2 replika layanan 'my-web', sehingga layanan tersebut dapat diakses di node 'manager' dan 'worker01'.
Untuk mereplikasi layanan 'web-saya', jalankan perintah berikut.
docker service scale my-web=2
Dan setelah selesai, cek kembali menggunakan perintah docker service.
docker service ls
Dan sekarang server memiliki 2 ulangan.
Buka browser web Anda dan ketik alamat IP node manager dengan port 8080.
http://manager:8080/
Dan Anda akan mendapatkan halaman default Nginx.
Di bawah ini adalah hasil dari simpul 'worker01'.
http://worker01:8080/
Swarm Cluster telah dibuat, dan layanan Nginx telah selesai di-deploy ke Swarm Cluster kami.