- 1. Cài đặt AWS EKS Cluster với eksctl
- 2. Cấu hình AWS EKS với eksctl
- 3. Lab 1 – Demo
- 4. Lab 2 – Triển khai một ứng dụng stateless
- 5. Lab 3 – Triển khai ứng dụng stateful với Amazon EBS
- 6. Sử dụng Fargate trên EKS
https://github.com/syvtit/learning/tree/wordpress-app-eks-ebs

Các thành phần sẽ bao gồm:
- Frontend: WordPress
- Persistent volume (EBS): để lưu trữ HTML
- Public ELB (Load balancer)
- Backend: MySQL
- Persistent volume (EBS): để lưu trữ dữ liệu MySQL
- Dịch vụ MySQL
- Lưu ý:
- EBS volumes được liên kết đến một Availability Zone (AZ).
- Tạo lại pod chỉ được bắt đầu trong AZ của EBS volume trước đó.
- Chúng ta sẽ cần chia sẻ volume giữa các pods. Nếu muốn triển khai các pods trong nhiều AZ, thì sẽ không sử dụng EBS được, mà cần phải chuyển qua EFS (Elastic File System).
5.1. Chuẩn bị môi trường
B1: Tạo một cluster cho ứng dụng wordpress với file yaml như sau


B2: Kiểm tra cluster đã được tạo thành công

B3: Apply để đảm bảo cấu hình và cập nhật vào đúng cluster

B4: Tạo namespace cho phần wordpress

B5: Kiểm tra và cài đặt AWS EBS CSI Driver

B6: Gán thêm quyền vào các node đã tạo

5.2. Tạo Persistent Volumes (PV) và Persistent Volume Claim (PVC)
B1: Tạo file pvc.yaml với nội dung sau

B2: Áp dụng và kiểm tra PVC với lệnh sau

5.3. Triển khai MySQL
B1: Tạo file yaml với nội dung sau

B2: Áp dụng

B3: Kiểm tra pvc và depoyment mysql


B4: Tạo file yaml để tạo service mysql (để wordpress có thể kết nối vào được)

B5: Apply để tạo dịch vụ

5.4. Triển khai wordpress deployment
B1: Tạo file yaml để tạo deployment wordpress

B2: Tạo file yaml để tạo dịch vụ load balancer wordpress cho phép bên ngoài kết nối vào

B3: Apply tạo deployment và service wordpress

B4: Kiểm tra dịch vụ wordpress đã tạo và kết nối vào EXTERNAL IP


B5: trường hợp lỗi có thể kiểm tra kết nối từ wordpress đến dịch vụ mysql như sau

5.5. EFS
Ngoài ra bạn vẫn có thể sử dụng EFS thay vì EBS sau đây là vài thông tin dựa trên 2 loại volume:
- EBS (Elastic Block Store):
- Là dịch vụ lưu trữ dạng block (block storage)
- Mỗi ổ EBS được gắn trực tiếp vào một instance EC2 cụ thể và hoạt động như một ổ đĩa cứng (giống như ổ SSD hoặc HDD truyền thống).
- Chỉ có thể gắn vào một instance EC2 tại một thời điểm.
- EFS (Elastic File System):
- Là dịch vụ lưu trữ dạng file (file storage).
- Được truy cập qua giao thức NFS (Network File System).
- Có thể gắn vào nhiều instance EC2 cùng lúc, phù hợp cho các ứng dụng cần chia sẻ dữ liệu.