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

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

PHPz
PHPzasal
2023-07-29 19:54:291532semak imbas

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>

Di mana, 50c92af3965d072a01ca8b69c30c4169 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>

Antaranya, fe44cc81ab4c20272595cc1edf562112 ialah token yang diperolehi dalam langkah sebelumnya, cf9338ef3bca6ee9be08eaee0a61653c 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

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

Di mana, 1d4d001a3682e7356cdcdf6423e29e0f 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>

di mana 1f69d38ff7f38c32e75a871d13a954c2 ialah nama perkhidmatan, f9137ba0285552c9339eaf6686d35256 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>
  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>

di mana 1f69d38ff7f38c32e75a871d13a954c2 ialah nama perkhidmatan dan f9137ba0285552c9339eaf6686d35256

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
  2. Sertai kluster Swarm:

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

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

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

  6. Buat perkhidmatan aplikasi:
  7. $ docker service scale my-service=5

  8. Kembangkan bilangan contoh perkhidmatan:
  9. rrreee

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!

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