Kubernetes kini merupakan salah satu sistem orkestrasi kontena yang paling popular Ia menyediakan pengurusan dan penggunaan kontena automatik yang berkuasa dan digunakan secara meluas dalam pengkomputeran awan, DevOps dan bidang lain. Sebagai bahasa pengaturcaraan web biasa, PHP juga mempunyai operasi khusus dalam Kubernetes Artikel ini akan memperkenalkan beberapa operasi Kubernetes biasa dalam pengaturcaraan PHP.
Dalam Kubernetes, perkhidmatan (perkhidmatan) ialah konsep logik abstrak yang digunakan untuk menerangkan sekumpulan Pod yang berkongsi alamat IP dan nombor port yang sama. Dengan mentakrifkan objek perkhidmatan, pengurusan dinamik Pods boleh dicapai, seperti pengimbangan beban, penemuan perkhidmatan automatik, komunikasi rangkaian dalaman, dsb.
Dalam pengaturcaraan PHP, anda boleh menggunakan API Kubernetes untuk mencipta objek perkhidmatan, seperti kod contoh berikut:
<?php require 'vendor/autoload.php'; use KubernetesClient; $client = new Client([ 'master' => 'http://kubernetes-master:8080' ]); $service = $client->services()->createService([ 'apiVersion' => 'v1', 'kind' => 'Service', 'metadata' => [ 'name' => 'my-service' ], 'spec' => [ 'selector' => [ 'app' => 'my-app' ], 'ports' => [ [ 'name' => 'http', 'protocol' => 'TCP', 'port' => 80, 'targetPort' => 80 ] ], 'type' => 'ClusterIP' ] ]); echo "Service {$service['metadata']['name']} created ";
Kod ini menggunakan kelas KubernetesClient
untuk mencipta objek klien Kubernetes, Kemudian buat objek perkhidmatan melalui kaedah createService
. Objek perkhidmatan termasuk beberapa atribut penting, seperti apiVersion
, kind
, metadata
dan spec
, dengan metadata
termasuk nama perkhidmatan dan spec
termasuk maklumat konfigurasi perkhidmatan, seperti sebagai nombor port, Pemilih dan jenis dll.
Pengerahan Kubernetes (pengerahan) ialah sumber orkestrasi kontena yang digunakan untuk mencipta dan mengurus Pod secara dinamik Keperluan beban dan senario aplikasi yang berbeza. Biasanya, objek penempatan sepadan dengan satu atau lebih replika Pod untuk mencapai ketersediaan tinggi dan toleransi kesalahan.
Dalam pengaturcaraan PHP, anda boleh menggunakan API Kubernetes untuk mencipta objek penempatan, seperti kod contoh berikut:
<?php require 'vendor/autoload.php'; use KubernetesClient; $client = new Client([ 'master' => 'http://kubernetes-master:8080' ]); $deployment = $client->deployments()->createDeployment([ 'apiVersion' => 'apps/v1', 'kind' => 'Deployment', 'metadata' => [ 'name' => 'my-deploy' ], 'spec' => [ 'selector' => [ 'matchLabels' => [ 'app' => 'my-app' ] ], 'replicas' => 2, 'template' => [ 'metadata' => [ 'labels' => [ 'app' => 'my-app' ] ], 'spec' => [ 'containers' => [ [ 'name' => 'php-app', 'image' => 'my-images/php:latest', 'ports' => [ [ 'containerPort' => 80 ] ] ] ] ] ] ] ]); echo "Deployment {$deployment['metadata']['name']} created ";
Kod ini menggunakan kelas KubernetesClient
untuk mencipta objek klien Kubernetes, Kemudian buat objek penempatan melalui kaedah createDeployment
. Objek pengerahan termasuk beberapa atribut penting, seperti apiVersion
, kind
, metadata
dan spec
, dengan metadata
termasuk nama pengerahan dan spec
termasuk maklumat konfigurasi penggunaan, seperti sebagai templat Pod, Imej bekas, bilangan replika, pemilih, dsb.
Dalam Kubernetes, pengembangan dan pengecutan aplikasi yang dinamik boleh dicapai dengan mengubah suai bilangan replika yang digunakan. Dalam pengaturcaraan PHP, anda boleh menggunakan API Kubernetes untuk mengemas kini maklumat konfigurasi objek penempatan, seperti kod contoh berikut:
<?php require 'vendor/autoload.php'; use KubernetesClient; $client = new Client([ 'master' => 'http://kubernetes-master:8080' ]); $deployment = $client->deployments()->updateDeployment('my-deploy', [ 'spec' => [ 'replicas' => 4 ] ]); echo "Deployment {$deployment['metadata']['name']} updated ";
Kod ini menggunakan kelas KubernetesClient
untuk mencipta objek klien Kubernetes dan kemudian lulus updateDeployment
Kaedah untuk mengemas kini bilangan replika objek yang digunakan. Mengemas kini objek kerahan boleh dicapai dengan memanggil kaedah penetap objek kerahan, seperti setReplicas
.
Dalam Kubernetes, peningkatan aplikasi yang lancar boleh dicapai melalui kemas kini bergulir. Proses kemas kini rolling biasanya termasuk langkah berikut: mula-mula buat objek penempatan baharu, dan kemudian gantikan secara beransur-ansur salinan Pod dalam objek penempatan lama dengan salinan Pod dalam objek penempatan baharu.
Dalam pengaturcaraan PHP, anda boleh menggunakan API Kubernetes untuk melaksanakan operasi kemas kini bergulir, seperti kod contoh berikut:
<?php require 'vendor/autoload.php'; use KubernetesClient; $client = new Client([ 'master' => 'http://kubernetes-master:8080' ]); $newDeployment = $client->deployments()->createDeployment([ 'apiVersion' => 'apps/v1', 'kind' => 'Deployment', 'metadata' => [ 'name' => 'my-deploy-v2' ], 'spec' => [ 'selector' => [ 'matchLabels' => [ 'app' => 'my-app-v2' ] ], 'replicas' => 2, 'template' => [ 'metadata' => [ 'labels' => [ 'app' => 'my-app-v2' ] ], 'spec' => [ 'containers' => [ [ 'name' => 'php-app', 'image' => 'my-images/php:v2', 'ports' => [ [ 'containerPort' => 80 ] ] ] ] ] ] ] ]); $client->deployments()->rollingUpdateDeployment('my-deploy', $newDeployment, [ 'strategy' => [ 'type' => 'RollingUpdate', 'rollingUpdate' => [ 'maxSurge' => 1, 'maxUnavailable' => 0 ] ], 'minReadySeconds' => 30 ]); echo "Deployment my-deploy rolling updated to v2 ";
Kod ini mula-mula mencipta objek penggunaan baharu my-deploy-v2
, dan kemudian Gunakan kaedah rollingUpdateDeployment
untuk memulakan operasi kemas kini rolling. Operasi kemas kini bergulir termasuk beberapa parameter penting, seperti strategi kemas kini (type
, maxSurge
, maxUnavailable
), masa penyediaan minimum (minReadySeconds
), dsb.
Kesimpulan
Kubernetes ialah sistem orkestrasi kontena yang berkuasa yang menyediakan banyak API dan alatan untuk memudahkan pengurusan dan penggunaan kontena. Dalam pengaturcaraan PHP, anda boleh mengendalikan kluster Kubernetes melalui API Kubernetes, seperti membuat perkhidmatan, membuat penempatan, melanjutkan penggunaan dan melancarkan pengerahan kemas kini. Operasi ini boleh membantu pembangun PHP membina aplikasi kontena yang sangat tersedia, cekap dan boleh skala untuk memenuhi keperluan perniagaan yang berbeza.
Atas ialah kandungan terperinci Apakah operasi Kubernetes biasa dalam pengaturcaraan PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!