Terraform 형식을 통해 EKS Cluster 구성 중, Cluster 에 추가할 Add-on 설정에 관한 오류 이해 과정이다.
잘못된 내용은 지적, 수정 환영
기본적으로 설정한 과정은 다음과 같다.
EKS Cluster Kubernetes Version : 1.32
Addon settings (Terraform)
# EKS Cluster Addons
resource "aws_eks_addon" "vpc_cni" {
cluster_name = aws_eks_cluster.eks.name
addon_name = "vpc-cni"
addon_version = "v1.32.0-eksbuild.1"
}
resource "aws_eks_addon" "coredns" {
cluster_name = aws_eks_cluster.eks.name
addon_name = "coredns"
addon_version = "v1.32.0-eksbuild.1"
}
resource "aws_eks_addon" "kube_proxy" {
cluster_name = aws_eks_cluster.eks.name
addon_name = "kube-proxy"
addon_version = "v1.32.0-eksbuild.1"
}
resource "aws_eks_addon" "node_monitoring" {
cluster_name = aws_eks_cluster.eks.name
addon_name = "node-monitoring"
addon_version = "v1.32.0-eksbuild.1"
}
(무지성으로 코드를 생성하다보니 버전 세팅이 엉망이다)

그렇게 오류를 만났다.
그렇다면 맞는 버전을 찾아서 수정을 해야한다.
그 과정은 아래와 같다.
본 글에서는 후자의 방법을 알아볼 것이다.
AWS CLI 에서 명령을 통해 Compatibility를 검증할 수 있다.
aws eks describe-addon-versions --addon-name <addon 명> --kubernetes version 1.32
해당 명령을 통해 json 형식의 결과를 얻을 수 있다.
{
"addons": [
{
"addonName": "coredns",
"type": "networking",
"addonVersions": [
{
"addonVersion": "v1.11.4-eksbuild.2",
"architecture": [
"amd64",
"arm64"
],
"computeTypes": [
"ec2",
"hybrid",
"fargate",
"auto"
],
"compatibilities": [
{
"clusterVersion": "1.32",
"platformVersions": [
"*"
],
"defaultVersion": true
}
],
"requiresConfiguration": false,
"requiresIamPermissions": false
}
],
"publisher": "eks",
"owner": "aws"
}
]
}
현재 CoreDNS와 1.32버전 클러스터의 호환성에 대해 확인해 보았고, 결과적으로 CoreDNS의 경우, "v1.11.4-eksbuild.2" 와 동작하는 것을 알 수 있다.
해당 과정을 통해 다른 Addon 의 호환성도 확인하여 수정하였다.
이후
terraform init
terraform plan
terraform apply
과정을 통해 확인해보았다.

오류없이 무사히 apply 완료하였다.

콘솔 상에서도 이상 없이 Active 확인하였다.
참고내역
https://velog.io/@dldldl1022/eks-업그레이드-인사이트와-Kubernetes-업데이트에-관한-정리