연산자를 사용하여 Istio 1.6으로 업그레이드

이 페이지에서는 오픈소스 Istio로 마이그레이션하기 전에 연산자를 사용하여 Istio 1.6으로 업그레이드하는 방법을 설명합니다.

버전 1.6부터 Istio on Google Kubernetes Engine 부가기능은 설치 및 구성을 위해 Istio Operator를 사용합니다. Istio Operator는 Kubernetes 연산자 패턴을 따릅니다. Operator를 사용하면 Istio 설치를 위해 Kubernetes 커스텀 리소스 정의(CRD)를 정의하여 Istio를 구성할 수 있습니다. 그런 다음 Operator는 컨트롤러를 사용하여 커스텀 리소스와 일치하도록 설치를 변경합니다.

클러스터를 1.17.17-gke.3100+, 1.18.16-gke.1600+ 또는 1.19.8-gke.1600+로 업그레이드하면 Istio 1.6 Operator와 기존의 1.4.x Istio 제어 영역이 함께 설치됩니다. 업그레이드에는 사용자 작업이 필요하며 버전을 사용하여 워크로드를 새로운 제어 영역으로 마이그레이션합니다. 버전 기반 업그레이드를 사용할 경우 워크로드의 라벨이 새 제어 영역을 가리키도록 순차적 재시작을 수행하여 1.6 버전으로 마이그레이션합니다.

Google Kubernetes Engine의 부가기능에 기반한 Istio 1.5 버전을 출시하지는 않습니다. 버전 1.6은 1.4.10 후에 출시하는 버전입니다.

Istio Operator 장점

Operator는 설치 구성이 더 뛰어납니다. 1.6 이전의 부가기능 버전에서 GKE 부가기능 관리자는 Istio 매니페스트에 대한 모든 변경사항을 조정하고 대부분 유형의 구성 변경을 방지합니다. Istio Operator는 이러한 제한이 없습니다. Operator는 설치 중 제공한 IstioOperator 커스텀 리소스(CR)를 기반으로 Istio 제어 영역 설치 매니페스트를 생성합니다. 이 CR은 완전히 사용자의 제어 대상에 포함되며, 조정되지 않습니다.

연산자를 사용하여 Istio 1.6으로 업그레이드

연산자를 사용하여 Istio 1.6으로 업그레이드하려면 이 섹션의 단계를 수행해야 합니다.

Operator로 전환한 다음에만 이 단계를 수행할 필요가 있습니다. 이후 업그레이드는 이중 제어 영역 업그레이드 프로세스를 따릅니다.

  1. Istio 1.6(1.17.17-gke.3100+, 1.18.16-gke.1600+, 1.19.8-gke.1600+)이 포함된 GKE 버전을 선택하고 클러스터를 업그레이드합니다.

    Istio 1.6의 Istio on Google Kubernetes Engine 부가기능은 두 가지 버전의 Istio를 설치합니다.

    • 하나는 부가기능 관리자(클러스터 업그레이드 후 활성화됨)로 제어되는 정적 매니페스트 버전이고,

    • 다른 하나는 Operator로 제어되는 1.6 버전입니다(사용 설정될 때까지 비활성 상태임). 비활성 1.6 버전은 프록시에 연결되지 않고, 무시 가능한 수준의 클러스터 리소스를 소비합니다.

    현재 설치된 Istio 버전이 대상 정적 매니페스트의 버전과 다른 경우, 클러스터를 업그레이드하면 Istio 인플레이스 업그레이드가 수행될 수도 있습니다. 예를 들어 클러스터가 현재 Istio 1.4.6-gke.0을 실행 중이고, GKE 클러스터 버전 1.17.7-gke.3100을 선택하면 Istio 제어 영역이 업그레이드 중에 1.4.10-gke.0(또는 그 이상)으로 업그레이드됩니다.

    클러스터 버전이 최신 상태인지 확인하려면 다음 명령어를 실행합니다.

    kubectl get ns istio-system --show-labels | if [[ $(grep EnsureExists) ]];
    then echo "Version is recent enough"; else echo "Need more recent version"; fi
    

    콘솔 출력은 클러스터가 최근 버전인지 여부를 나타냅니다.

  2. upgrade-14-16 스크립트 다운로드:

    curl -LO https://storage.googleapis.com/csm-artifacts/asm/upgrade-14-16
    

    GitHub에서 스크립트를 확인할 수 있습니다.

  3. 스크립트를 실행 가능하게 만듭니다.

    chmod +x upgrade-14-16
    
  4. 업그레이드하려는 클러스터에 kubectl이 구성되어 있는지 확인합니다.

    gcloud container clusters get-credentials cluster-name
    

    여기서 cluster-name은 클러스터의 이름입니다.

  5. 스크립트를 실행합니다.

    ./upgrade-14-16
    

    스크립트는 단일 클러스터의 마이그레이션 프로세스를 안내합니다.

  6. 다른 클러스터를 마이그레이션하려면 --reset 플래그로 도구를 실행합니다.

    ./upgrade-14-16 --reset
    

    그런 다음 4단계와 5단계를 반복합니다.