
eks 서비스를 사용하다보면 다음과 같은 업그레이드 인사이트 항목을 확인할 수 있다.
나는 현재 1.30 버전을 사용하고 있는데,
위와 같은 오류 사항이 나타나길래 확인 해 봤더니
해당 업그레이드 인사이트는 현재 버전에 관한 오류 내용이 아닌 추후 업그레이드 시 발생할 수 있는 문제에 대한 사전점검 내용이라고 한다.
보이는것처럼 1가지 항목에 관해서 오류가 잡힌것을 볼 수 있는데,
추후 1.31버전으로 업그레이드 할 경우 add-ons 버전을 사전 업그레이드 해야 한다는 내용으로 유추 할 수 있다.
참고로, 인사이트 상태가 오류 인 경우 현재 버전의 N+1 버전에 영향을 받는 항목을 의미하며,
인사이트 상태가 경고로 잡힐 경우 현재 버전의 N+2 버전에 영향을 받는 항목이라고 하니 참고하길바람 ㅎㅎ
하여튼 해당 내용이 현재 오류로 잡힌다고 해도, 지금 버전에는 영향이 없으니까 당장은 크게 신경쓰지 않아도 될 것 같다.
하지만 추후 kubernetes 버전을 업그레이드 한다면 일단 저 오류들은 해결하고 업그레이드 하도록!!
그리고 인사이트 상태에 잡힌 내용을 수정한다고 해서 바로 상태가 업데이트 되는건 아닌 것 같고, 다소 시간이 걸린다고 나와있으니 혹시 상태가 잘 반영 된건지 궁금하다면 마지막 전환 시간 이후에 수정한 내용인지 그 전에 수정한건지 체크를 해 보면 될 것 같다~
마지막 전환 시간 이후에 수정한 내용이라면 해당 시간이 업데이트 될 때까지 기다렸다가
수정사항 반영을 확인 해 보시길 ~~~
kubernetes 버전은 평균 4개월에 한번씩 업데이트 된다고 하는데,
릴리즈 후 14개월동안 표준지원을 받고, 표준 지원 종료일이 지나면 추가로 12개월간의 지원을 받을 수 있다고 한다.
여기서, Amazon EKS에서는 사용가능한 가장 최신 버전의 kubernetes 버전을 사용하는것을 권장하지만,
무턱대고 kubernetes 버전을 업데이트 하는 것 보다는 충분한 고려가 필요할 것 같다.
그 이유는, kubernetes 버전은 다운그레이드가 불가능하며 버전 업그레이드를 위해서는
영향도 검토와 사전작업이 필수적으로 진행되어야 하기 때문이다.
사전작업에 관한 자세한 내용은 EKS 버전 정책과 업그레이드 절차 살펴보기_엘티엘 여기에 잘 정리되어있으니 참고하면 좋을 듯 .ㅎㅎ
이번에 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 항목을 확인 해 보는 방법은,
이 두가지 방법으로 확인 가능하다!
이제 여기 설치된 항목 중, 업그레이드 될 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 버전 업그레이드 시,
어떠한 조치를 취해야 하는지 사전에 점검 할 수 있다!!