Giới thiệu
Amazon Elastic Kubernetes Service (EKS) vừa thông báo một thay đổi quan trọng: Sau ngày 26 tháng 11 năm 2025, Amazon EKS sẽ không còn phát hành EKS-optimized Amazon Linux 2 (AL2) AMIs. Điều này có nghĩa rằng các tổ chức đang chạy các cụm EKS với các nút AL2 phải di chuyển trước khi nâng cấp lên phiên bản Kubernetes 1.33 trở lên. Trong bài viết này, chúng ta sẽ tìm hiểu về lý do, cách di chuyển và các thực tiễn tốt nhất trong quá trình này.
Tại sao Amazon EKS ngừng hỗ trợ AL2 AMIs?
Amazon Linux 2 đã là hệ điều hành mặc định cho nhiều khối lượng công việc trên AWS trong nhiều năm. Tuy nhiên, AWS hiện đang chuyển sang các hệ điều hành hiện đại hơn:
- Amazon Linux 2023 (AL2023): Người kế nhiệm AL2, cung cấp hỗ trợ lâu dài, chu trình phát hành đáng tin cậy và cải thiện khả năng vá lỗi bảo mật.
- Bottlerocket: Một hệ điều hành tối ưu cho container với hệ thống tệp gốc không thay đổi và bề mặt tấn công giảm thiểu.
Cả hai đều cung cấp:
- Cải thiện an ninh (cập nhật dự đoán, mặc định được bảo mật).
- Tối ưu hiệu suất cho các khối lượng công việc cloud-native.
- Tương lai hóa cho các phiên bản Kubernetes vượt qua 1.32.
Điều này có nghĩa gì đối với người dùng EKS?
- Nếu cụm của bạn đang chạy các nhóm nút Amazon Linux 2, bạn có thể tiếp tục sử dụng chúng cho đến Kubernetes 1.32.
- Khi bạn có kế hoạch nâng cấp lên Kubernetes 1.33 hoặc mới hơn, bạn phải di chuyển các nút của mình sang AL2023 hoặc Bottlerocket.
- Sau ngày 26 tháng 11 năm 2025, sẽ không có AMIs AL2 mới hoặc bản vá bảo mật, ngay cả khi bạn vẫn sử dụng các phiên bản Kubernetes cũ hơn.
Chiến lược di chuyển với eksctl
Tin tốt là: bạn không cần phải xây dựng lại cụm của mình. Với eksctl, bạn có thể thay thế các nhóm nút hoặc nâng cấp chúng tại chỗ trong khi vẫn giữ nguyên kế hoạch điều khiển và khối lượng công việc của mình.
🔹 Tùy chọn 1: Tạo một Nhóm Nút AL2023 Mới
Bạn có thể thêm một nhóm nút mới chạy AL2023 bên cạnh nhóm AL2 hiện tại của bạn.
bash
eksctl create nodegroup \
--cluster my-cluster \
--name al2023-ng \
--node-type t3.medium \
--nodes 3 \
--nodes-min 2 \
--nodes-max 5 \
--managed \
--ami-family AmazonLinux2023
Sau đó:
- Drain các nút cũ:
bash
kubectl drain <old-node-name> --ignore-daemonsets --delete-local-data
- Xóa nhóm nút cũ sau khi khối lượng công việc đã được di chuyển:
bash
eksctl delete nodegroup --cluster my-cluster --name al2-ng
🔹 Tùy chọn 2: Cập nhật Nhóm Nút hiện tại sang AL2023
Nếu bạn muốn nâng cấp tại chỗ:
cluster.yaml (mẫu):
yaml
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig
metadata:
name: my-cluster
region: ap-southeast-1
nodeGroups:
- name: al2023-ng
instanceType: t3.medium
desiredCapacity: 3
amiFamily: AmazonLinux2023
Áp dụng nâng cấp:
bash
eksctl upgrade nodegroup --config-file=cluster.yaml --name=al2023-ng
Điều này sẽ cordon, drain và thay thế các nút bằng các nút dựa trên AL2023.
🔹 Tùy chọn 3: Chuyển sang Bottlerocket
Đối với các khối lượng công việc tập trung vào bảo mật hoặc chỉ container, Bottlerocket là một lựa chọn mạnh mẽ:
bash
eksctl create nodegroup \
--cluster my-cluster \
--name bottlerocket-ng \
--node-type t3.medium \
--nodes 3 \
--nodes-min 2 \
--nodes-max 5 \
--managed \
--ami-family Bottlerocket
Xác minh di chuyển
Sau khi di chuyển, xác nhận rằng các nút đang chạy hệ điều hành mới:
bash
kubectl get nodes -o wide
kubectl describe node <node-name> | grep "OS Image"
Kết quả mong đợi:
- AL2023:
Amazon Linux 2023 - Bottlerocket:
Bottlerocket OS
Thực tiễn tốt nhất
- Kiểm tra trước trong môi trường staging trước khi đưa vào sản xuất.
- Sử dụng nâng cấp cuộn: không bao giờ drain tất cả các nút cùng một lúc.
- Tự động hóa cấu hình: giữ
cluster.yamldưới sự kiểm soát phiên bản để nâng cấp lặp lại. - Giám sát khối lượng công việc: theo dõi CloudWatch và các chỉ số Kubernetes sau khi di chuyển.
Những điểm cần lưu ý
- Di chuyển sớm: Bắt đầu di chuyển sớm để tránh áp lực vào phút cuối.
- Lập kế hoạch nâng cấp: Đảm bảo bạn có kế hoạch rõ ràng trước khi nâng cấp lên Kubernetes 1.33.
- Theo dõi hiệu suất: Theo dõi hiệu suất của các ứng dụng sau khi di chuyển để phát hiện kịp thời các vấn đề.
Kết luận
Việc Amazon EKS ngừng hỗ trợ AL2 AMIs là một thay đổi lớn — nhưng cũng là cơ hội để hiện đại hóa. Hãy bắt đầu di chuyển ngay bây giờ và sử dụng eksctl để quản lý các nâng cấp nhóm nút của bạn, đảm bảo bạn có một quá trình chuyển đổi mượt mà trước thời hạn tháng 11 năm 2025.