RobustX / Chương trình học / Vị trí công việc / AWS Cloud Engineer / Điều phối Container nâng cao với Kubernetes trên AWS

Điều phối Container Nâng cao với Kubernetes trên AWS

Khóa học này được thiết kế để đưa bạn từ những kiến thức cơ bản đến trình độ chuyên sâu về Kubernetes, hệ thống điều phối container mã nguồn mở hàng đầu, và cách vận hành nó trên nền tảng AWS thông qua dịch vụ Amazon EKS. Chúng tôi tập trung vào việc xây dựng nền tảng vững chắc, giúp bạn làm chủ hoàn toàn hệ sinh thái công cụ và quy trình vận hành chuyên nghiệp.

Bạn sẽ được dẫn dắt qua một lộ trình học tập bài bản, bắt đầu từ việc nắm vững các khái niệm kiến trúc cốt lõi như Pod, Service, Deployment, cho đến việc tự tay xây dựng và quản trị một cụm EKS hoàn chỉnh theo các tiêu chuẩn thực tiễn tốt nhất. Khóa học nhấn mạnh vào các kịch bản thực tế như quản lý truy cập an toàn với IAM, cấp phát lưu trữ động cho ứng dụng có trạng thái, và xây dựng hệ thống giám sát toàn diện.

Hoàn thành khóa học, bạn sẽ sở hữu bộ kỹ năng cần thiết để tự tin thiết kế, triển khai và vận hành các ứng dụng microservices phức tạp ở quy mô lớn trên môi trường Kubernetes. Đây là nền tảng vững chắc giúp bạn giải quyết các bài toán kỹ thuật đầy thách thức và trở thành một chuyên gia DevOps/Cloud thực thụ.

Thời lượng: 30h

KẾT QUẢ ĐẠT ĐƯỢC

Yêu cầu tiên quyết:

    • Nắm được các khái niệm và luồng hoạt động cơ bản trong DevOps
    • Hiểu biết vững chắc về kiến trúc mạng VPC và các dịch vụ AWS cốt lõi. 
    • Sử dụng thành thạo giao diện dòng lệnh (CLI) và có kinh nghiệm đọc/viết file định dạng YAML.

Nội dung khóa học

1. Nền tảng và kiến trúc Kubernetes
    • Tổng quan về điều phối container:
      • Tại sao cần Kubernetes? Các bài toán giải quyết.
      • So sánh Kubernetes và Amazon ECS.
    • Kiến trúc cốt lõi của Kubernetes:
      • Control Plane: Chức năng của API Server, etcd, Scheduler, Controller Manager.
      • Worker Nodes: Vai trò của Kubelet, Kube-proxy, và Container Runtime.
    • Thiết lập môi trường và công cụ:
      • Cài đặt và cấu hình các công cụ dòng lệnh: kubectl, eksctl.
      • Giới thiệu Helm – Trình quản lý gói cho Kubernetes.
    • Thực hành khám phá Cluster:
      • Kết nối và tương tác với một cụm Kubernetes.
      • Khám phá các tài nguyên mặc định qua kubectl.
2. Quản lý Workload và Vòng đời Ứng dụng
    • Các đối tượng Workload cơ bản:
      • Pod: Đơn vị triển khai nhỏ nhất, khái niệm single/multi-container Pods.
      • ReplicaSet: Đảm bảo tính sẵn sàng và tự phục hồi cho Pod.
    • Quản lý triển khai với Deployment:
      • Định nghĩa và quản lý vòng đời ứng dụng.
      • Thực hành các chiến lược cập nhật: Rolling Update và Rollback.
    • Thực hành triển khai ứng dụng:
      • Viết file YAML hoàn chỉnh để triển khai một ứng dụng web stateless.
3. Mạng và Kết nối Dịch vụ trong kubernetes
    • Mô hình mạng phẳng (Flat Network Model):
      • Giao tiếp giữa các Pod và các Node.
      • Tổng quan về Container Network Interface (CNI).
    • Kết nối nội bộ và bên ngoài với Service:
      • Các loại Service: ClusterIP, NodePort, LoadBalancer.
      • Service Discovery trong cụm.
    • Điều hướng lưu lượng lớp 7 với Ingress:
      • Khái niệm Ingress Controller và Ingress Resource.
      • Định tuyến dựa trên host và path.
    • Thực hành:
      • Sử dụng Service loại LoadBalancer và Ingress để đưa ứng dụng ra ngoài Internet.
