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?

Jul 29, 2023 pm 07:54 PM
linux docker Ketersediaan tinggi Kelompok bekas

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!

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Empat cara untuk melaksanakan multithreading dalam bahasa c Empat cara untuk melaksanakan multithreading dalam bahasa c Apr 03, 2025 pm 03:00 PM

Multithreading dalam bahasa dapat meningkatkan kecekapan program. Terdapat empat cara utama untuk melaksanakan multithreading dalam bahasa C: Buat proses bebas: Buat pelbagai proses berjalan secara bebas, setiap proses mempunyai ruang ingatan sendiri. Pseudo-Multithreading: Buat pelbagai aliran pelaksanaan dalam proses yang berkongsi ruang memori yang sama dan laksanakan secara bergantian. Perpustakaan multi-threaded: Gunakan perpustakaan berbilang threaded seperti PTHREADS untuk membuat dan mengurus benang, menyediakan fungsi operasi benang yang kaya. Coroutine: Pelaksanaan pelbagai threaded ringan yang membahagikan tugas menjadi subtask kecil dan melaksanakannya pada gilirannya.

Cara Membuka Web.xml Cara Membuka Web.xml Apr 03, 2025 am 06:51 AM

Untuk membuka fail web.xml, anda boleh menggunakan kaedah berikut: Gunakan editor teks (seperti Notepad atau TextEdit) untuk mengedit arahan menggunakan persekitaran pembangunan bersepadu (seperti Eclipse atau NetBeans) (Windows: Notepad Web.xml; Mac/Linux: Open -A -A TextEdit Web.xml)

Untuk apa yang paling baik digunakan oleh Linux? Untuk apa yang paling baik digunakan oleh Linux? Apr 03, 2025 am 12:11 AM

Linux paling baik digunakan sebagai pengurusan pelayan, sistem tertanam dan persekitaran desktop. 1) Dalam pengurusan pelayan, Linux digunakan untuk menjadi tuan rumah laman web, pangkalan data, dan aplikasi, menyediakan kestabilan dan kebolehpercayaan. 2) Dalam sistem tertanam, Linux digunakan secara meluas di rumah pintar dan sistem elektronik automotif kerana fleksibiliti dan kestabilannya. 3) Dalam persekitaran desktop, Linux menyediakan aplikasi yang kaya dan prestasi yang cekap.

Adakah saya perlu memasang klien oracle semasa menyambung ke pangkalan data oracle menggunakan GO? Adakah saya perlu memasang klien oracle semasa menyambung ke pangkalan data oracle menggunakan GO? Apr 02, 2025 pm 03:48 PM

Adakah saya perlu memasang klien oracle semasa menyambung ke pangkalan data oracle menggunakan GO? Semasa membangun di GO, menyambung ke pangkalan data Oracle adalah keperluan biasa ...

C Language Compilation Compilation: Panduan terperinci untuk pemula ke aplikasi praktikal C Language Compilation Compilation: Panduan terperinci untuk pemula ke aplikasi praktikal Apr 04, 2025 am 10:48 AM

C Language Conditional Compilation adalah mekanisme untuk selektif menyusun blok kod berdasarkan keadaan kompilasi masa. Kaedah pengenalan termasuk: menggunakan arahan #if dan #Else untuk memilih blok kod berdasarkan syarat. Ekspresi bersyarat yang biasa digunakan termasuk STDC, _WIN32 dan LINUX. Kes praktikal: Cetak mesej yang berbeza mengikut sistem operasi. Gunakan jenis data yang berbeza mengikut bilangan digit sistem. Fail header yang berbeza disokong mengikut pengkompil. Penyusunan bersyarat meningkatkan kebolehgunaan dan fleksibiliti kod, menjadikannya boleh disesuaikan dengan pengkompil, sistem operasi, dan perubahan seni bina CPU.

Libv adalah dua Libv adalah dua Apr 03, 2025 pm 08:03 PM

Saya membangunkan projek yang dipanggil Lua-Libuv dan gembira untuk berkongsi pengalaman saya. Hasrat asal projek ini adalah untuk meneroka cara menggunakan libuv (perpustakaan I/O yang tidak segerak yang ditulis dalam C) untuk membina pelayan HTTP yang mudah tanpa perlu mempelajari bahasa C secara mendalam. Dengan bantuan CHATGPT, saya menyelesaikan kod asas http.c. Apabila berurusan dengan sambungan yang berterusan, saya berjaya melaksanakan menutup sambungan dan membebaskan sumber pada masa yang tepat. Pada mulanya saya cuba membuat pelayan mudah yang mengakhiri program utama dengan menutup sambungan, tetapi saya mempunyai beberapa masalah. Saya telah cuba menghantar blok data menggunakan streaming, dan semasa ia berfungsi, ini menghalang benang utama. Pada akhirnya, saya memutuskan untuk berputus asa pada pendekatan ini kerana matlamat saya bukan untuk mempelajari bahasa C secara mendalam. Akhirnya, saya

Containerisasi CentOS dengan Docker: Menggunakan dan Mengurus Aplikasi Containerisasi CentOS dengan Docker: Menggunakan dan Mengurus Aplikasi Apr 03, 2025 am 12:08 AM

Menggunakan Docker untuk kontena, gunakan dan menguruskan aplikasi pada CentOS boleh dicapai melalui langkah -langkah berikut: 1. Pasang Docker, gunakan arahan YUM untuk memasang dan memulakan perkhidmatan Docker. 2. Mengurus imej dan bekas Docker, dapatkan imej melalui DockerHub dan menyesuaikan imej menggunakan DockerFile. 3. Gunakan DockerCompose untuk menguruskan aplikasi multi-kontainer dan menentukan perkhidmatan melalui fail YAML. 4. Menyebarkan permohonan, gunakan arahan DockerPull dan Dockerrun untuk menarik dan menjalankan bekas dari DockerHub. 5. Menjalankan pengurusan lanjutan dan menggunakan aplikasi kompleks menggunakan rangkaian dan jilid Docker. Melalui langkah -langkah ini, anda boleh menggunakan sepenuhnya d

【Rust Sendiri belajar】 Pengenalan 【Rust Sendiri belajar】 Pengenalan Apr 04, 2025 am 08:03 AM

1.0.1 Preface Projek ini (termasuk kod dan komen) telah direkodkan semasa karat saya yang diajar sendiri. Mungkin ada kenyataan yang tidak tepat atau tidak jelas, sila minta maaf. Jika anda mendapat manfaat daripadanya, ia lebih baik. 1.0.2 Mengapa Rustrust boleh dipercayai dan cekap? Karat boleh menggantikan C dan C, dengan prestasi yang sama tetapi keselamatan yang lebih tinggi, dan tidak memerlukan rekompilasi yang kerap untuk memeriksa kesilapan seperti C dan C. Kelebihan utama termasuk: Keselamatan Memori (mencegah penunjuk null dari dereferences, penunjuk menggantung, dan perbalahan data). Thread-safe (pastikan kod multi-threaded selamat sebelum pelaksanaan). Elakkan tingkah laku yang tidak ditentukan (mis., Arus dari batas, pembolehubah yang tidak diinisialisasi, atau akses kepada memori yang dibebaskan). Karat menyediakan ciri bahasa moden seperti generik

See all articles