15 ngày học EKS

Tuần 1: Nền tảng Kubernetes và EKS

  • Ngày 1:

    • Sáng: Giới thiệu Kubernetes: Kubernetes là gì? Tại sao sử dụng nó? Các khái niệm cốt lõi (Pod, Service, Deployment, ReplicaSet).

    • Chiều: Kiến trúc và thành phần của Kubernetes (Master node, Worker node, etcd, kube-apiserver).

    • Bài tập:

      1. Cài đặt Minikube (môi trường Kubernetes cục bộ) và triển khai ứng dụng "Hello World" cơ bản.

      2. Thử nghiệm mở rộng quy mô ứng dụng.

      3. Khám phá bảng điều khiển Kubernetes để trực quan hóa cluster của bạn.

  • Ngày 2:

    • Sáng: Tổng quan về Amazon EKS: Điều gì làm EKS khác biệt? Kubernetes được quản lý, lợi ích, trường hợp sử dụng.

    • Chiều: Kiến trúc EKS: Các thành phần của control plane, nhóm node, mạng (VPC, subnet).

    • Bài tập:

      1. Tạo một cluster EKS cluster sử dụng eksctl (công cụ dòng lệnh).

      2. Kết nối với cluster EKS của bạn bằng kubectl.

      3. Triển khai một ứng dụng đơn giản lên cluster EKS của bạn.

  • Ngày 3:

    • Sáng: Cấu hình Cluster EKS: Các loại worker node (Được quản lý so với tự quản lý), các tùy chọn mở rộng node.

    • Chiều: Lưu trữ EKS: Các tùy chọn (EBS, EFS, FSx), Persistent Volume (PV), Persistent Volume Claim (PVC).

    • Bài tập:

      1. Tạo một nhóm node được quản lý trong cluster EKS của bạn.

      2. Triển khai một ứng dụng yêu cầu lưu trữ liên tục.

      3. Thử nghiệm với các loại volume EBS khác nhau.

Tuần 2: Mạng EKS, Workload và Bảo mật

  • Ngày 4:

    • Sáng: Đi sâu vào mạng EKS: Plugin VPC CNI, bộ cân bằng tải (Application Load Balancer, Network Load Balancer).

    • Chiều: Workload EKS: Deployment, StatefulSet, DaemonSet.

    • Bài tập:

      1. Triển khai một ứng dụng nhiều container (ví dụ: máy chủ web và cơ sở dữ liệu).

      2. Cấu hình Application Load Balancer cho ứng dụng của bạn.

      3. Khám phá các loại service khác nhau (ClusterIP, NodePort, LoadBalancer).

  • Ngày 5:

    • Sáng: Bảo mật EKS: Vai trò và chính sách IAM, bảo mật Pod, chính sách mạng.

    • Chiều: Add-on EKS: CoreDNS, kube-proxy, VPC CNI, metrics server.

    • Bài tập:

      1. Tạo một vai trò IAM cho các worker node của bạn với các quyền tối thiểu.

      2. Áp dụng các chính sách mạng để kiểm soát lưu lượng truy cập giữa các pod.

      3. Triển khai metrics server để thu thập số liệu cluster.

  • Ngày 6:

    • Sáng: EKS Observability: Ghi nhật ký (CloudWatch Logs), giám sát (CloudWatch metrics).

    • Chiều: EKS Fargate: Kubernetes serverless, trường hợp sử dụng, lợi ích.

    • Bài tập:

      1. Cấu hình ghi nhật ký cho cluster EKS và pod ứng dụng của bạn.

      2. Thiết lập cảnh báo CloudWatch để giám sát cluster của bạn.

      3. Tạo một hồ sơ Fargate và triển khai một ứng dụng đơn giản cho Fargate.

Tuần 3: Các chủ đề nâng cao và thực hành tốt nhất về EKS

  • Ngày 7:

    • Sáng: Cập nhật và nâng cấp EKS: Nâng cấp phiên bản Kubernetes, cập nhật rolling, cập nhật nhóm node.

    • Chiều: Bản thiết kế EKS: Cấu hình được xây dựng sẵn cho các trường hợp sử dụng phổ biến (ví dụ: ứng dụng web, microservices).

    • Bài tập:

      1. Thực hiện cập nhật rolling cho ứng dụng của bạn trong cluster EKS.

      2. Khám phá các bản thiết kế EKS khác nhau và triển khai một trong số chúng.

      3. Nâng cấp phiên bản Kubernetes của cluster EKS của bạn (cẩn thận!).

  • Ngày 8:

    • Sáng: Tối ưu hóa chi phí EKS: Spot instance, định cỡ phù hợp, thẻ phân bổ chi phí.

    • Chiều: Thực tiễn tốt nhất của EKS: Tăng cường bảo mật, tính khả dụng cao, khôi phục sau thảm họa.

    • Bài tập:

      1. Phân tích chi phí của cluster EKS của bạn bằng AWS Cost Explorer.

      2. Triển khai các kỹ thuật tối ưu hóa chi phí như Spot instance.

      3. Thiết kế một cluster EKS đa AZ để có tính khả dụng cao.

  • Ngày 9:

    • Sáng: Khắc phục sự cố EKS: Các vấn đề thường gặp, kỹ thuật gỡ lỗi, sử dụng nhật ký và sự kiện kubectl.

    • Chiều: Làm việc dự án: Bắt đầu xây dựng một ứng dụng hoặc cơ sở hạ tầng phức tạp hơn trên EKS.

    • Bài tập:

      1. Mô phỏng và khắc phục sự cố lỗi node trong cluster EKS của bạn.

      2. Thực hành gỡ lỗi các vấn đề triển khai ứng dụng.

      3. Tiếp tục phát triển dự án của bạn, áp dụng những gì bạn đã học được.

