관리형 컨트롤 플레인 현대화
개요
Google은 ISTIOD
관리형 컨트롤 플레인 구현을 사용했던 기존 Fleet에서 TRAFFIC_DIRECTOR
구현을 사용하도록 점진적으로 업데이트할 예정입니다. 기본적으로 Google에서 자동으로 Fleet을 마이그레이션하지만 직접 마이그레이션을 진행하도록 선택할 수도 있습니다. Fleet에서 사용 중인 컨트롤 플레인을 확인하려면 컨트롤 플레인 구현 확인을 참조하세요.
Fleet의 현대화를 준비할 때 다음 사항을 고려하세요.
현대화를 준비하기 위해 다음 두 가지 방법으로 프로세스를 제어할 수 있습니다.
Google 주도 자동 마이그레이션(기본값) - Google 주도 현대화의 안내에 따라 클러스터 현대화 순서를 맞춤설정할 수 있습니다.
고객 주도 마이그레이션(선택사항) - 고객 주도 현대화의 안내에 따라 Fleet에 라벨을 지정하여 직접 Fleet 현대화를 추진할 수 있습니다.
Google 주도 현대화가 기본값입니다. 이 옵션을 사용하면 Google에서 Fleet 현대화가 가능한 시점을 결정합니다. Google에서 현대화를 위해 Fleet을 예약하고 프로세스를 시작하기 전에 알림을 보냅니다.
클러스터를 현대화하면 프록시가 있는 워크로드가 다시 시작됩니다. Kubernetes 권장사항을 따르는 경우 다운타임이 발생하지 않습니다. 또한 유지보수 기간을 구성한 경우 Google에서 이 기간에 현대화를 트리거합니다. 시작되면 완료될 때까지 실행되며 완료됨으로 표시되기 전에 6일의 추가 적응 시간을 거칩니다. 모니터링에서 문제가 감지되면 롤백을 요청할 수 있습니다.
고객 주도 현대화의 경우 Google에서 Fleet 현대화가 가능해지면 알려줍니다. 그러면 클러스터별로 현대화를 트리거할 시기를 선택할 수 있습니다. 완료된 후 사용자가 각 Fleet 현대화를 완료된 것으로 표시합니다.
Fleet이 현대화되면 Google에서 모든 Istiod 기반 구성요소를 삭제합니다.
TRAFFIC_DIRECTOR
컨트롤 플레인 구현을 사용하려면 클러스터를 메시 기능이 사용 설정된 Fleet에 등록해야 합니다. 기존 도구를 사용하여 온보딩한 경우 Google에서gkehub.googleapis.com
멤버십 API를 사용하여 클러스터를 프로젝트의 Fleet에 자동으로 등록합니다. 클러스터 등록을 취소하는 자동화가 있는 경우 현대화하기 전에 이를 삭제해야 합니다.
Google 주도 현대화
고객 주도 현대화를 위해 Fleet에 라벨을 지정하지 않는 경우 이 옵션이 기본값입니다. Google에서는 Fleet의 안전한 현대화가 가능한 시점을 판단하기 위해 Fleet을 모니터링합니다. 조직의 모든 메시 지원 Fleet이 준비되면 조직의 현대화가 예약됩니다.
여러 Fleet
조직에 관리형 Cloud Service Mesh를 사용하는 여러 Fleet이 있는 경우 mesh-modernization-order
프로젝트 라벨을 early
, default
, late
값 중 하나로 설정하여 Google에서 Fleet을 현대화하는 순서를 제어할 수 있습니다. Google은 다음 그룹의 Fleet을 현대화하기 전에 각 그룹의 현대화를 완료합니다.
고객 주도 현대화를 선택한 Fleet은 이 순서에 고려되지 않습니다.
다음 명령어를 사용하여 Fleet의 mesh-modernization-order
라벨을 설정합니다.
gcloud alpha projects update FLEET_PROJECT_ID --update-labels="mesh-modernization-order=VALUE"
콘솔 또는 REST를 사용하여 프로젝트 라벨을 설정하는 방법은 라벨 만들기 및 관리 문서를 참조하세요.
Google Cloud 조직을 사용하지 않으면 Fleet이 독립적으로 예약되고 현대화되며 순서를 제어할 수 없습니다.
멀티 클러스터 메시
Fleet에 관리형 Cloud Service Mesh를 사용하는 클러스터가 여러 개 있는 경우 mesh-modernization-order
의 클러스터 라벨을 early
, default
, late
값 중 하나로 설정하여 Google에서 클러스터를 현대화하는 순서를 제어할 수 있습니다. Google은 각 그룹의 현대화를 시작하고 자동화된 현대화 단계가 완료될 때까지 기다린 후 다음 그룹의 클러스터 현대화를 시작합니다. 이 순서는 한 Fleet 내에서만 적용되며 동시에 현대화 중인 조직의 다른 Fleet에는 영향을 미치지 않습니다.
다음 명령어를 사용하여 클러스터의 mesh-modernization-order
라벨을 설정합니다.
gcloud container clusters update CLUSTER_NAME \ --location LOCATION \ --update-labels="mesh-modernization-order=VALUE"
알림 및 예약
이 섹션에서는 예정된 Fleet 및 클러스터 현대화에 대한 알림을 받는 방법을 설명합니다.
곧 현대화 예정이라는 알림
먼저 몇 주 내로 진행될 Google 주도 현대화에 Fleet이 선택되면 알림이 전송됩니다.
이 알림은 매월 미국의 첫 번째 영업일 전에 전송됩니다. 가장 빠른 클러스터 현대화 시작일은 매월 미국의 첫 번째 영업일로부터 14일 이후이며, Google은 다음 달 말까지 조직의 첫 번째 클러스터 현대화를 시작하기 위해 최선을 다합니다. 예를 들어 알림이 2025년 4월 1일 전에 제공되면 클러스터 현대화는 2025년 4월 15일부터 시작될 수 있고, 첫 번째 클러스터 현대화는 2025년 5월 31일 전에 시작합니다.
조직의 각 Fleet(고객 주도 현대화를 선택한 Fleet 제외)에 대한 알림이 동시에 전송됩니다.
이 알림은 Fleet 수준 기능 상태 조건에서 사용할 수 있습니다. 다음 Google Cloud CLI 명령어를 사용하여 알림을 확인합니다.
gcloud alpha container fleet mesh describe --project $FLEET_PROJ
Fleet이 예약되면 다음과 유사한 code: MODERNIZATION_WILL_BE_SCHEDULED
및 details
가 포함된 조건이 표시됩니다.
state: servicemesh: conditions: - code: MODERNIZATION_WILL_BE_SCHEDULED details: We will soon schedule clusters in this fleet to be modernized to use the TRAFFIC_DIRECTOR control plane implementation. Please confirm your fleet and cluster preferences prior to scheduling. Cluster modernization dates will be on or after 2025-03-17. documentation_link: ... severity: INFO
현대화가 예약되었다는 클러스터 수준 알림
클러스터 현대화가 시작되기 최소 1일 전에 클러스터의 Google 주도 현대화가 예상되는 시작 날짜에 대한 알림이 클러스터 수준으로 전송됩니다.
Fleet 수준 알림을 지켜보면 개별 클러스터의 현대화 시점을 훨씬 더 정확하게 파악할 수 있습니다.
클러스터 수준 기능 상태 조건에서 알림을 사용할 수 있습니다. 다음 Google Cloud CLI 명령어를 사용하여 알림을 확인합니다.
gcloud container hub mesh describe --project=PROJECT_ID
다음과 비슷한 결과가 표시됩니다.
membershipStates: projects/656460026795/locations/us-central1/memberships/cluster: servicemesh: conditions: - code: MODERNIZATION_SCHEDULED details: This cluster has been scheduled for modernization on or after 2025-03-17. documentationLink: ... severity: INFO
Google 주도 마이그레이션을 위한 활성 현대화
이 섹션에서는 Google 주도 현대화의 단계를 설명합니다.
Fleet 현대화
Google에서 조직의 각 Fleet에 대한 활성 현대화를 트리거합니다. 즉, 각 Fleet에서 다음 단계가 실행됩니다.
early
의mesh-modernization-order
를 사용하여 모든 클러스터를 현대화합니다.default
또는 지정되지 않은mesh-modernization-order
로 모든 클러스터를 현대화합니다.late
의mesh-modernization-order
를 사용하여 모든 클러스터를 현대화합니다.- 각 클러스터의 현대화가 완료됨으로 표시될 때까지 기다립니다. 즉, 이 Fleet의 클러스터에서 마지막 포드를 다시 시작한 후 영업일 기준 6일 이상 기다려야 합니다.
- 이 Fleet의 현대화를 완료하여 Istiod 기반 구성요소를 삭제합니다.
클러스터 현대화
클러스터의 활성 현대화가 진행되는 동안 두 컨트롤 플레인 구현이 일시적으로 나란히 실행되며 안전하고 통제된 방식으로 다음 태스크가 처리됩니다.
- 새 컨트롤 플레인 구현을 사용 설정합니다. 클러스터에 유지보수 기간을 구성하고 Google 주도 현대화를 사용하는 경우 이 단계는 유지보수 기간 중에 시작되어 완료될 때까지 계속됩니다.
- 상태 점검을 사용 설정하기 위해 클러스터의
kube-system
네임스페이스에snk
데몬 세트가 생성되고 클러스터별 방화벽 규칙이 생성됩니다.- 네트워크 엔드포인트 그룹(NEG) 수집을 사용 설정하기 위해 모든 Kubernetes 서비스에 주석
cloud.google.com/neg
가 추가됩니다. - 메시, 경로, 백엔드 서비스, 상태 점검과 같은 새 Google Cloud 리소스가 클러스터에 생성됩니다.
- 일부 새 리소스는 할당량이 제한되어 있습니다. 할당량을 확인하고 필요한 경우 상향 요청할 수 있습니다.
- 다음 단계로 이동하기 전에 적응 시간 동안 클러스터가 모니터링됩니다.
- 네트워크 엔드포인트 그룹(NEG) 수집을 사용 설정하기 위해 모든 Kubernetes 서비스에 주석
- 상태 점검을 사용 설정하기 위해 클러스터의
- 새 컨트롤 플레인 구현으로 트래픽을 전환합니다. 클러스터에 유지보수 기간을 구성하고 Google 주도 현대화를 사용하는 경우 이 단계는 유지보수 기간 중에 시작되어 완료될 때까지 계속됩니다.
- Cloud Service Mesh 프록시가 있는 Kubernetes 배포에서 관리하는 포드가 다시 시작되어 새 컨트롤 플레인에 다시 연결됩니다.
- 모니터링을 위해 각 웨이브 후에 적응 시간을 거치며 점점 더 큰 웨이브로 포드가 다시 시작됩니다.
- 클러스터의 현대화가 완료됨으로 표시되기까지 영업일 기준 최소 6일의 적응 시간이 필요합니다.
다음 Google Cloud CLI 명령어를 사용하여 활성 현대화의 상태를 확인합니다.
gcloud container fleet mesh describe --project FLEET_PROJECT_ID
클러스터별 membershipStates
필드에 다음 중 하나와 같은 조건이 표시됩니다.
... membershipStates: projects/FLEET_PROJ/locations/us-central1/memberships/MEMBERSHIP: servicemesh: conditions: - code: MODERNIZATION_IN_PROGRESS details: ... documentationLink: ... severity: INFO ... # If you see this, see instructions provided in the details and documentationLink fields. - code: MODERNIZATION_ACTION_REQUIRED details: [details about required actions] documentationLink: [link to documentation for required actions] severity: WARNING ... - code: MODERNIZATION_COMPLETED details: ... documentationLink: ... severity: INFO
고객 주도 현대화
Fleet 수준에서 직접 현대화의 정확한 시점을 제어할 수 있습니다. 이렇게 하려면 다음 명령어를 사용하여 Fleet 호스트 프로젝트에 라벨을 적용합니다.
gcloud alpha projects update FLEET_PROJECT_ID \ --update-labels="mesh-modernization-mode=manual"
Google Cloud 조직에 여러 Fleet이 있는 경우 라벨이 지정되지 않은 Fleet에는 Google 주도 현대화가 예약됩니다.
Fleet을 현대화할 수 있게 되면 Fleet 수준의 기능 상태에 알림이 표시됩니다. 이 알림을 받은 후 3개월 이내에 현대화를 트리거해야 합니다.
현대화를 수동으로 트리거하는 방법에 관한 자세한 내용을 포함하도록 문서를 업데이트할 예정입니다. 알림을 받으려면 Cloud Service Mesh 출시 노트 피드를 구독하세요.