Windows Server 반기 채널 서비스 종료


이 페이지에서는 Google Kubernetes Engine(GKE) 표준 클러스터에서 Windows Server 반기 채널(SAC) 노드 이미지 유형의 서비스 종료에 대한 정보를 제공합니다. 지원되는 노드 이미지로 마이그레이션하는 방법은 지원되는 Windows 이미지로 마이그레이션을 참조하세요.

Windows Server SAC 삭제 정보

Microsoft는 2022년 8월 9일에 Windows Server 반기 채널 서비스를 종료합니다. 이는 Windows Server 버전 20H2 서비스 종료와 일치합니다. Windows Server는 장기 서비스 채널(LTSC)을 기본 출시 채널로 사용할 것입니다. 이 변경사항으로 인해 Microsoft에서 Windows Server SAC 이미지의 보안 업데이트를 포함한 중요 업데이트를 더 이상 출시하지 않습니다. 따라서 GKE에서 이러한 이미지에 대한 지원을 더 이상 제공할 수 없습니다.

GKE Standard에서는 더 이상 Windows Server SAC 이미지 유형을 사용하는 새 노드 풀을 만들 수 없습니다. 기존 노드 풀에서 다음 이미지 유형 중 하나를 사용하는 경우 GKE 버전을 업그레이드하려면 지원되는 이미지 유형으로 마이그레이션해야 합니다.

  • windows_sac: Docker를 포함한 Windows Server SAC
  • windows_sac_containerd: containerd를 포함한 Windows Server SAC

기존 Windows Server SAC 노드 풀은 2022년 8월 9일 이후에도 계속 작동합니다. 하지만 SAC에 대한 향후 업데이트가 없기 때문에 이러한 노드는 보안 취약점 및 플랫폼 불안정성에 노출될 위험이 있습니다.

타임라인 및 마일스톤

2022년 8월 9일 후에는 더 이상 다음을 수행할 수 없습니다.

  • Windows Server SAC 노드 이미지를 사용하는 새 클러스터 만들기
  • Windows Server SAC 노드 이미지를 사용하는 새 노드 풀 만들기
  • --autoprovisioning-image-type 플래그를 windows_sac 또는 windows_sac_containerd로 설정하여 노드 자동 프로비저닝 사용 설정
  • 기존 Windows Server SAC 노드의 GKE 버전 업그레이드

어떻게 해야 할까요?

Windows Server SAC 노드 풀을 windows_ltsc_containerd 노드 이미지 유형으로 마이그레이션하는 것이 좋습니다. GKE 버전 1.23 이상에서 이 이미지 유형은 새 클러스터 및 노드 풀에 지원되는 유일한 Windows Server 이미지 유형입니다.

Docker를 컨테이너 런타임으로 사용하는 windows_ltsc 이미지 유형은 Docker 노드 이미지 지원 중단으로 인해 GKE 버전 1.23 이상에서 지원되지 않습니다.

현재 GKE 버전에 따라 다음을 수행합니다.

  • GKE 버전 1.20 이하: 노드 풀을 windows_ltsc 이미지로 마이그레이션합니다.
  • GKE 버전 1.21 이상: 노드 풀을 windows_ltsc_containerd 이미지로 마이그레이션합니다.

마이그레이션의 영향

Docker를 컨테이너 런타임으로 사용하는 windows_sac 이미지를 현재 사용 중인 경우 windows_ltsc_containerd 이미지 유형으로 마이그레이션하면 Docker 명령어에 종속된 기존 도구에 영향을 줄 수 있습니다. containerd를 사용하는 이미지 유형으로 마이그레이션할 경우의 영향에 대한 자세한 내용은 Docker 노드 이미지 지원 중단 정보의 상황 목록을 참조하세요.

Windows Server LTSC로 마이그레이션

마이그레이션 프로세스는 다음과 같은 단계로 구성됩니다.

  1. 아키텍처 업데이트를 위한 컨테이너 이미지 식별
  2. 멀티 아키텍처 Windows 컨테이너 이미지 빌드
  3. 기존 노드 풀을 Windows Server LTSC로 업데이트

아키텍처 업데이트를 위한 컨테이너 이미지 식별

Windows Server SAC에서 실행되는 단일 아키텍처 컨테이너 이미지는 Windows Server LTSC 이미지와 호환되지 않습니다. 호환되지 않는 컨테이너 이미지를 식별하고 해당 아키텍처 업데이트를 준비해야 합니다. 멀티 아키텍처 이미지가 있는 경우 이미지를 검사하여 Windows Server 2019 LTSC 변형(버전 번호 10.0.17763.X)을 지원하는지 확인해야 합니다.

단일 아키텍처 이미지

지원되는 Windows 버전을 검사하려면 포드가 실행되는 Windows Server SAC 노드 내에서 다음 명령어를 실행합니다.

docker image inspect IMAGE_NAME

IMAGE_NAME을 컨테이너 이미지 이름으로 바꿉니다.

이미지가 Windows Server SAC 변형을 지원하는 경우 출력은 다음과 비슷합니다.

[
  {
    ...
    "Architecture": "amd64",
    "Os": "windows",
    "OsVersion": "10.0.19042.1645" // 1645 can be any build number
  }
]

이미지가 Windows Server LTSC 변형을 지원하는 경우 출력은 다음과 비슷합니다.

[
  {
    ...
    "Architecture": "amd64",
    "Os": "windows",
    "OsVersion": "10.0.17763.2686" // 2686 can be any build number
  }
]