4. Xây dựng cụm Amazon EKS
    • Kiến trúc Amazon EKS và Mô hình chia sẻ trách nhiệm:
      • EKS Control Plane do AWS quản lý.
      • Trách nhiệm của người dùng đối với Worker Nodes.
    • Các loại Worker Node và đặc điểm:
      • Managed Node Groups.
      • Self-managed Nodes.
      • AWS Fargate Profiles cho kiến trúc serverless.
    • Khởi tạo và Quản lý Cluster với eksctl:
      • Cú pháp và các tùy chọn cấu hình cluster.
      • Thực hành tạo một cụm EKS hoàn chỉnh.
    • Quản trị và kết nối:
      • Cấu hình kubectl để kết nối an toàn tới cụm EKS.
5. Tích hợp Định danh và Bảo mật
    • Cơ chế xác thực và phân quyền:
      • Tích hợp AWS IAM để xác thực người dùng và dịch vụ.
      • Kiến trúc Role-Based Access Control (RBAC) trong Kubernetes.
    • Các đối tượng RBAC:
      • Định nghĩa quyền hạn với Role và ClusterRole.
      • Gán quyền cho người dùng/nhóm với RoleBinding và ClusterRoleBinding.
    • Cấp quyền AWS cho Pod với IAM Roles for Service Accounts (IRSA):
      • Nguyên lý hoạt động và lợi ích bảo mật.
      • Thực hành cấu hình cho một Pod có quyền truy cập vào S3 bucket.
6. Quản lý Cấu hình và Dữ liệu Nhạy cảm
    • Tách biệt cấu hình khỏi ứng dụng:
      • Sử dụng ConfigMap để quản lý các biến môi trường và file cấu hình.
    • Bảo vệ dữ liệu nhạy cảm:
      • Sử dụng Secret để lưu trữ mật khẩu, API key, và chứng chỉ TLS.
    • So sánh và tích hợp với dịch vụ AWS:
      • Khi nào nên dùng Secret của Kubernetes và khi nào dùng AWS Secrets Manager/Parameter Store.
7. Lưu trữ Bền vững (Persistent Storage)
    • Kiến trúc lưu trữ trong Kubernetes:
      • PersistentVolume (PV): Đại diện cho một tài nguyên lưu trữ vật lý.
      • PersistentVolumeClaim (PVC): Yêu cầu lưu trữ từ ứng dụng.
      • StorageClass: Cung cấp lưu trữ động (dynamic provisioning).
    • Tích hợp với lưu trữ AWS:
      • Triển khai và sử dụng Amazon EBS CSI driver.
    • Thực hành triển khai ứng dụng có trạng thái:
      • Cấu hình PVC và triển khai một CSDL (PostgreSQL) trên EKS với dữ liệu được lưu trên EBS.
8. Triển khai Nâng cao với Helm
    • Giới thiệu Helm:
      • Tại sao cần Helm để quản lý ứng dụng Kubernetes phức tạp?
    • Kiến trúc và các khái niệm cốt lõi:
      • Chart: Mẫu đóng gói ứng dụng.
      • Release: Một phiên bản cụ thể của Chart được triển khai.
      • Repository: Nơi lưu trữ và chia sẻ các Chart.
    • Thực hành với Helm:
      • Sử dụng Helm để cài đặt các ứng dụng phổ biến như Prometheus, Grafana từ các repository công khai.
9. Giám sát (Monitoring) và Ghi log (Logging)
    • Giám sát với các công cụ AWS và mã nguồn mở:
      • Sử dụng CloudWatch Container Insights để giám sát tài nguyên cụm EKS.
      • Kiến trúc giám sát chuyên sâu với Prometheus và Grafana.
    • Quản lý log tập trung:
      • Kiến trúc logging với Fluentd.
      • Cấu hình đẩy log từ các container về CloudWatch Logs hoặc OpenSearch.
    • Thực hành:
      • Triển khai bộ công cụ Prometheus và Grafana để theo dõi hiệu năng của cụm và ứng dụng.
10. Tích hợp EKS vào Pipeline CI/CD
    • Nâng cấp pipeline CI/CD hiện có:
      • Tổng quan quy trình CI/CD cho ứng dụng container hóa.
    • Các bước tích hợp EKS:
      • Thêm bước build và đẩy Docker image lên Amazon ECR.
      • Sử dụng kubectl apply hoặc helm upgrade để triển khai phiên bản mới lên EKS.
    • Thực hành xây dựng pipeline hoàn chỉnh:
      • Thiết lập một pipeline tự động hóa toàn bộ quá trình từ lúc đẩy code lên GitHub cho đến khi ứng dụng được cập nhật trên cụm EKS.

Bài viết liên quan