eks 업그레이드 인사이트와 Kubernetes 업데이트에 관한 정리

이애옹·2024년 12월 24일

📝 eks의 업그레이드 인사이트

eks 서비스를 사용하다보면 다음과 같은 업그레이드 인사이트 항목을 확인할 수 있다.

나는 현재 1.30 버전을 사용하고 있는데,
위와 같은 오류 사항이 나타나길래 확인 해 봤더니
해당 업그레이드 인사이트는 현재 버전에 관한 오류 내용이 아닌 추후 업그레이드 시 발생할 수 있는 문제에 대한 사전점검 내용이라고 한다.

보이는것처럼 1가지 항목에 관해서 오류가 잡힌것을 볼 수 있는데,
추후 1.31버전으로 업그레이드 할 경우 add-ons 버전을 사전 업그레이드 해야 한다는 내용으로 유추 할 수 있다.

참고로, 인사이트 상태가 오류 인 경우 현재 버전의 N+1 버전에 영향을 받는 항목을 의미하며,
인사이트 상태가 경고로 잡힐 경우 현재 버전의 N+2 버전에 영향을 받는 항목이라고 하니 참고하길바람 ㅎㅎ

하여튼 해당 내용이 현재 오류로 잡힌다고 해도, 지금 버전에는 영향이 없으니까 당장은 크게 신경쓰지 않아도 될 것 같다.

하지만 추후 kubernetes 버전을 업그레이드 한다면 일단 저 오류들은 해결하고 업그레이드 하도록!!
그리고 인사이트 상태에 잡힌 내용을 수정한다고 해서 바로 상태가 업데이트 되는건 아닌 것 같고, 다소 시간이 걸린다고 나와있으니 혹시 상태가 잘 반영 된건지 궁금하다면 마지막 전환 시간 이후에 수정한 내용인지 그 전에 수정한건지 체크를 해 보면 될 것 같다~

마지막 전환 시간 이후에 수정한 내용이라면 해당 시간이 업데이트 될 때까지 기다렸다가
수정사항 반영을 확인 해 보시길 ~~~

📝 kubernetes 버전 업데이트에 관하여

kubernetes 버전은 평균 4개월에 한번씩 업데이트 된다고 하는데,
릴리즈 후 14개월동안 표준지원을 받고, 표준 지원 종료일이 지나면 추가로 12개월간의 지원을 받을 수 있다고 한다.

여기서, Amazon EKS에서는 사용가능한 가장 최신 버전의 kubernetes 버전을 사용하는것을 권장하지만,
무턱대고 kubernetes 버전을 업데이트 하는 것 보다는 충분한 고려가 필요할 것 같다.

그 이유는, kubernetes 버전은 다운그레이드가 불가능하며 버전 업그레이드를 위해서는
영향도 검토와 사전작업이 필수적으로 진행되어야 하기 때문이다.

사전작업에 관한 자세한 내용은 EKS 버전 정책과 업그레이드 절차 살펴보기_엘티엘 여기에 잘 정리되어있으니 참고하면 좋을 듯 .ㅎㅎ

📝 EKS add-on version compatibility 항목에 관한 체크

이번에 1.30을 버전하면서 해당 항목이 오류로 잡히길래 추가로 정리 해 본다.

해당항목은 kubernetes 버전과 add-on 항목에 관한 버전 호환성을 체크 해 보라는 항목으로,

Checks version of installed EKS add-ons to ensure they are compatible with the next version of Kubernetes.

다음 kubernetes 버전과 항목들이 호환 되는지 사전에 체크 해 보면 된다는 내용이다.

본인 클러스터에 설치된 add-ons 항목을 확인 해 보는 방법은,

  • 콘솔 : AWS EKS -> 클러스터 -> 원하는 클러스터 클릭 -> 추가기능
  • cloud9 IDE에서 명령어 입력 : ws eks list-addons --cluster-name <클러스터 이름>

이 두가지 방법으로 확인 가능하다!
이제 여기 설치된 항목 중, 업그레이드 될 k8s 버전과 호환되지 않는 항목을 찾아야 하는데 다음과 같은 명령어로 체크 가능하다.

aws eks describe-addon-versions --addon-name <add-on 항목 이름>

해당 명령어를 이용하면 add-on 버전별로 어떤 k8s 버전과 호환되는지 목록을 확인 할 수 있는데,

aws eks describe-addon-versions --addon-name <add-on 항목 이름> --kubernetes-version <k8s 버전명>

이렇게 하면 버전별로 더 간단하게 조회 할 수 있다.

예를들어, 나는 현재 1.30버전의 k8s를 쓰고 있고 v1.11.1-eksbuild.8 버전의 CoreDNS 라는 추가기능을 사용하고 있는데

aws eks describe-addon-versions --addon-name coredns --kubernetes-version 1.30

