Rumah >pembangunan bahagian belakang >Tutorial Python >Cara menguruskan kontena aplikasi Python menggunakan Kubernetes

Cara menguruskan kontena aplikasi Python menggunakan Kubernetes

WBOY
WBOYasal
2023-08-02 09:18:321320semak imbas

Cara menggunakan Kubernetes untuk mengurus kontena aplikasi Python

Kubernetes ialah platform sumber terbuka untuk mengurus penggunaan kontena, penskalaan automatik dan pemulihan aplikasi yang tahan terhadap kesalahan. Ia menyediakan mekanisme penempatan dan pengembangan yang fleksibel, serta boleh mengautomasikan pengurusan dan pemantauan kontena. Artikel ini akan memperkenalkan cara menggunakan Kubernetes untuk mengurus kontena aplikasi Python dan menyediakan beberapa contoh kod mudah.

  1. Sediakan aplikasi Python dalam kontena

Pertama, kita perlu menyediakan aplikasi Python dan kontenakannya. Katakan kita mempunyai aplikasi web mudah yang boleh dilaksanakan melalui rangka kerja Flask. Berikut ialah contoh mudah:

# app.py
from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello, World!'

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000)

Kita perlu mencipta Dockerfile untuk membina bekas untuk aplikasi ini. Berikut ialah contoh Dockerfile yang mudah:

# Dockerfile
FROM python:3.9

WORKDIR /app

COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

COPY . .

EXPOSE 5000

CMD ["python", "app.py"]

Dalam Dockerfile ini, kami mula-mula memilih imej asas untuk aplikasi Python (python:3.9), kemudian salin kod aplikasi ke dalam direktori kerja bekas dan pasang semua kebergantungan yang diperlukan. Akhirnya, kami mendedahkan aplikasi pada port 5000 dan menentukan arahan untuk dijalankan apabila bekas bermula.

  1. Bina Imej Docker

Selepas menyediakan Dockerfile, kita boleh membina imej Docker menggunakan arahan berikut:

docker build -t my-python-app .

Ini akan membina imej Docker bernama my-python-app dalam direktori semasa.

  1. Konfigurasi Kluster Kubernetes

Sebelum meneruskan, kita perlu mengkonfigurasi kluster Kubernetes. Memandangkan pemasangan dan konfigurasi Kubernetes berada di luar skop artikel ini, kami menganggap anda sudah mempunyai kluster yang berfungsi.

  1. Buat Kubernetes Deployment

Seterusnya, kita perlu mencipta Kubernetes Deployment untuk mengurus bekas aplikasi kami. Sila buat fail yang dipanggil my-python-app-deployment.yaml dan tambahkan kandungan berikut pada fail:

# my-python-app-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-python-app-deployment
spec:
  replicas: 3
  selector:
    matchLabels:
      app: my-python-app
  template:
    metadata:
      labels:
        app: my-python-app
    spec:
      containers:
      - name: my-python-app
        image: my-python-app
        ports:
        - containerPort: 5000

Dalam Penggunaan ini, kami telah menentukan 3 replika untuk menentukan bilangan replika bekas yang ingin kami jalankan. Kami juga mentakrifkan pemilih untuk memadankan Deployment kami dan menentukan nama dan port imej kontena.

  1. Kerahkan apl

Seterusnya, kami boleh menggunakan apl kami menggunakan arahan berikut:

kubectl apply -f my-python-app-deployment.yaml

Ini akan mencipta Deployment bernama my-python-app-deployment dan memulakan 3 salinan bekas dalam kelompok .

  1. Mendedahkan Perkhidmatan

Akhir sekali, kami perlu mendedahkan perkhidmatan aplikasi supaya ia boleh diakses dari luar. Sila buat fail bernama my-python-app-service.yaml dan tambah kandungan berikut pada fail:

# my-python-app-service.yaml
apiVersion: v1
kind: Service
metadata:
  name: my-python-app-service
spec:
  selector:
    app: my-python-app
  ports:
    - protocol: TCP
      port: 80
      targetPort: 5000
  type: LoadBalancer

Dalam Perkhidmatan ini, kami menentukan pemetaan port kontena dan mengeksportnya sebagai port 80. Kami juga menentukan jenis Perkhidmatan sebagai LoadBalancer untuk mencipta pengimbang beban luaran secara automatik dalam persekitaran yang menyokong pengimbangan beban. . Kubernetes akan membuat pengimbang beban luaran secara automatik dan mengarahkan trafik ke bekas aplikasi kami.

    Ringkasan
  1. Melalui langkah di atas, kami berjaya menggunakan Kubernetes untuk menguruskan kontena aplikasi Python. Pertama, kami menyediakan aplikasi Python dan membungkusnya sebagai imej Docker. Kemudian, kami mencipta Deployment Kubernetes untuk menampung aplikasi dan menentukan bilangan replika yang perlu dimulakan. Akhir sekali, kami mencipta Perkhidmatan untuk mendedahkan perkhidmatan aplikasi dan membenarkan komunikasi dengan dunia luar.

Saya harap artikel ini akan membantu anda memahami dan menggunakan Kubernetes untuk menguruskan kontena aplikasi Python. Anda boleh menyesuaikan kod sampel untuk memenuhi keperluan anda dan melanjutkan dan mengoptimumkan aplikasi dan persekitarannya.

Atas ialah kandungan terperinci Cara menguruskan kontena aplikasi Python menggunakan Kubernetes. 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