Rumah > Operasi dan penyelenggaraan > operasi dan penyelenggaraan linux > Linux dan Docker: Bagaimana untuk melaksanakan kluster kontena yang sangat tersedia?

Linux dan Docker: Bagaimana untuk melaksanakan kluster kontena yang sangat tersedia?

PHPz
Lepaskan: 2023-07-29 19:54:29
asal
1597 orang telah melayarinya

Linux dan Docker: Bagaimana untuk melaksanakan kluster kontena yang sangat tersedia?

Abstrak: Dengan perkembangan teknologi kontena, semakin banyak perusahaan secara beransur-ansur menggunakan aplikasi ke dalam kontena. Dalam persekitaran pengeluaran, mencapai ketersediaan tinggi untuk kelompok kontena adalah penting. Artikel ini akan memperkenalkan cara menggunakan Linux dan Docker untuk membina kluster kontena yang sangat tersedia, dan menunjukkan kaedah pelaksanaan khusus melalui contoh kod.

  1. Bina kluster Docker Swarm
    Docker Swarm ialah alat pengurusan kluster kontena asli yang disediakan oleh Docker. Ia membolehkan kami membentuk berbilang hos Docker ke dalam kelompok dan mengurus penggunaan dan pengendalian kontena secara seragam.

Mula-mula, pasang Docker pada setiap hos Docker yang anda mahu sertai kluster. Kemudian, pilih hos sebagai nod pengurusan kluster Swarm dan jalankan arahan berikut untuk memulakan kluster:

$ docker swarm init --advertise-addr <MANAGER-IP>
Salin selepas log masuk

Di mana, ialah alamat IP nod pengurusan. Melalui arahan di atas, kami akan mendapat token untuk hos lain untuk menyertai kluster. Seterusnya, jalankan arahan berikut pada hos lain yang ingin menyertai kluster:

$ docker swarm join --token <TOKEN> <MANAGER-IP>:<PORT>
Salin selepas log masuk

Antaranya, ialah token yang diperolehi dalam langkah sebelumnya, daripada nod pengurusan masing-masing dan nombor port.

  1. Konfigurasikan penemuan perkhidmatan
    Setiap nod dalam kelompok kontena perlu dapat menemui dan mengakses nod lain. Untuk melaksanakan penemuan perkhidmatan, kami boleh menggunakan alat seperti Consul atau Etcd. Di sini kita ambil Konsul sebagai contoh.

Mula-mula, pasang dan mulakan Consul pada semua hos Docker. Kemudian, jalankan arahan berikut untuk mencipta perkhidmatan Konsul:

$ docker service create --name consul --publish 8500:8500 --constraint 'node.role == manager' gliderlabs/consul-server -bootstrap
Salin selepas log masuk
Salin selepas log masuk

Perintah ini mencipta perkhidmatan bernama konsul pada nod pengurusan gugusan Swarm dan memetakan port 8500 kontena ke port 8500 hos.

Seterusnya, jalankan arahan berikut pada nod lain untuk menyertai perkhidmatan Konsul:

$ docker service create --name consul --network <NETWORK> gliderlabs/consul-agent -join consul
Salin selepas log masuk

Di mana, ialah nama rangkaian gugusan Swarm.

  1. Buat perkhidmatan kontena
    Dalam kluster kontena yang sangat tersedia, kami perlu menggunakan aplikasi ke berbilang contoh kontena dan mengedarkan permintaan melalui pengimbangan beban. Docker Swarm menyediakan konsep yang dipanggil perkhidmatan untuk menguruskan perkhidmatan kontena.

Mula-mula, sediakan imej Docker yang mengandungi aplikasi yang ingin kami gunakan. Kemudian, jalankan perintah berikut untuk mencipta perkhidmatan:

$ docker service create --name <SERVICE-NAME> --replicas <REPLICAS> --publish <PORT> <IMAGE>
Salin selepas log masuk

di mana ialah nama perkhidmatan, untuk dipetakan, < ;IMAGE> ialah imej Docker di mana aplikasi berada.

  1. Jalankan Perkhidmatan Kontena
    Perkhidmatan yang dibuat dalam langkah sebelumnya akan menggunakan tika kontena secara automatik pada berbilang nod dalam kelompok.

Anda boleh menggunakan arahan berikut untuk melihat status berjalan perkhidmatan dan pengedaran contoh kontena:

$ docker service ls
$ docker service ps <SERVICE-NAME>
Salin selepas log masuk
  1. Mencapai pengimbangan beban
    Untuk mencapai pengimbangan beban, kami boleh menggunakan fungsi pengimbangan beban terbina dalam Docker Swarm. Melalui nama dan nombor port perkhidmatan, anda boleh mengakses berbilang contoh kontena di belakang perkhidmatan.
  2. Mencapai pengembangan automatik
    Apabila beban dalam kelompok kontena menjadi lebih besar, kita boleh mencapai pengembangan automatik dengan menambah bilangan contoh kontena.

Anda boleh menggunakan perintah berikut untuk mengembangkan bilangan tika perkhidmatan:

$ docker service scale <SERVICE-NAME>=<REPLICAS>
Salin selepas log masuk

di mana ialah nama perkhidmatan dan

Ringkasan: Menggunakan Linux dan Docker untuk membina kluster kontena yang sangat tersedia bukan sahaja meningkatkan ketersediaan aplikasi, tetapi juga menyediakan penskalaan anjal dan keupayaan mengimbangi beban. Melalui konfigurasi dan pengurusan yang munasabah, kami boleh mencapai perkhidmatan kontena yang cekap dan stabil.

Contoh kod:

  1. Memulakan kluster Swarm:

    $ docker swarm init --advertise-addr 192.168.0.1
    Salin selepas log masuk
  2. Sertai kluster Swarm:

    $ docker swarm join --token <TOKEN> 192.168.0.1:2377
    Salin selepas log masuk
  3. Buat perkhidmatan Consul

    $ docker service create --name consul --publish 8500:8500 --constraint 'node.role == manager' gliderlabs/consul-server -bootstrap
    Salin selepas log masuk
    Salin selepas log masuk
    :

  4. Consul
    $ docker service create --name consul --network my-network gliderlabs/consul-agent -join consul
    Salin selepas log masuk
  5. $ docker service create --name my-service --replicas 3 --publish 8080:8080 my-app
    Salin selepas log masuk

  6. Buat perkhidmatan aplikasi:
  7. $ docker service scale my-service=5
    Salin selepas log masuk

    Kembangkan bilangan contoh perkhidmatan:
  8. rrreee

  9. Atas ialah kandungan terperinci Linux dan Docker: Bagaimana untuk melaksanakan kluster kontena yang sangat tersedia?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan