Giải mã công nghệ: Amazon EKS Auto Mode

Bài viết này được đồng tác giả bởi Alex Kestner, Quản lý Sản phẩm cấp cao – EKS; Todd Neal, Kỹ sư Phần mềm cấp cao – EKS; Neelendra Bhandari, Quản lý Phát triển Phần mềm cấp cao – EKS; và Sai Vennam, Kiến trúc sư Giải pháp Chuyên gia Chính.

Tại sự kiện re:Invent 2024, chúng tôi ra mắt chế độ Amazon Elastic Kubernetes Service (Amazon EKS) Auto Mode, một tính năng mới cung cấp cụm Kubernetes tuân chuẩn sẵn sàng cho môi trường sản xuất – sẵn sàng triển khai workload ngay. Ở bài viết này, chúng ta sẽ tìm hiểu Auto Mode mang lại lợi ích gì cho workload Kubernetes của bạn và khám phá sâu bên trong các cụm EKS Auto Mode.


Giới thiệu về EKS Auto Mode

EKS Auto Mode là phương thức đơn giản hóa việc chạy ứng dụng trên Kubernetes. Nó tự động quản lý việc thiết lập, mở rộng và duy trì control plane cùng worker nodes, giúp bạn chỉ tập trung vào triển khai ứng dụng, trong khi mọi thứ khác đã được EKS Auto Mode lo liệu – phù hợp cho những ai muốn sử dụng Kubernetes mà không cần quản lý phức tạp.

Tại sự kiện re:Invent 2017, AWS đã giới thiệu Amazon EKS, giúp tối giản hóa việc vận hành Kubernetes. Khi đó, Amazon EKS cung cấp control plane được quản lý, tích hợp với các dịch vụ như AWS IAM. AWS chịu trách nhiệm về trạng thái và cập nhật của control plane, và người dùng đã vận hành hàng chục triệu cụm EKS mỗi năm. Tuy nhiên, người dùng vẫn phải vận hành data plane-những node Amazon EC2 nơi chạy workloads. Theo thời gian, các tính năng như Managed Node Groups Karpenter đã giảm bớt gánh nặng data plane, nhưng vẫn buộc người dùng phải lựa chọn hệ điều hành, mở rộng node và quản lý các add-on như CNI hay kube-proxy.

Figure 1: Mô hình Phân chia Trách nhiệm với Amazon EKS (không có Auto Mode)

EKS Auto Mode là bước tiến tiếp theo, trong đó AWS đảm nhiệm nhiều hơn phần data plane, cung cấp compute, mạng và lưu trữ được quản lý. Với EKS Auto Mode, người dùng chỉ cần tạo cụm và triển khai workload ngay vào môi trường sẵn sàng cho sản xuất. AWS chịu trách nhiệm cấu hình, cập nhật và giám sát các instance EC2, cho phép người dùng tập trung vào VPC, cấu hình cụm, và container ứng dụng.

Figure 2: Mô hình Phân chia Trách nhiệm với EKS Auto Mode


Data plane trong EKS Auto Mode

Data plane của EKS Auto Mode bao gồm các thành phần quan trọng:

  • EC2 managed instances: các instance EC2 tiêu chuẩn nhưng AWS nắm quyền vận hành.
  • Bottlerocket: hệ điều hành mã nguồn mở do AWS phát triển dành riêng cho container.
  • Core capabilities và add‑ons: được tích hợp sẵn trong node Auto Mode, loại bỏ việc người dùng phải quản lý riêng.
  • Worker nodes management (dựa trên Karpenter): tự động giám sát sức khỏe node, thay thế và lựa chọn loại instance tối ưu về chi phí.

EC2 managed instances

EKS Auto Mode sử dụng tính năng mới tại re:Invent 2024: EC2 managed instances. Đây là EC2 thông thường nhưng AWS quản lý toàn quyền vận hành. Bạn trao đổi một phần quyền kiểm soát để đổi lại cải thiện bảo mật. Ví dụ, bạn không cần gỡ volume Amazon EBS thủ công khỏi node, vì AWS đã chịu trách nhiệm. Bạn cũng không SSH trực tiếp vào node, nhưng vẫn có thể khắc phục sự cố thông qua EKS service. Khi xóa cụm EKS, các EC2 managed instances cũng tự động bị xóa.

Managed instances giúp EKS Auto Mode quản lý capacity cho workload Kubernetes, bạn chỉ cần tập trung triển khai ứng dụng. Khi workload vượt quá khả năng, EKS Auto Mode sẽ sử dụng Karpenter để tự động tạo thêm instance, đảm bảo sẵn sàng cao và hiệu suất, loại bỏ nhu cầu mở rộng thủ công.

Bên cạnh đó, EC2 managed instances hỗ trợ cơ chế tiết kiệm chi phí như Reserved Instances và Savings Plans, đem lại chi phí dự đoán và linh hoạt.

Bottlerocket làm hệ điều hành cho instance

EC2 managed instances cần hệ điều hành. EKS Auto Mode dùng Bottlerocket – hệ điều hành mã nguồn mở do AWS thiết kế riêng cho container. Bottlerocket loại bỏ những thành phần không cần thiết, chỉ giữ lại các gói thiết yếu, giảm nguy cơ CVE, thiết tăng tài nguyên cho workload. Nó áp dụng kiểm tra tính toàn vẹn và SELinux để giảm bề mặt tấn công.

