다음을 통해 공유


Istio 서비스 메시 추가 기능 부 버전 업그레이드 문제 해결

이 문서에서는 AKS(Microsoft Azure Kubernetes Service)의 Istio 서비스 메시 추가 기능에 대한 사소한 수정 업그레이드 및 롤백 프로세스의 문제 해결 시나리오 및 제한 사항에 대해 설명합니다.

참고 항목

Istio는 "수정 버전"이라는 용어를 사용하여 카나리아 업그레이드 프로세스를 구현하고 버전을 구분합니다. 각 수정 버전 지정(x-y작성됨)은 major.minor 버전 지정(x)에 해당합니다.y). 컨트롤 플레인 수정 버전을 제어할 수 있지만 수정 버전 대역 내에서 특정 패치 버전을 제어할 수는 없습니다.

필수 조건

문제 해결 매트릭스

다음 표에는 다양한 문제와 이러한 문제에 대한 다양한 시나리오 및 솔루션이 나와 있습니다.

시나리오 문제 솔루션
데이터 평면 워크로드는 메시에서 삭제됩니다. 업그레이드를 완료하거나 롤백하기 전에는 데이터 평면 및 컨트롤 플레인 수정 버전이 일치하지 않았습니다.

다음 단계를 수행합니다.

  1. 업그레이드 완료 또는 롤백 후에 존재할 것으로 예상되는 수정 버전을 지정하여 워크로드가 포함된 네임스페이스의 레이블을 다시 지정합니다. 이렇게 하려면 kubectl 레이블 명령을 실행합니다.

    kubectl label namespace default istio.io/rev=asm-x-y --overwrite
  2. 해당 워크로드 배포를 다시 시작하여 올바른 수정 버전의 사이드카 다시 연결을 트리거합니다. 이렇게 하려면 kubectl 롤아웃 다시 시작 명령을 실행 합니다 .

    kubectl rollout restart deployment <deployment name>
  3. 사이드카 이미지가 있는지 확인합니다. 이렇게 하려면 kubectl get 명령을 실행합니다.

    kubectl get pods --namespace <namespace> --output yaml | grep mcr.microsoft.com/oss/istio/proxyv2:
컨트롤 플레인 Pod는 보류 중인 상태입니다. Pod에는 용량이 부족합니다. kubectl describe 명령을 실행하여 Pod의 상태를 확인 합니다. 용량이 문제인 경우 클러스터를 확장하여 다른 노드를 추가할 수 있습니다. 자세한 내용은 AKS(Azure Kubernetes Service) 클러스터에서 노드 수 수동 크기 조정을 참조 하세요.
az aks mesh get-upgrades 명령은 사용 가능한 업그레이드를 반환하지 않습니다. 최신 Istio 수정 버전은 현재 AKS 클러스터 버전과 호환되지 않을 수 있습니다. az aks mesh get-revisions 명령을 사용하여 최신 Istio 수정 버전이 있는지 여부를 검색할 수 있습니다. 출력에는 각 Istio 수정 버전에 대한 호환 가능한 클러스터 버전 목록이 포함됩니다. 따라서 클러스터 업그레이드가 필요한지 여부를 확인할 수 있습니다.

참고 항목

의도하지 않은 동작 및 끊어진 기능을 방지하고 보안 취약성에 대한 업데이트를 받는지 확인하려면 지원되는 최신 AKS 버전 및 Istio 추가 기능 수정 버전 으로 업그레이드하는 것이 좋습니다. 추가 기능 수정 버전도 지정된 AKS 클러스터에 대해 지원되는 Kubernetes 버전 범위 내에 있어야 합니다. Istio 업그레이드 문서의 부 버전 업그레이드 섹션에서 강조 표시한 대로 명령 및 az aks mesh get-upgrades 명령을 실행 az aks mesh get-revisions 하여 사용 가능한 추가 기능 수정 버전, 업그레이드 및 호환성 정보를 알아볼 수 있습니다.

제한 사항

  • 카나리아 롤백 프로세스 외부의 이전 수정 버전으로의 다운그레이드는 허용되지 않습니다.

  • AKS에서 현재 수정 버전과 다음 업그레이드 수정 버전을 더 이상 지원하지 않는 경우에만 한 수정 버전에서 비보안 수정 버전으로 건너뛸 수 있습니다. 이 시점에서 사용할 수 있는 유일한 업그레이드는 지원되는 가장 낮은 수정 버전입니다.

  • Istio 레이블은 Istio sidecar.istio.io/inject 추가 기능에 사이드카 주입을 사용하도록 설정하지 않습니다. 카나리아 업그레이드 중에 네임스페이 istio.io/rev 스에 레이블을 지정하고 레이블을 다시 지정할 때 레이블을 사용해야 합니다.

  • 레이블 지정은 배포별 수준이 아닌 네임스페이스 수준에서 발생해야 합니다. Pod를 개별적으로 롤오버하려면 Pod 레이블 지정을 사용하는 대신 개별 배포를 다시 시작하도록 선택할 수 있습니다.

  • Istio 추가 기능 공유 MeshConfig를 사용하는 경우 카나리아 업그레이드를 수행하기 전에 MeshConfig 설정을 복사하거나 새 ConfigMap으로 전송해야 합니다. 자세한 내용은 Mesh 구성 및 업그레이드를 참조 하세요.

  • Istio 추가 기능은 수정 버전당 Istio 수신 게이트웨이 Pod 및 배포를 배포합니다. 카나리아 업그레이드수행하고 클러스터에 두 개의 컨트롤 플레인 수정 버전이 설치되어 있는 경우 두 수정 버전에서 여러 수신 게이트웨이 Pod 문제를 해결해야 할 수 있습니다.

참조

타사 정보 고지 사항

이 문서에 나와 있는 다른 공급업체 제품은 Microsoft와 무관한 회사에서 제조한 것입니다. Microsoft는 이들 제품의 성능이나 안정성에 관하여 명시적이든 묵시적이든 어떠한 보증도 하지 않습니다.

타사 연락처 고지

이 문서에 포함된 타사의 연락처 정보는 이 항목에 대한 추가 정보를 찾는 데 도움을 주기 위한 것입니다. 이 연락처 정보는 공지 없이 변경될 수 있습니다. Microsoft는 타사 연락처 정보의 정확성을 보증하지 않습니다.

도움을 요청하십시오.

질문이 있거나 도움이 필요한 경우 지원 요청을 생성하거나Azure 커뮤니티 지원에 문의하세요. Azure 피드백 커뮤니티에 제품 피드백을 제출할 수도 있습니다.