클러스터 인사이트를 사용한 Kubernetes 버전 업그레이드 준비 - Amazon EKS

클러스터 인사이트를 사용한 Kubernetes 버전 업그레이드 준비

Amazon EKS 클러스터 인사이트는 Amazon EKS 및 Kubernetes 모범 사례를 따르는 데 도움이 되는 권장 사항을 제공합니다. 모든 Amazon EKS 클러스터는 Amazon EKS에서 선별한 인사이트 목록을 대상으로 자동 반복 검사를 거칩니다. 이러한 인사이트 검사는 Amazon EKS에서 모두 관리되며, 결과를 처리하는 방법에 대한 권장 사항을 제공합니다.

  • 클러스터 Kubernetes 버전을 업데이트하기 전에 EKS 콘솔에서 클러스터 인사이트를 확인합니다.

  • 클러스터에서 문제가 식별된 경우 문제를 검토하고 적절하게 수정하세요. 문제에는 Amazon EKS 및 Kubernetes에 대한 링크가 포함됩니다.

  • 문제를 해결한 후에는 클러스터 인사이트가 새로 고쳐질 때까지 기다리세요. 모든 문제가 해결되었으면 클러스터를 업데이트하세요.

현재 Amazon EKS는 Kubernetes 버전 업그레이드 준비와 관련된 인사이트만 반환합니다.

업그레이드 인사이트는 Kubernetes 클러스터 업그레이드에 영향을 미칠 수 있는 잠재적 문제를 식별합니다. 이를 통해 관리자가 업그레이드를 준비하는 데 드는 노력을 최소화하고 최신 Kubernetes 버전에서 애플리케이션의 신뢰성을 높일 수 있습니다. Amazon EKS는 문제에 영향을 줄 수 있는 가능한 Kubernetes 버전 업그레이드 목록을 대상으로 클러스터를 자동으로 스캔합니다. Amazon EKS는 각 Kubernetes 버전 릴리스의 변경 사항 검토를 기반으로 인사이트 검사 목록을 자주 업데이트합니다.

Amazon EKS 업그레이드 인사이트는 새 버전에 대한 테스트 및 확인 프로세스를 가속화합니다. 또한 클러스터 관리자 및 애플리케이션 개발자는 우려 사항을 강조하고 문제 해결 조언을 제공하여 최신 Kubernetes 기능을 활용할 수 있습니다. 수행된 인사이트 검사 목록과 Amazon EKS에서 식별한 관련 문제를 확인하려면 Amazon EKS ListInsights API 작업을 직접 호출하거나 Amazon EKS 콘솔을 확인합니다.

클러스터 인사이트는 주기적으로 업데이트됩니다. 수동으로 클러스터 인사이트를 새로 고칠 수 없습니다. 클러스터 문제를 해결한 경우 클러스터 인사이트가 업데이트되는 데 다소 시간이 걸립니다. 문제가 해결되었는지 확인하려면 변경 사항이 배포된 시간을 클러스터 인사이트의 "마지막 새로 고침 시간"과 비교하세요.

클러스터 인사이트 보기(콘솔)

  1. Amazon EKS 콘솔을 엽니다.

  2. 클러스터 목록에서 인사이트를 확인하려는 Amazon EKS 클러스터 이름을 선택합니다.

  3. 업그레이드 인사이트 탭을 선택합니다.

  4. 업그레이드 인사이트 페이지에는 다음 필드가 표시됩니다.

    • 이름 - 클러스터를 대상으로 Amazon EKS에서 수행한 검사입니다.

    • 인사이트 상태 - '오류' 상태의 인사이트는 일반적으로 영향을 받는 Kubernetes 버전이 현재 클러스터 버전의 N+1임을 의미하고, '경고' 상태는 인사이트가 향후 Kubernetes 버전 N+2 이상에 적용됨을 의미합니다. '통과' 상태의 인사이트는 Amazon EKS가 클러스터에서 이 인사이트 검사와 관련된 문제를 발견하지 못했음을 의미합니다. '알 수 없음' 상태의 인사이트는 Amazon EKS가 클러스터가 이 인사이트 검사의 영향을 받는지 여부를 판단할 수 없음을 의미합니다.

    • 버전 - 인사이트가 잠재적 문제가 있는지 검사한 Kubernetes 버전입니다.

    • 마지막 새로 고침 시간(UTC-5:00) - 이 클러스터에서 인사이트 상태를 마지막으로 새로 고친 시간입니다.

    • 마지막 전환 시간(UTC-5:00) - 이 인사이트의 상태가 마지막으로 전환된 시간입니다.

    • 설명 - 알림 및 문제 해결을 위한 권장 작업을 포함하는 인사이트 검사 정보입니다.