Project: Xây dựng và triển khai ứng dụng Microservices trên EKS

Day 10: Thiết kế và chuẩn bị

  • Sáng:

    • Lựa chọn một ứng dụng mẫu hoặc ý tưởng ứng dụng microservices của riêng bạn (ví dụ: ứng dụng quản lý cửa hàng trực tuyến, ứng dụng mạng xã hội đơn giản, ứng dụng đặt chỗ vé máy bay).

    • Phân tích và chia nhỏ ứng dụng thành các microservices độc lập (ví dụ: dịch vụ người dùng, dịch vụ sản phẩm, dịch vụ giỏ hàng).

    • Xác định các công nghệ và framework sẽ sử dụng cho từng microservice (ví dụ: Node.js, Python, Spring Boot).

  • Chiều:

    • Thiết kế sơ đồ kiến trúc tổng thể của ứng dụng, bao gồm các mối quan hệ giữa các microservices và cơ sở dữ liệu.

    • Tạo các tài khoản AWS IAM cần thiết cho dự án.

    • Chuẩn bị môi trường làm việc, cài đặt các công cụ cần thiết (ví dụ: Docker, kubectl).

Day 11: Xây dựng và đóng gói microservices

  • Sáng:

    • Bắt đầu xây dựng từng microservice, sử dụng các công nghệ và framework đã chọn.

    • Viết các API endpoint cần thiết cho từng microservice.

    • Thực hiện unit test và integration test cho từng microservice.

  • Chiều:

    • Đóng gói từng microservice thành các Docker image.

    • Đẩy các Docker image lên Amazon ECR (Elastic Container Registry).

Day 12: Triển khai microservices lên EKS

  • Sáng:

    • Tạo EKS cluster mới hoặc sử dụng cluster đã có sẵn.

    • Viết các Kubernetes Deployment và Service manifest cho từng microservice.

    • Triển khai các microservices lên EKS cluster.

  • Chiều:

    • Kiểm tra hoạt động của các microservices bằng cách gửi các request đến API endpoint của chúng.

    • Cấu hình Ingress để định tuyến traffic đến các microservices.

    • Thiết lập cơ chế xác thực và phân quyền cho các microservices (nếu cần).

Day 13: Tích hợp và kiểm thử

  • Sáng:

    • Thực hiện tích hợp các microservices với nhau, đảm bảo chúng có thể giao tiếp và trao đổi dữ liệu một cách chính xác.

    • Thực hiện end-to-end test cho toàn bộ ứng dụng, kiểm tra các luồng nghiệp vụ chính.

  • Chiều:

    • Xây dựng một giao diện người dùng đơn giản (ví dụ: sử dụng React, Angular) để tương tác với các microservices.

    • Triển khai giao diện người dùng lên EKS cluster.

Day 14: Tối ưu hóa và mở rộng

  • Sáng:

    • Sử dụng Horizontal Pod Autoscaler (HPA) để tự động mở rộng quy mô các microservices dựa trên tải.

    • Theo dõi và phân tích logs của ứng dụng để phát hiện các lỗi và vấn đề hiệu năng.

    • Tối ưu hóa hiệu năng của các microservices (ví dụ: sử dụng cache, tối ưu hóa truy vấn cơ sở dữ liệu).

  • Chiều:

    • Thực hiện các bài kiểm tra chịu tải (load test) để đánh giá khả năng mở rộng của ứng dụng.

    • Xây dựng các cảnh báo và thông báo để giám sát tình trạng của ứng dụng.

Day 15: Hoàn thiện và triển khai

  • Sáng:

    • Hoàn thiện các tính năng còn lại của ứng dụng.

    • Thực hiện các bài kiểm tra cuối cùng để đảm bảo ứng dụng hoạt động ổn định và đáp ứng được yêu cầu.

  • Chiều:

    • Chuẩn bị tài liệu hướng dẫn sử dụng và triển khai ứng dụng.

    • Triển khai ứng dụng lên môi trường production (nếu có thể).