Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Cara menggunakan Docker untuk penskalaan mendatar dan pengimbangan beban bekas

Cara menggunakan Docker untuk penskalaan mendatar dan pengimbangan beban bekas

王林
王林asal
2023-11-07 09:19:49539semak imbas

Cara menggunakan Docker untuk penskalaan mendatar dan pengimbangan beban bekas

Dengan populariti pengkomputeran awan dan teknologi kontena, penskalaan mendatar dan pengimbangan beban telah menjadi ciri penting untuk aplikasi moden. Sebagai teknologi kontena yang popular, Docker menyediakan pelbagai kaedah untuk penskalaan mendatar dan pengimbangan beban kontena. Dalam artikel ini, kami akan memperkenalkan secara terperinci cara menggunakan Docker untuk penskalaan mendatar dan pengimbangan beban bekas, dan memberikan contoh kod khusus.

Penskalaan mendatar bekas

Penskalaan mendatar bekas merujuk kepada menambah atau mengurangkan bilangan bekas secara automatik berdasarkan keadaan beban. Docker menyediakan pelbagai kaedah untuk menskalakan bekas secara mendatar, termasuk menggunakan alatan seperti Docker Swarm, Docker Compose dan Kubernetes.

Dalam artikel ini, kami akan memperkenalkan cara menggunakan Docker Swarm untuk skala mendatar bekas. Docker Swarm ialah alat orkestrasi kontena asli Docker. Ia boleh mengurus berbilang nod Docker secara automatik dan berkembang secara mendatar dalam unit bekas.

Berikut ialah contoh penskalaan mendatar bekas menggunakan Docker Swarm. Kami akan menggunakan aplikasi web mudah sebagai sasaran demonstrasi, yang ditulis dalam Node.js. Kami mula-mula membuat Dockerfile untuk membina imej aplikasi web.

FROM node:12
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 8080
CMD [ "npm", "start" ]

Selepas membina imej ini, kami akan menggunakan Docker Swarm untuk memulakan berbilang bekas dan menskalakannya secara mendatar. Kita boleh menggunakan arahan berikut untuk memulakan Docker Swarm:

docker swarm init

Seterusnya, kita boleh menggunakan arahan berikut untuk memulakan perkhidmatan dan menentukan bilangan bekas yang perlu dimulakan:

docker service create --replicas 3 --name webapp -p 8080:8080 my-webapp

Ini akan memulakan 3 bekas bernama "webapp" , dan petakannya ke port 8080 hos. Jika anda perlu menukar bilangan bekas, anda boleh menggunakan arahan berikut:

docker service scale webapp=5

Ini akan meningkatkan bilangan bekas kepada 5. Docker Swarm akan memuatkan permintaan baki secara automatik antara semua bekas, dan apabila bekas gagal, ia akan memulakan semula bekas baharu secara automatik untuk memulihkan perkhidmatan.

Pengimbangan Beban Bekas

Pengimbangan beban kontena bermaksud mengagihkan permintaan kepada berbilang bekas dan memastikan setiap bekas mempunyai beban yang sama. Docker menyediakan pelbagai kaedah untuk memuatkan bekas baki, termasuk menggunakan alatan seperti Docker Swarm, Docker Compose dan Nginx.

Dalam artikel ini, kami akan memperkenalkan cara menggunakan Nginx untuk pengimbangan muatan kontena. Nginx ialah perisian pelayan web popular yang juga berfungsi sebagai pelayan proksi terbalik dan pengimbang beban.

Berikut ialah contoh penggunaan Nginx untuk pengimbangan muatan kontena. Kami akan menggunakan aplikasi web yang dibuat dalam bahagian sebelumnya dan memulakan berbilang bekas untuk mengendalikan permintaan. Kami mula-mula mencipta fail konfigurasi Nginx untuk menentukan strategi pengimbangan beban.

upstream webapp {
    server container1:8080;
    server container2:8080;
    server container3:8080;
}

server {
    listen 80;
    server_name my-webapp.com;
    location / {
        proxy_pass http://webapp/;
    }
}

Fail konfigurasi ini mentakrifkan pelayan huluan bernama "webapp", yang mengandungi alamat dan port 3 bekas. Kami kemudiannya akan memulakan bekas Nginx dalam Docker dan memetakan fail konfigurasi ini ke direktori konfigurasi pelayan Nginx dalam bekas.

docker run -d -p 80:80 --name nginx -v /path/to/nginx.conf:/etc/nginx/nginx.conf nginx

Dengan menggunakan Nginx untuk mengimbangi beban kontena, kami boleh mengedarkan permintaan kepada semua kontena dan memastikan setiap kontena mempunyai beban yang sama. Lebih-lebih lagi, Nginx turut menyokong ciri lanjutan lain seperti konfigurasi dinamik dan pengimbangan beban berasaskan berat.

Kesimpulan

Dalam artikel ini, kami memperkenalkan secara terperinci cara menggunakan Docker untuk penskalaan mendatar dan pengimbangan beban bekas, dan memberikan contoh kod khusus. Penskalaan mendatar dan pengimbangan beban bekas adalah ciri yang mesti ada untuk aplikasi moden, dan Docker menyediakan pelbagai alat berkuasa untuk mencapai keupayaan ini. Jika anda menggunakan Docker untuk mengurus aplikasi, pastikan anda menguasai teknik penskalaan kontena mendatar dan pengimbangan beban.

Atas ialah kandungan terperinci Cara menggunakan Docker untuk penskalaan mendatar dan pengimbangan beban bekas. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn