Dengan populariti pengkomputeran awan dan kontena, Docker telah menjadi teknologi kontena ikonik dalam industri. Swarm, salah satu alat orkestrasi kontena Docker, juga memainkan peranan penting dalam teknologi kontena. Artikel ini akan memperkenalkan cara melaksanakan orkestrasi kontena Swarm sumber terbuka melalui PHP, serta operasi khusus dalam aplikasi praktikal.
1. Pengenalan kepada orkestrasi kontena Swarm
Swarm ialah salah satu alat pengurusan kluster dan orkestrasi kontena milik Docker. Ia boleh mencipta, memulakan, menghentikan dan memadam bekas melalui API atau baris arahan, dan menyokong berbilang hos untuk bekerjasama, menyambungkan berbilang Docker Daemons untuk membentuk gugusan kontena berskala besar dan menyediakan antara muka luaran supaya pembangun boleh mengurus dan menggunakan dengan mudah. aplikasi kontena.
Rajah seni bina Swarm adalah seperti berikut:
Swarm mengandungi tiga komponen utama:
Berikut ialah kod yang berkaitan dengan melaksanakan fungsi ini:
<?php // 使用PHP连接Swarm API $httpClient = new GuzzleHttpClient([ 'base_uri' => 'http://swarm.managet.com:2375', ]); // 创建任务 $response = $httpClient->post( '/tasks/create', [ 'json' => [ 'Name' => 'test', 'TaskTemplate' => [ 'ContainerSpec' => [ 'Image' => 'nginx', 'Mounts' => [ [ 'Source' => '/var/www/html', 'Target' => '/usr/share/nginx/html', 'Type' => 'bind', 'ReadOnly' => true, ], ], ], ], 'RestartPolicy' => [ 'Condition' => 'on-failure', 'Delay' => 5000000000, 'MaxAttempts' => 3, ], ], ] ); $taskId = json_decode($response->getBody(), true)['ID']; // 启动任务 $response = $httpClient->post( '/tasks/' . $taskId . '/start' ); // 停止任务 $response = $httpClient->post( '/tasks/' . $taskId . '/stop' ); // 删除任务 $response = $httpClient->delete( '/tasks/' . $taskId );
Kod di atas bersambung ke API Swarm melalui GuzzleHttp untuk melaksanakan fungsi mencipta, memulakan, menghentikan dan memadam tugas. Antaranya, mencipta tugasan perlu memasukkan maklumat seperti nama tugas, spesifikasi kontena, strategi mulakan semula, dsb. Untuk memulakan tugasan, anda hanya perlu lulus ID tugasan. Menghentikan dan memadamkan tugasan memerlukan lulus ID tugasan untuk operasi yang sepadan.
3. Aplikasi Praktikal
Dalam aplikasi praktikal, kita boleh menggunakan API PHP di atas untuk merealisasikan banyak senario aplikasi orkestrasi kontena Swarm Berikut adalah contoh khusus:
Mencapai pengimbangan beban dinamik: Tugas bekas boleh dibuat dan dipadamkan secara automatik berdasarkan beban permintaan untuk mencapai pengimbangan beban dan keupayaan penyesuaian. Mencapai ketersediaan tinggi: Dalam kelompok Swarm, perkhidmatan yang sama digunakan pada berbilang nod Apabila nod menjadi tidak normal, nod lain boleh mengambil alih perkhidmatan pada nod tersebut.Atas ialah kandungan terperinci PHP melaksanakan orkestrasi kontena Swarm sumber terbuka. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!