해당명령을 날리면 결과는

...
				{
                    "addonVersion": "v1.11.1-eksbuild.8",
                    "architecture": [
                        "amd64",
                        "arm64"
                    ],
                    "compatibilities": [
                        {
                            "clusterVersion": "1.30",
                            "platformVersions": [
                                "*"
                            ],
                            "defaultVersion": true
                        }
                    ],
                    "requiresConfiguration": false,
                    "requiresIamPermissions": false
                },
...

이런식으로 나오는데,
v1.11.1-eksbuild.8 버전은 1.30의 버전과 호환되는것을 확인 할 수 있다.

참고로 requiresConfiguration은 해당 add-on이 추가적인 설정을 요구하는지 여부를 나타내고,
requiresIamPermissions은 추가 IAM 권한을 요구하는지 나타내는 거라고 한다!! 참고~

그런데 내가 여기서 k8s 버전을 1.31로 올린다고 한다면

{
    "addons": [
        {
            "addonName": "coredns",
            "type": "networking",
            "addonVersions": [
                {
                    "addonVersion": "v1.11.4-eksbuild.1",
                    "architecture": [
                        "amd64",
                        "arm64"
                    ],
                    "compatibilities": [
                        {
                            "clusterVersion": "1.31",
                            "platformVersions": [
                                "*"
                            ],
                            "defaultVersion": false
                        }
                    ],
                    "requiresConfiguration": false,
                    "requiresIamPermissions": false
                },
                {
                    "addonVersion": "v1.11.3-eksbuild.2",
                    "architecture": [
                        "amd64",
                        "arm64"
                    ],
                    "compatibilities": [
                        {
                            "clusterVersion": "1.31",
                            "platformVersions": [
                                "*"
                            ],
                            "defaultVersion": false
                        }
                    ],
                                       "requiresConfiguration": false,
                    "requiresIamPermissions": false
                },
                {
                    "addonVersion": "v1.11.3-eksbuild.1",
                    "architecture": [
                        "amd64",
                        "arm64"
                    ],
                    "compatibilities": [
                        {
                            "clusterVersion": "1.31",
                            "platformVersions": [
                                "*"
                            ],
                            "defaultVersion": true
                        }
                    ],
                    "requiresConfiguration": false,
                    "requiresIamPermissions": false
                },
                {
                    "addonVersion": "v1.11.1-eksbuild.13",
                    "architecture": [
                        "amd64",
                        "arm64"
                    ],
                    "compatibilities": [
                        {
                            "clusterVersion": "1.31",
                            "platformVersions": [
                                "*"
                            ],
                            "defaultVersion": false
                        }
                    ],
                    "requiresConfiguration": false,
                    "requiresIamPermissions": false
                },
                               {
                    "addonVersion": "v1.11.1-eksbuild.11",
                    "architecture": [
                        "amd64",
                        "arm64"
                    ],
                    "compatibilities": [
                        {
                            "clusterVersion": "1.31",
                            "platformVersions": [
                                "*"
                            ],
                            "defaultVersion": false
                        }
                    ],
                    "requiresConfiguration": false,
                    "requiresIamPermissions": false
                },
                {
                    "addonVersion": "v1.10.1-eksbuild.17",
                    "architecture": [
                        "amd64",
                        "arm64"
                    ],
                    "compatibilities": [
                        {
                            "clusterVersion": "1.31",
                            "platformVersions": [
                                "*"
                            ],
                            "defaultVersion": false
                        }
                    ],
                    "requiresConfiguration": false,
                    "requiresIamPermissions": false
                },
                {
                    "addonVersion": "v1.10.1-eksbuild.15",
                    "architecture": [
                                          "amd64",
                        "arm64"
                    ],
                    "compatibilities": [
                        {
                            "clusterVersion": "1.31",
                            "platformVersions": [
                                "*"
                            ],
                            "defaultVersion": false
                        }
                    ],
                    "requiresConfiguration": false,
                    "requiresIamPermissions": false
                },
                {
                    "addonVersion": "v1.10.1-eksbuild.13",
                    "architecture": [
                        "amd64",
                        "arm64"
                    ],
                    "compatibilities": [
                        {
                            "clusterVersion": "1.31",
                            "platformVersions": [
                                "*"
                            ],
                            "defaultVersion": false
                        }
                    ],
                    "requiresConfiguration": false,
                    "requiresIamPermissions": false
                }
            ],
            "publisher": "eks",
            "owner": "aws"
        }
    ]
}

v1.11.1-eksbuild.8 버전의 CoreDNS는 더 이상 호환되지 않는다는 걸 확인 할 수 있다.

이 결과를 통해 추후 k8s 버전 업그레이드 시,
어떠한 조치를 취해야 하는지 사전에 점검 할 수 있다!!

👀 참고자료

profile
안녕하세요

0개의 댓글