AMI cho EKS Auto Mode là phiên bản tùy chỉnh của Bottlerocket, sử dụng hệ thống Out of Tree Build (OOTB) để dễ dàng cập nhật an toàn. Hệ thống này dựa trên kernel kit và core kit từ dự án Bottlerocket, đảm bảo bảo mật và phụ thuộc được kiểm soát.

Auto Mode AMI cũng có một số thay đổi cấu hình chuẩn Bottlerocket. Ví dụ, nó tắt host container, thay vào đó dùng cơ chế Kubernetes để lấy logs node gặp sự cố. Ngoài ra, Auto Mode AMI sử dụng chức năng bootstrap commands để thiết lập storage cục bộ cho các loại instance hỗ trợ lưu trữ nhanh, phục vụ container images, dữ liệu tạm thời và logs.

Các năng lực cốt lõi trên node

Một node Kubernetes thường cần nhiều DaemonSet để cung cấp chức năng thiết yếu. Người dùng EKS phản ánh rằng việc quản lý, cập nhật và kiểm tra tương thích các thành phần này tốn thời gian. EKS Auto Mode đã tích hợp trực tiếp những thành phần cơ bản sử dụng phổ biến vào node:

  • Mạng: cấu hình DNS, network policy enforcement.
  • Lưu trữ: cấu hình Persistent Volumes với Amazon EBS và storage cục bộ.
  • Định danh: cấp IAM identity cho pod.
  • Phần cứng chuyên dụng:
    • AWS Neuron: hỗ trợ Inferentia và Trainium.
    • NVIDIA: driver và plugin GPU.
    • Elastic Fabric Adapter (EFA): driver và plugin EFA.
  • Sức khỏe node: giám sát và tự động sửa một số lỗi thông thường.

Nhờ đó, với cụm EKS Auto Mode bạn có thể tạo pod có mạng được cấu hình đúng, volume EBS, hoặc GPU/accelerator, và có hệ thống giám sát và tự sửa node khi lỗi kubelet hoặc hết PID xảy ra.

Worker nodes management

Computation cho EKS Auto Mode, dựa trên Karpenter, kết hợp EC2 managed instances và Bottlerocket AMI. Nó tự động thêm/xóa nodes để đáp ứng tải, tối ưu chi phí theo cấu hình node pool và nhu cầu workload.

Quá trình bao gồm xác định loại instance phù hợp chi phí và khả năng, rồi khởi tạo EC2 managed instances dùng AMI tương thích. Khi workload thay đổi, hệ thống liên tục đánh giá cụm để tối ưu hóa:

  • xóa node khi pods có thể chạy trên node khác.
  • Thay thế node bằng một node rẻ hơn phù hợp.

Việc tự động điều phối này giúp bạn tập trung vào workload, trong khi EKS Auto Mode xử lý node.


Vòng đời và bảo trì

Trước Auto Mode, người dùng chịu trách nhiệm kiểm tra tương thích node-level, triển khai và cập nhật. Tính năng như Cluster Insights giúp nhận diện lỗi nhưng việc triển khai và cập nhật vẫn phải do người dùng. EKS Auto Mode cho phép AWS đảm nhận trách nhiệm đó, với AMI đã kiểm thử và cập nhật liên tục.

Quy trình xây dựng & phát hành Auto Mode AMI gồm:

  • Quét CVE
  • Xây dựng AMI
  • Kiểm thử AMI:
    • Kiểm tra tuân chuẩn Kubernetes.
    • Kiểm tra chức năng (pod lấy IAM).
    • Kiểm tra bảo mật.
  • Triển khai AMI.

Quy trình tuân theo nguyên tắc “an toàn, không can thiệp thủ công”. Ban đầu triển khai AMI lên một nhóm nhỏ cụm trên một Region, theo dõi ổn định. Khi tin cậy tăng, triển khai theo đợt rộng hơn và sang các Region khác.

Người dùng kiểm soát nâng cấp control plane. Với data plane, người dùng có thể sử dụng:

  • Pod Disruption Budgets: giới hạn số pod bị ngừng trong quá trình cập nhật.
  • Node Disruption Budgets: xác định thời gian bảo trì và số node cập nhật đồng thời.

Khi AWS phát hành AMI Auto Mode mới với bản vá bảo mật, EKS Auto Mode có thể nâng cấp node tự động, đảm bảo tuân thủ disruption budgets và điều kiện scheduling. Tài liệu EKS best practices hướng dẫn chi tiết cách áp dụng.


Kết luận

Amazon EKS Auto Mode đại diện cho bước tiến lớn trong vận hành Kubernetes trên AWS. Kết hợp EC2 managed instances, Bottlerocket, và các năng lực node cốt lõi, Auto Mode giúp người dùng chuyển từ quản lý hạ tầng sang phát triển ứng dụng. Thay vì dành thời gian cấu hình node, cập nhật bảo mật và vận hành công cụ, đội ngũ có thể tập trung triển khai và mở rộng các ứng dụng mang lại giá trị kinh doanh.

Bạn đã sẵn sàng bắt đầu với EKS Auto Mode? Bạn có thể tạo cụm mới, bật Auto Mode trong cụm hiện tại bằng eksctl, AWS CLI, Console, API EKS hoặc IAC. Hãy thử workshop hướng dẫn triển khai workload và khám phá khả năng Auto Mode. Bạn có thể chạy trên tài khoản AWS của bạn hoặc đăng ký sự kiện do AWS tổ chức và tài trợ.