클러스터 인사이트 보기(AWS CLI)

  1. 인사이트를 확인하려는 클러스터를 결정합니다. 다음 명령은 지정된 클러스터에 대한 인사이트 정보를 나열합니다. 필요에 따라 명령을 다음과 같이 수정한 다음에 수정한 명령을 실행합니다.

    • AWS 리전을 region-code로 바꿉니다.

    • my-cluster를 해당 클러스터의 이름으로 바꿉니다.

      aws eks list-insights --region region-code --cluster-name my-cluster

      예제 출력은 다음과 같습니다.

      { "insights": [ { "category": "UPGRADE_READINESS", "name": "Deprecated APIs removed in Kubernetes v1.29", "insightStatus": { "status": "PASSING", "reason": "No deprecated API usage detected within the last 30 days." }, "kubernetesVersion": "1.29", "lastTransitionTime": 1698774710.0, "lastRefreshTime": 1700157422.0, "id": "123e4567-e89b-42d3-a456-579642341238", "description": "Checks for usage of deprecated APIs that are scheduled for removal in Kubernetes v1.29. Upgrading your cluster before migrating to the updated APIs supported by v1.29 could cause application impact." } ] }
  2. 인사이트에 대한 설명 정보를 보려면 다음 명령을 실행합니다. 필요에 따라 명령을 다음과 같이 수정한 다음에 수정한 명령을 실행합니다.

    • AWS 리전을 region-code로 바꿉니다.

    • 123e4567-e89b-42d3-a456-579642341238을 클러스터 인사이트 목록에서 검색한 인사이트 ID로 바꿉니다.

    • my-cluster를 해당 클러스터의 이름으로 바꿉니다.

      aws eks describe-insight --region region-code --id 123e4567-e89b-42d3-a456-579642341238 --cluster-name my-cluster

      예제 출력은 다음과 같습니다.

      { "insight": { "category": "UPGRADE_READINESS", "additionalInfo": { "EKS update cluster documentation": "https://docs.aws.amazon.com/eks/latest/userguide/update-cluster.html", "Kubernetes v1.29 deprecation guide": "https://kubernetes.io/docs/reference/using-api/deprecation-guide/#v1-29" }, "name": "Deprecated APIs removed in Kubernetes v1.29", "insightStatus": { "status": "PASSING", "reason": "No deprecated API usage detected within the last 30 days." }, "kubernetesVersion": "1.29", "recommendation": "Update manifests and API clients to use newer Kubernetes APIs if applicable before upgrading to Kubernetes v1.29.", "lastTransitionTime": 1698774710.0, "lastRefreshTime": 1700157422.0, "categorySpecificSummary": { "deprecationDetails": [ { "usage": "/apis/flowcontrol.apiserver.k8s.io/v1beta2/flowschemas", "replacedWith": "/apis/flowcontrol.apiserver.k8s.io/v1beta3/flowschemas", "stopServingVersion": "1.29", "clientStats": [], "startServingReplacementVersion": "1.26" }, { "usage": "/apis/flowcontrol.apiserver.k8s.io/v1beta2/prioritylevelconfigurations", "replacedWith": "/apis/flowcontrol.apiserver.k8s.io/v1beta3/prioritylevelconfigurations", "stopServingVersion": "1.29", "clientStats": [], "startServingReplacementVersion": "1.26" } ] }, "id": "f6a11fe4-77f7-48c6-8326-9a13f022ecb3", "resources": [], "description": "Checks for usage of deprecated APIs that are scheduled for removal in Kubernetes v1.29. Upgrading your cluster before migrating to the updated APIs supported by v1.29 could cause application impact." } }