GNU/Linux >> Belajar Linux >  >> Linux

Cara menyebarkan layanan ke cluster Docker Swarm

Selengkapnya tentang pusat data

Docker Swarm adalah salah satu kluster kontainer termudah yang dapat Anda terapkan. Dalam beberapa menit, Anda dapat mengaktifkan dan menjalankan cluster untuk ketersediaan tinggi, failover, dan skalabilitas. Setelah aktif dan berjalan, Anda kemudian dapat menyebarkan container ke swarm untuk memanfaatkan cluster. Misalnya, Anda dapat menerapkan layanan yang dapat diskalakan untuk memenuhi permintaan apa pun yang datang.

Itulah tepatnya yang akan saya tunjukkan kepada Anda. Di sini, pertama-tama kita akan menginstal Docker Swarm dan kemudian menerapkan layanan ke cluster baru sehingga dapat diskalakan ke tingkat apa pun yang sesuai dengan kebutuhan perusahaan Anda.

Yang Anda perlukan

Saya akan mendemonstrasikan pada sebuah cluster yang terdiri dari satu pengontrol dan dua node, yang semuanya akan berjalan di Ubuntu Server 20.04. Jika Anda menggunakan distribusi Linux yang berbeda, Anda mungkin perlu mengubah langkah penginstalan Docker (tetapi tidak lebih).

Dengan mengatakan itu, mari kita berkerumun.

Cara menginstal Docker

Hal pertama yang harus kita lakukan adalah menginstal Docker. Pastikan untuk mengikuti langkah-langkah yang sama ini pada pengontrol Anda dan seberapa banyak node yang Anda rencanakan untuk diterapkan.

Masuk ke server Anda dan perbarui apt dengan:

sudo apt-get update

Selanjutnya, instal dependensi yang diperlukan dengan perintah:

sudo apt-get install ca-certificates curl gnupg lsb-release -y

Tambahkan kunci GPG Docker resmi:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

Tambahkan repositori stabil Docker dengan:

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Instal Mesin Docker dengan:

sudo apt-get update

sudo apt-get install docker-ce docker-ce-cli containerd.io -y

Mulai dan aktifkan Docker dengan:

sudo systemctl enable --now docker

Tambahkan pengguna Anda ke grup buruh pelabuhan dengan perintah:

sudo usermod -aG docker $USER

Buat sistem mengetahui grup baru dengan:

newgrp docker

Ulangi langkah di atas untuk semua node Anda.

Kembali ke pengontrol Docker, inisialisasi swarm dengan:

docker swarm init --advertise-addr SERVER

Di mana SERVER adalah alamat IP untuk Docker Controller.

Anda kemudian akan disajikan dengan perintah join yang akan terlihat seperti ini:

docker swarm join --token SWMTKN-1-46uxtlbe3wrelly1fe5e65p1wdvg95bcjo48izvptpwof62rdo-42yl4jprovhng56sgxmyv7arv 192.168.1.13:2377

Salin perintah itu dan jalankan dari semua node Anda. Setelah Anda selesai melakukannya, Anda dapat memverifikasi gabungan dengan mengeluarkan perintah berikut pada pengontrol:

docker info

Anda akan melihat output seperti ini:

Swarm: active

NodeID: wb44efzwy68x9gek45ee1nbnb

Is Manager: true

ClusterID: vjec4hz1sjj535x9w0mspox87

Managers: 1

Nodes: 3

Default Address Pool: 10.0.0.0/8

SubnetSize: 24

Data Path Port: 4789

Orchestration:

Task History Retention Limit: 5

Cara men-deploy layanan ke swarm

Sekarang, kita dapat menyebarkan layanan ke swarm kita. Mari kita sederhanakan ini pada awalnya dan menerapkan layanan kontainer NGINX yang tidak dapat berinteraksi dengan kita. Untuk melakukannya, jalankan perintah berikut pada pengontrol:

docker service create --name nginx_test nginx

Untuk memeriksa status layanan, jalankan perintah:

docker service ls

Anda akan melihat bahwa layanan NGINX kami telah direplikasi dengan keluaran yang mirip dengan ini:

zie1n4nm5es3   nginx_test             replicated   1/1                nginx:latest

Contoh kami di atas hanya mengambil keuntungan dari salah satu node kami. Bagaimana jika kita ingin menyebarkan layanan itu ke ketiga node? Untuk itu, perintah kita akan seperti ini:

docker service create --replicas 3 --name nginx3nodes nginx

Berikan perintah:

docker service ls

Anda akan melihat penerapan nginx3nodes kami telah direplikasi ke 3 dari 3 node dengan output berikut:

y1yu8fq27aab   nginx3nodes              replicated   3/3                nginx:latest

Layanan ini sekarang memanfaatkan ketiga node di cluster kami. Anda dapat menurunkan skala layanan tersebut menjadi 2 node dengan perintah:

docker service scale nginx3nodes=2

Periksa statusnya dengan:

docker service ls

Anda sekarang akan melihat layanan nginx pada 2/2 node.

Katakanlah Anda memiliki lima node di swarm Anda. Jika Anda ingin menskalakan layanan ke kelima node, perintahnya adalah:

docker service scale nginx3nodes=5

Untuk menghapus layanan, Anda akan mengeluarkan perintah:

docker service rm nginx3nodes

Katakanlah Anda ingin memperbarui gambar penampung dalam penerapan Anda. Beberapa hari telah berlalu sejak pertama kali di-deploy dan Anda ingin memastikan bahwa Anda menggunakan image container terbaru yang tersedia. Kami akan menganggap nginx:latest adalah gambar kontainer yang diperbarui dan untuk memperbarui layanan itu dengan gambar baru, Anda akan mengeluarkan perintah:

docker service update --image nginx:latest nginx3nodes

Satu catatan terakhir, jika Anda ingin lebih mudah mengelola swarm, gunakan Portainer pada controller dengan perintah:

docker run -d -p 8000:8000 -p 9443:9443 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce

Setelah digunakan, buka http://SERVER:9443 (Di mana SERVER adalah alamat IP server). Setelah membuat pengguna admin dan masuk, Anda akan melihat Swarm terdaftar di navigasi kiri. Klik itu untuk melihat cluster Anda (Gambar A ).

Gambar A

Dan itulah dasar-dasar menjalankan Docker Swarm dan men-deploy layanan ke node.

Berlangganan ke Tech TechRepublic Cara Membuat Teknologi Bekerja di YouTube untuk semua saran teknologi terbaru untuk profesional bisnis dari Jack Wallen.

Tautan sumber


Linux
  1. Cara Menyebarkan Layanan Mikro dengan Docker

  2. Cara Menyebarkan Aplikasi dengan Rancher

  3. Cara Menyebarkan Wadah nginx dengan Docker di Linode

  1. Cara Menyebarkan Load Balancing Nginx di Cluster Kubernetes di Ubuntu 18.04 LTS

  2. Cara men-deploy pod pertama Anda di Cluster Kubernetes

  3. Cara Menyebarkan PostgreSQL sebagai Wadah Docker

  1. Cara Menyebarkan PostgreSQL di Docker Container

  2. Cara Menyebarkan dan Menjalankan Redis di Docker

  3. Cara Menyebarkan Proksi Terbalik NGINX di Docker