メインコンテンツまでスキップ

EKS Addons - Overview

📌 1. EKS Addons là gì?

EKS Addons là các thành phần quan trọng do AWS quản lý và cập nhật, giúp bạn dễ dàng vận hành cụm Kubernetes trên Amazon EKS mà không cần tự quản lý các phiên bản thủ công.

EKS Addons

Các addon phổ biến:

  • CoreDNS - Dịch vụ DNS trong cluster.
  • kube-proxy - Xử lý networking rule giữa Pod và Service.
  • Amazon EBS CSI Driver - Hỗ trợ volume động.
  • Amazon EFS CSI Driver - Gắn EFS vào Pod.
  • AWS Load Balancer Controller - Tạo ALB/NLB từ Ingress/Service.
  • Metrics Server - Thu thập metrics để HPA hoạt động.
  • VPC CNI - Quản lý networking cho Pod, cấp IP trực tiếp từ VPC.

✨ 2. Lợi ích của EKS Addons

✔ Quản lý version bởi AWS

AWS đảm bảo các version addon tương thích với version EKS hiện tại.

✔ Update dễ dàng

Update bằng CLI hoặc Terraform, không lo conflict.

✔ Bảo mật

AWS tự quản lý bản vá bảo mật cho addon.

✔ Tích hợp sâu

Một số addon yêu cầu IAM Roles for Service Accounts (IRSA), AWS tự handle phần lớn.


🗂️ 3. Phân loại Addons

3.1. AWS Managed Addons

AWS quản lý:

  • VPC CNI.
  • CoreDNS.
  • kube-proxy.
  • EBS CSI Driver.
  • EFS CSI Driver.
  • Pod Identity Agent.
  • Amazon GuardDuty Agent.

3.2. Partner Addons / Community Addons

Cài qua Helm hoặc Terraform:

  • AWS Load Balancer Controller.
  • ExternalDNS.
  • Karpenter.
  • Metrics Server.
  • Prometheus/Grafana.

🖥️ 4. Quản lý Addon bằng AWS CLI

Thay thế tên cluster

Trước khi chạy các lệnh dưới đây, hãy thay thế my-eks bằng tên thực tế của EKS cluster của bạn.

# Liệt kê tất cả addon đang cài
aws eks list-addons --cluster-name my-eks

# Xem chi tiết một addon
aws eks describe-addon --cluster-name my-eks --addon-name vpc-cni

# Cài addon mới
aws eks create-addon \
--cluster-name my-eks \
--addon-name kube-proxy \
--resolve-conflicts OVERWRITE

# Nâng cấp addon
aws eks update-addon --cluster-name my-eks --addon-name vpc-cni

# Xóa addon
aws eks delete-addon --cluster-name my-eks --addon-name kube-proxy

🛠️ 5. Quản lý EKS Addons bằng Terraform

Ví dụ: Gọi đến resource aws_eks_addon của terraform để tạo addons VPC-CNICoreDNS

5.1. Khai báo Variables (variables.tf)

Trước tiên, cần khai báo các variables trong file variables.tf:

variable "cluster_name" {
description = "Name of the EKS cluster"
type = string
default = "my-eks-cluster"
}

variable "vpc_cni_addon_version" {
description = "Version of VPC CNI addon"
type = string
default = "v1.20.4-eksbuild.1" # Kiểm tra version mới nhất
}

variable "coredns_addon_version" {
description = "Version of CoreDNS addon"
type = string
default = "v1.12.4-eksbuild.1" # Kiểm tra version mới nhất
}
Kiểm tra version addon mới nhất

Để tìm các version addon mới nhất tương thích với cluster của bạn:

aws eks describe-addon-versions --addon-name vpc-cni
aws eks describe-addon-versions --addon-name coredns

5.2. Tạo EKS Addons (main.tf)

resource "aws_eks_addon" "vpc_cni" {
cluster_name = var.cluster_name
addon_name = "vpc-cni"
addon_version = var.vpc_cni_addon_version
resolve_conflicts_on_create = "OVERWRITE"
resolve_conflicts_on_update = "OVERWRITE"
}

resource "aws_eks_addon" "coredns" {
cluster_name = var.cluster_name
addon_name = "coredns"
addon_version = var.coredns_addon_version
resolve_conflicts_on_create = "OVERWRITE"
resolve_conflicts_on_update = "OVERWRITE"
}

Kết quả:

EKS Addons VPC CNI


📊 6. Cách chọn Addon phù hợp

AddonBắt buộc / Khuyến nghịLý do
VPC CNIBắt buộcPod networking
CoreDNSBắt buộcDNS trong cluster
kube-proxyBắt buộcService routing
AWS Load Balancer ControllerKhuyến nghịTạo ALB/NLB từ Kubernetes
EBS CSI DriverKhuyến nghị khi dùng volumePod cần PersistentVolume
Metrics ServerKhuyến nghị khi dùng HPAThu thập CPU/RAM

⚠️ 7. Lưu ý quan trọng

  • Khi nâng version EKS phải nâng addon tương thích.
  • IRSA (IAM) cần được cấu hình đúng với từng addon, nhưng có một số addon không cần IRSA.
  • Một số addon cần Helm chart nếu không thuộc AWS managed (e.g., Karpenter).

  • VPC CNI.
  • CoreDNS.
  • kube-proxy.
  • AWS Load Balancer Controller.
  • EBS CSI hoặc EFS CSI Driver.
  • Metrics Server.
  • Cluster Autoscaler hoặc Karpenter.
  • ExternalDNS (nếu dùng Route53).
  • Prometheus + Grafana (Observability).

📝 9. Tổng kết

EKS Addons giúp bạn:

  • Giảm công sức quản lý.
  • Tăng tính ổn định.
  • Đảm bảo tương thích khi update cluster.
  • Duy trì bảo mật tốt hơn.

Sử dụng addons đúng cách giúp hệ thống EKS của bạn đơn giản, hiệu quả và dễ maintain hơn.

Tham khảo: AWS EKS Add-ons Documentation