멀티 아키텍처 이미지

이미 멀티 아키텍처 Windows 컨테이너 이미지를 사용하는 경우 이미지를 검사하여 Windows Server 2019 LTSC 변형(버전 번호 10.0.17763.X)을 지원하는지 확인합니다.

docker manifest inspect MANIFEST_NAME

MANIFEST_NAME을 Docker 매니페스트의 이름으로 바꿉니다(예: eu.gcr.io/gke-release-staging/internet-explorer:v2).

출력은 다음과 비슷합니다.

{
  {
    "mediaType": "application/vnd.docker.distribution.manifest.v2+json",
    "size": 1575,
    "digest": "...",
    "platform": {
        "architecture": "amd64",
        "os": "windows",
        "os.version": "10.0.17763.1935"

  }
}

멀티 아키텍처 Windows 컨테이너 이미지 빌드

Windows Server 2019 LTSC 변형을 지원하는 업데이트가 필요한 이미지를 식별한 후에는 멀티 아키텍처 Windows Server 이미지를 빌드하는 것이 좋습니다.

멀티 아키텍처 이미지를 빌드하면 GKE가 제공하는 모든 Windows 버전에서 컨테이너가 실행됩니다. containerd는 마이그레이션된 노드 풀에서 Windows Server LTSC 버전을 감지하고 매니페스트에서 적절한 이미지를 선택하므로 멀티 아키텍처 이미지를 사용하면 마이그레이션 환경이 간편해집니다.

이러한 이미지는 수동으로 또는 Cloud Build gke-windows-builder를 사용하여 빌드할 수 있습니다. 새로운 Windows Server LTSC 이미지가 출시될 때마다 이를 지원하도록 정기적으로 업데이트되는 Cloud Build 빌더를 사용하는 것이 좋습니다. 멀티 아키텍처 이미지에 대한 수동 및 Cloud Build 지침은 Windows Server 멀티 아키텍처 이미지 빌드를 참조하세요.

노드를 Windows Server LTSC로 업그레이드

Windows Server LTSC 변형을 지원하도록 컨테이너 이미지를 업데이트한 후 노드 풀을 Windows Server LTSC 노드 이미지로 마이그레이션합니다. 프로덕션 환경을 업그레이드하기 전에 스테이징 또는 테스트 클러스터에서 마이그레이션을 테스트하여 배포가 의도한 대로 작동하는지 확인하는 것이 좋습니다. 이미지를 업데이트하려면 다음 중 하나를 수행하세요.

  • 새 노드 풀을 만들고 새 노드로 워크로드 마이그레이션
  • 기존 노드 풀의 이미지 유형 업그레이드

새 노드 풀 만들기

  1. 새 노드 풀을 만듭니다.

    gcloud container node-pools create NODE_POOL_NAME \
        --cluster=CLUSTER_NAME \
        --image-type=WINDOWS_LTSC_IMAGE
    

    다음을 바꿉니다.

    • NODE_POOL_NAME: 새 노드 풀의 이름입니다.
    • CLUSTER_NAME: GKE 클러스터의 이름입니다.
    • WINDOWS_LTSC_IMAGE: 사용할 Windows Server LTSC 이미지(windows_ltsc_containerd 또는 windows_ltsc)입니다.
  2. 워크로드 노드에 다음 nodeSelector를 추가합니다.

    spec:
      ...
      nodeSelector:
        kubernetes.io/os: windows
        cloud.google.com/gke-os-distribution: windows_ltsc
    

    또한 이 nodeSelector를 windows_sac에 라벨 값으로 사용하여 새 노드에서 특정 포드가 예약되지 않도록 GKE에 지시할 수 있습니다.

  3. 업데이트된 매니페스트를 배포합니다.

    kubectl apply -f MANIFEST_NAME
    
  4. 이전 노드 풀을 0으로 조정합니다.

    gcloud container node-pools update OLD_POOL \
        --cluster=CLUSTER_NAME \
        --min-nodes=0 \
        --max-nodes=NODE_COUNT
    

    다음을 바꿉니다.

    • OLD_POOL: 기존 Windows Server SAC 노드 풀의 이름입니다.
    • NODE_COUNT: 노드 풀의 최대 노드 수입니다. 이 명령어를 반복하여 이 수를 0으로 점차 줄입니다. 문제가 발생하면 이 값을 다시 확장하세요.
  5. 완전히 마이그레이션되면 이전 노드 풀을 삭제합니다.

    gcloud container node-pools delete OLD_POOL \
        --cluster=CLUSTER_NAME
    

기존 노드 풀 업데이트

  1. 기존 Windows Server SAC 노드 풀에서 노드 이미지 유형을 전환합니다.

    gcloud container clusters upgrade CLUSTER_NAME \
        --region=COMPUTE_REGION \
        --node-pool=NODE_POOL \
        --image-type=WINDOWS_LTSC_IMAGE
    

    다음을 바꿉니다.

    • CLUSTER_NAME: GKE 클러스터의 이름입니다.
    • COMPUTE_REGION: 클러스터의 Compute Engine 리전입니다. 영역 클러스터의 경우 --zone=COMPUTE_ZONE을 사용합니다.
    • NODE_POOL: Windows Server SAC 노드 풀의 이름입니다.
    • WINDOWS_LTSC_IMAGE: 사용할 Windows Server LTSC 이미지(windows_ltsc_containerd 또는 windows_ltsc)입니다.

다음 단계