Hướng Dẫn Triển Khai Ứng Dụng Python Trên Kubernetes Local (Minikube)

0 0 0

Người đăng: CHAU VU LUAN

Theo Viblo Asia

Giới Thiệu

Trong bài viết này, mình sẽ hướng dẫn cách triển khai một ứng dụng Python backend đơn giản (sử dụng Flask) lên Kubernetes local bằng Minikube. Đây là bước đầu tiên để làm quen với môi trường Kubernetes thực tế khi phát triển ứng dụng container hoá.

1. Chuẩn Bị Môi Trường

Bạn cần cài đặt trước:

Docker: https://docs.docker.com/get-docker/

Minikube: https://minikube.sigs.k8s.io/docs/start/

kubectl: https://kubernetes.io/docs/tasks/tools/

2. Tạo Ứng Dụng Python

Tạo thư mục dự án:

mkdir -p python-k8s-app/src && cd python-k8s-app/src

Tạo file app.py:

from flask import Flask app = Flask(__name__) @app.route("/")
def home(): return "Hello from Kubernetes Python App!" if __name__ == "__main__": app.run(host="0.0.0.0", port=5000)

Tạo file requirements.txt:

Flask==2.2.5

3. Tạo Dockerfile

Trong thư mục src, tạo file Dockerfile

# Dockerfile
FROM python:3.10-slim WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . . CMD ["python", "app.py"]

Build image:

cd ..
eval $(minikube docker-env) # Sử dụng Docker của Minikube
docker build -t python-k8s-app ./src 

4. Tạo File Triển Khai K8s

Tạo thư mục k8s và thêm 2 file cấu hình:

mkdir k8s && cd k8s 

deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata: name: python-app
spec: replicas: 2 selector: matchLabels: app: python-app template: metadata: labels: app: python-app spec: containers: - name: python-app image: python-k8s-app imagePullPolicy: IfNotPresent ports: - containerPort: 5000

service.yaml

apiVersion: v1
kind: Service
metadata: name: python-app-service
spec: selector: app: python-app ports: - protocol: TCP port: 80 targetPort: 5000 type: NodePort 

5. Triển Khai Trên Minikube

Khởi động Minikube nếu chưa chạy:

minikube start

Triển khai ứng dụng:

kubectl apply -f deployment.yaml
kubectl apply -f service.yaml 

Kiểm tra:

kubectl get pods
kubectl get svc 

6. Truy Cập Ứng Dụng

Tìm NodePort (ví dụ 30000–32767):

kubectl get service python-app-service

Sau đó truy cập:

http://localhost:<nodePort>

Hoặc nhanh hơn:

minikube service python-app-service

Bình luận

Bài viết tương tự

- vừa được xem lúc

Phần 1: Giới thiệu về Kubernetes

Kubernetes là gì. Trang chủ: https://kubernetes.io/. Ai cần Kubernetes.

0 0 106

- vừa được xem lúc

Thực hành K8S trên Google Cloud

Kubernetes (K8S) trở nên quá phổ biến ở thời điểm hiện tại, ai cũng nói về nó. Trong bài hôm nay mình sẽ không đi quá nhiều vào các định nghĩa, mà đi thẳng vào thực tế để mọi người dễ hình dung.

0 0 46

- vừa được xem lúc

Kubernetes best practices - Liveness và Readiness Health checks

Mở đầu. Kubernetes cung cấp cho bạn một framework để chạy các hệ phân tán một cách mạnh mẽ.

0 0 59

- vừa được xem lúc

Kubernetes - deployment.yaml explained

Trong bài trước, mình có giới thiệu chạy các câu lệnh K8S bằng Command Line. Để tạo 1 deloyment đơn giản chỉ cần chạy lệnh.

0 0 94

- vừa được xem lúc

Tìm hiểu cơ bản về Kubernetes - K8s (Part 2): Minikube

Lời mở đầu. .

0 0 51

- vừa được xem lúc

ETCD - Bộ não của Kubernetes và cách cài đặt cụm ETCD Cluster (High Availability)

Hello anh em, sau vài ngày nghiên cứu đọc lại liệu cũng như cài cắm thủ công đủ thể loại, với vô số lỗi fail thì mình cũng cài đặt thành công cụm etcd cluster một cách thủ công. Trước giờ chuyên tạo c

0 0 52