Hướng dẫn triển khai WordPress trên Kubernetes với YAML và Helm

1. Chuẩn bị trước khi triển khai

 

Bạn cần cài đặt và chuẩn bị:

 

  • Kubernetes Cluster (Minikube, Kind hoặc máy chủ Kubernetes).

 

  • Công cụ kubectl để quản lý tài nguyên.

 

  • Helm nếu sử dụng phương pháp thứ hai.

 

  • StorageClass để lưu trữ dữ liệu WordPress và MySQL.

 

2. Triển khai WordPress bằng YAML

 

Với YAML, bạn cần tự khai báo các tài nguyên như Secret, PersistentVolumeClaim, Deployment và Service.

 

Bước 1: Tạo file mysql.yaml

 

apiVersion: apps/v1

kind: Deployment

metadata:

  name: mysql

spec:

  replicas: 1

  selector:

    matchLabels:

      app: mysql

  template:

    metadata:

      labels:

        app: mysql

    spec:

      containers:

        - name: mysql

          image: mysql:8.0

          env:

            - name: MYSQL_ROOT_PASSWORD

              value: "RootPassword123!"

            - name: MYSQL_DATABASE

              value: wordpress

          ports:

            - containerPort: 3306

---

apiVersion: v1

kind: Service

metadata:

  name: mysql

spec:

  selector:

    app: mysql

  ports:

    - port: 3306

 

Bước 2: Tạo file wordpress.yaml

 

apiVersion: apps/v1

kind: Deployment

metadata:

  name: wordpress

spec:

  replicas: 1

  selector:

    matchLabels:

      app: wordpress

  template:

    metadata:

      labels:

        app: wordpress

    spec:

      containers:

        - name: wordpress

          image: wordpress:latest

          env:

            - name: WORDPRESS_DB_HOST

              value: mysql

            - name: WORDPRESS_DB_USER

              value: root

            - name: WORDPRESS_DB_PASSWORD

              value: "RootPassword123!"

            - name: WORDPRESS_DB_NAME

              value: wordpress

          ports:

            - containerPort: 80

---

apiVersion: v1

kind: Service

metadata:

  name: wordpress

spec:

  type: NodePort

  selector:

    app: wordpress

  ports:

    - port: 80

      targetPort: 80

      nodePort: 30080

 

Bước 3: Áp dụng cấu hình

 

Chạy các lệnh sau để tạo tài nguyên trên Kubernetes:

 

kubectl apply -f mysql.yaml

kubectl apply -f wordpress.yaml

 

Kiểm tra trạng thái:

 

kubectl get pods

kubectl get services

 

Khi các Pod hoạt động bình thường, bạn có thể truy cập website thông qua địa chỉ http://<NODE-IP>:30080.

 

Lưu ý: Các file trên chỉ minh họa cách triển khai cơ bản. Khi sử dụng thực tế, cần bổ sung Secret và PersistentVolumeClaim để bảo vệ thông tin đăng nhập và lưu trữ dữ liệu lâu dài.

 

3. Cài đặt WordPress bằng Helm Chart

 

Helm giúp triển khai ứng dụng nhanh hơn nhờ các Chart được cấu hình sẵn, hạn chế việc phải tạo từng file YAML riêng biệt.

 

Bước 1: Thêm repository Bitnami

 

helm repo add bitnami https://charts.bitnami.com/bitnami

helm repo update

 

Bước 2: Cài đặt WordPress

 

helm install wordpress bitnami/wordpress

 

Bước 3: Kiểm tra ứng dụng

 

kubectl get pods

kubectl get services

helm list

 

Bước 4: Tùy chỉnh cấu hình

 

Bạn có thể tạo file values.yaml để thiết lập thông tin quản trị, dung lượng lưu trữ và loại Service.

 

Ví dụ:

 

replicaCount: 1

wordpressUsername: admin

wordpressPassword: "StrongPassword123!"


service:

  type: NodePort

  nodePorts:

    http: 30080

persistence:

  enabled: true

  size: 10Gi

 

Cập nhật cấu hình bằng lệnh:

 

helm upgrade --install wordpress bitnami/wordpress -f values.yaml

 

Cấu trúc tùy chọn có thể thay đổi theo phiên bản Chart. Bạn nên kiểm tra cấu hình mặc định trước khi áp dụng.

 

4. Nên chọn YAML hay Helm Chart?

 

Tiêu chí YAML Helm Chart
Cách sử dụng Khai báo từng tài nguyên Cài đặt bằng Chart
Tùy chỉnh Kiểm soát trực tiếp Thông qua values
Quản lý Thủ công Có quản lý release
Phù hợp Học tập, cấu hình riêng Triển khai nhanh, quản lý lâu dài

 

YAML phù hợp khi bạn muốn hiểu rõ cấu trúc Kubernetes và chủ động kiểm soát tài nguyên. Helm Chart là lựa chọn thuận tiện hơn khi cần triển khai nhanh hoặc quản lý ứng dụng qua nhiều lần cập nhật.

 HỖ TRỢ TRỰC TUYẾN