Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara menggunakan Kubernetes dalam PHP untuk kontena API dan penggunaan automatik

Cara menggunakan Kubernetes dalam PHP untuk kontena API dan penggunaan automatik

王林
王林asal
2023-06-17 16:40:51809semak imbas

Dalam pembangunan perisian moden, kontena dan penggunaan automatik telah menjadi bahagian yang sangat diperlukan. Kubernetes ialah salah satu platform orkestrasi kontena yang paling popular hari ini, menyediakan cara yang fleksibel, berskala dan terurus untuk mengurus aplikasi kontena. Dalam artikel ini, kami akan meneroka cara menggunakan Kubernetes untuk kontena API dan penggunaan automatik dalam aplikasi PHP.

Langkah Pertama: Menggunakan Docker dalam Aplikasi PHP

Sebelum menggunakan Kubernetes, kita perlu menyimpan aplikasi PHP. Docker ialah salah satu teknologi kontena yang paling popular di luar sana, jadi kami akan menggunakan Docker untuk menyimpan aplikasi PHP.

Pertama, kita perlu mencipta fail Docker untuk mentakrifkan imej Docker bagi aplikasi PHP. Berikut ialah contoh asas Dockerfile:

# 使用PHP 7.4作为基础镜像
FROM php:7.4-apache

# 将应用程序复制到容器中
COPY . /var/www/html/

# 安装PHP扩展
RUN docker-php-ext-install pdo_mysql

# 配置Apache
RUN a2enmod rewrite

# 暴露端口
EXPOSE 80

Dalam Dockerfile ini, kami mula-mula menggunakan PHP 7.4 sebagai imej asas dan menyalin aplikasi ke dalam bekas. Kami kemudiannya memasang sambungan pdo_mysql dan mendayakan modul penulisan semula Apache. Akhirnya, kami mendedahkan port 80 kontena.

Seterusnya, kita boleh membina dan menjalankan imej Docker menggunakan arahan berikut:

# 构建镜像
docker build -t my-app .
# 运行容器
docker run -p 80:80 my-app

Ini akan membina imej Docker bernama my-app dan memetakannya ke port 80 mesin hos.

Langkah 2: Gunakan aplikasi PHP dalam Kubernetes

Setelah kami menyimpan aplikasi PHP, kami boleh menggunakan aplikasi tersebut ke dalam kelompok Kubernetes. Berikut ialah contoh fail penggunaan Kubernetes asas:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app-deployment
  labels:
    app: my-app
spec:
  replicas: 3
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
      - name: my-app
        image: my-registry/my-app:latest
        ports:
        - containerPort: 80
      imagePullSecrets:
      - name: my-registry-secret

Dalam fail penggunaan Kubernetes ini, kami mentakrifkan Deployment bernama my-app-deployment. Medan replika mentakrifkan bilangan replika Pod yang ingin kami buat, medan pemilih mentakrifkan pemilih label yang ingin kami gunakan dan medan templat mentakrifkan templat Pod yang ingin kami gunakan.

Dalam medan kontena, kami menentukan bekas yang akan dijalankan dalam Pod. Medan imej menentukan imej bekas yang kami mahu gunakan dan medan port menentukan port yang akan didedahkan oleh bekas. Akhir sekali, kami menggunakan medan imagePullSecrets untuk menentukan kelayakan pendaftaran yang kami gunakan untuk menarik imej daripada pendaftaran peribadi.

Seterusnya, kita boleh menggunakan aplikasi PHP dalam gugusan Kubernetes menggunakan arahan berikut:

# 创建Secret
kubectl create secret docker-registry my-registry-secret 
    --docker-server=my-registry 
    --docker-username=my-username 
    --docker-password=my-password 
    --docker-email=my-email
# 创建Deployment
kubectl apply -f my-app-deployment.yaml

Ini akan mencipta Rahsia yang dipanggil my-registry-secret yang mengandungi imej yang kami gunakan bukti kelayakan Warehouse. Kemudian, kita boleh menggunakan perintah kubectl apply untuk menggunakan Deployment yang baru ditakrifkan kepada kluster.

Langkah 3: Penggunaan automatik

Satu faedah menggunakan Kubernetes untuk penggunaan automatik ialah apabila kod dikemas kini, kami hanya perlu mengemas kini imej Docker dan menggunakan semula Deployment. Berikut ialah skrip ringkas yang boleh digunakan untuk membina dan menggunakan versi baharu imej Docker secara automatik:

#!/bin/bash
# 构建新镜像
docker build -t my-registry/my-app:latest .
# 推送镜像到镜像仓库
docker push my-registry/my-app:latest
# 在Kubernetes中更新Deployment
kubectl set image deployment/my-app-deployment my-app=my-registry/my-app:latest

Dalam skrip ini, kami mula-mula membina imej Docker baharu menggunakan arahan binaan docker dan kemudian menolak imej itu. menggunakan arahan tolak docker Tolak ke gudang cermin. Akhir sekali, kami menggunakan perintah imej set kubectl untuk mengemas kini imej bekas aplikasi saya bagi penggunaan aplikasi saya.

Anda boleh menggunakan mana-mana platform CI/CD seperti Jenkins atau GitLab untuk mengautomasikan skrip ini.

Kesimpulan

Dalam artikel ini, kami membincangkan cara menggunakan Kubernetes untuk kontena API dan penggunaan automatik dalam aplikasi PHP. Kami mula-mula menyimpan aplikasi PHP dan kemudian mengerahkannya ke dalam kelompok menggunakan Kubernetes. Akhir sekali, kami membincangkan cara menggunakan skrip untuk mengautomasikan proses binaan dan penggunaan. Kubernetes memberi kami cara yang fleksibel, berskala dan boleh dipercayai untuk mengurus aplikasi kontena, yang membawa banyak faedah kepada ekosistem pembangunan perisian kami.

Atas ialah kandungan terperinci Cara menggunakan Kubernetes dalam PHP untuk kontena API dan penggunaan automatik. 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