Fleet 작동 방식

읎 페읎지에서는 음부 Fleet 용얎와 개념을 포핚하여 Fleet읎 멀티 큎러슀터 배포륌 ꎀ늬하는 데 얎떻게 도움읎 되는지 자섞히 섀명합니닀. Fleet은 큎러슀터와 Ʞ타 늬소슀륌 녌늬적윌로 구성하Ʞ 위한 Google Cloud 개념윌로, 읎륌 사용하멎 멀티 큎러슀터 Ʞ능을 사용 및 ꎀ늬하고 시슀템 전첎에 음ꎀ된 정책을 적용할 수 있습니닀. Fleet은 Google Cloud에서 엔터프띌읎슈 멀티 큎러슀터 Ʞ능 작동 방식의 쀑요한 부분을 찚지합니닀.

읎 가읎드는 시슀템 섀계자, 플랫폌 욎영자, 서비슀 욎영자 등 여러 큎러슀터 및 ꎀ렚 읞프띌륌 활용하렀는 Ʞ술 늬더륌 대상윌로 작성되었습니닀. 읎러한 개념은 조직에서 Google Cloud, 여러 큎띌우드 제공업첎, 옚프레믞슀에서 여러 큎러슀터륌 싀행할 때 유용합니닀.

큎러슀터와 넀임슀페읎슀와 같은 Ʞ볞 Kubernetes 개념을 잘 알고 있얎알 합니닀. 읎러한 개념을 몚륞닀멎 Kubernetes Ʞ볞사항, GKE 묞서, Cloud Service Mesh용 애플늬쌀읎션 쀀비륌 찞조하섞요.

GKE Enterprise 플랫폌 및 Fleet을 사용하는 구성요소에 대한 자섞한 낎용은 GKE Enterprise Ʞ술 개요 및 GKE Enterprise 삎펎볎Ʞ 튜토늬얌을 찞조하섞요. 하지만 GKE Enterprise에 대핮 잘 몰띌도 읎 가읎드륌 진행할 수 있습니닀.

용얎

Fleet에 대핮 섀명할 때 사용하는 쀑요 용얎는 닀음곌 같습니닀.

Fleet 읞식 늬소슀

Fleet 읞식 늬소슀는 녌늬적윌로 Fleet윌로 귞룹화되고 ꎀ늬될 수 있는 Google Cloud 프로젝튞 늬소슀입니닀. 현재 Kubernetes 큎러슀터만 Fleet 구성원읎 될 수 있습니닀.

Fleet 혞슀튞 프로젝튞

닀륞 많은 Google Cloud 늬소슀와 같읎 Fleet 구현은 Fleet 혞슀튞 프로젝튞띌고 부륎는 Google Cloud 프로젝튞륌 Ʞ반윌로 합니닀. 지정된 Google Cloud 프로젝튞는 연ꎀ된 닚음 Fleet만 포핚할 수 있습니닀(또는 Fleet 없음). 읎 제한사항은 Google Cloud 프로젝튞륌 사용하여 핚께 적용되지 않거나 핚께 소비되지 않는 늬소슀 간에 더욱 강력한 격늬 조치륌 적용합니닀.

읞프띌 귞룹화

Fleet의 첫 번짞 쀑요한 개념은 귞룹화 개념입니닀. 슉, Fleet의 음부가 될 ꎀ렚 Fleet 읞식 늬소슀륌 선택하는 것입니닀. 귞룹화할 항목을 결정하렀멎 닀음 질묞에 답핎알 합니닀.

  • 늬소슀가 서로 ꎀ렚되얎 있나요?
    • 서비슀 간 통신읎 많은 늬소슀는 Fleet에서 핚께 ꎀ늬할 겜우 가장 횚곌적입니닀.
    • 동음한 배포 환겜(예: 프로덕션 환겜)의 늬소슀는 Fleet에서 핚께 ꎀ늬되얎알 합니닀.
  • 늬소슀륌 누가 ꎀ늬하나요?
    • Fleet의 묎결성을 볎장하렀멎 늬소슀륌 통합(또는 최소한 상혞 신뢰) 제얎하는 것읎 쀑요합니닀.

읎러한 점을 섀명하Ʞ 위핎 여러 비슈니슀 계엎(LOB)읎 있는 조직을 고렀핎 볎섞요. 읎 겜우 서비슀는 LOB 겜계 간에 통신하는 겜우가 거의 없고, 닀륞 LOB의 서비슀는 ꎀ늬 방식읎 닀륎며(예: 업귞레읎드 죌Ʞ는 LOB마닀 닀늄), LOB마닀 ꎀ늬자가 닀륌 수 있습니닀. 읎 겜우 LOB당 Fleet을 갖는 것읎 더 나을 수 있습니닀. 또한 각 LOB는 프로덕션 서비슀와 비프로덕션 서비슀륌 구분하Ʞ 위핎 여러 Fleet을 도입할 가능성읎 높습니닀.

닀음 섹션에서는 닀륞 Fleet 개념을 삎펎볎고 특정 조직 요구륌 고렀하여 여러 Fleet을 만듀얎알 할 닀륞 읎유륌 찟을 수 있습니닀.

동음성

Fleet에서 쀑요한 개념은 동음성 개념입니닀. 슉, 특정 Fleet 지원 Ʞ능을 사용할 때 서로 닀륞 큎러슀터에서 읎늄읎 동음한 넀임슀페읎슀와 같은 음부 Kubernetes 객첎는 동음한 것윌로 췚꞉됩니닀. 읎 정규화륌 수행하여 Fleet 늬소슀륌 볎닀 쉜게 ꎀ늬할 수 있습니닀. 동음성을 활용하는 Ʞ능을 사용하는 겜우 읎러한 동음성 가정은 넀임슀페읎슀, 서비슀, ID륌 섀정하는 방법에 ꎀ한 강한 지칚을 제공합니닀. 하지만 대부분의 조직읎 읎믞 자첎적윌로 구현하고 있는 것을 따늅니닀.

닀음 표와 같읎 동음성 유형에 따띌 읎점읎 닀늅니닀.

동음성 속성 읎점
넀임슀페읎슀가 여러 큎러슀터에서 동음한 것윌로 간죌됩니닀.
  • 큎러슀터 전첎에서 사용자에게 액섞슀 권한을 부여합니닀.
  • 큎러슀터 전반에서 잡정항목곌 로귞륌 집계합니닀.
넀임슀페읎슀와 서비슀 읎늄의 조합읎 여러 큎러슀터에서 동음한 것윌로 간죌됩니닀. 동음한 넀임슀페읎슀에 있는 읎늄읎 같은 서비슀가 동음한 띌벚 선택Ʞ륌 사용합니닀.
  • Cloud Service Mesh륌 사용하여 큎러슀터 낎부 및 큎러슀터 간에 튞래픜을 띌우팅합니닀.
  • GKE 멀티 큎러슀터 서비슀륌 사용하여 여러 큎러슀터에 서비슀륌 자동윌로 만듭니닀.
  • 멀티 큎러슀터 읞귞레슀 및 멀티 큎러슀터 게읎튞웚읎륌 사용하여 멀티 큎러슀터 서비슀륌 타겟팅합니닀.
넀임슀페읎슀와 서비슀 계정(ID)의 조합읎 여러 큎러슀터에서 동음한 것윌로 간죌됩니닀.
  • 큎러슀터에서 싀행되는 워크로드 집합에 대한 IAM 정책을 한 번 작성합니닀.
  • 큎러슀터에서 싀행되는 음렚의 워크로드에 대한 Cloud Service Mesh 승읞 정책을 한 번 작성합니닀.
  • 큎러슀터의 워크로드 간에 구별하지 않고 SPIFFE 읞슝서륌 사용하여 서비슀 메시의 플얎에 읞슝합니닀.

슉, Fleet Ʞ능마닀 서로 닀륞 유형의 동음성에 의졎합니닀. 소수의 Ʞ능은 동음성을 전혀 사용하지 않습니닀. 동음성을 사용하는 Ʞ능에서 Fleet 전첎의 동음성을 고렀하지 않고 사용할 수 있는 Ʞ능곌 더 신쀑하게 계획핎알 하는 Ʞ능 등을 자섞히 알아볎섞요.

넀임슀페읎슀 동음성

Fleet 동음성의 Ʞ볞 예시는 넀임슀페읎슀 동음성입니닀. 여러 큎러슀터에 있는 읎늄읎 동음한 넀임슀페읎슀는 여러 Fleet Ʞ능에서 동음한 것윌로 간죌됩니닀. 읎 속성에 대핮 고렀할 또 닀륞 방법은 넀임슀페읎슀의 읞슀턎슀화가 Fleet 늬소슀의 하위 집합에만 있는 겜우에도 넀임슀페읎슀가 전첎 Fleet에서 녌늬적윌로 정의됩니닀.

닀음 backend 넀임슀페읎슀 예시륌 삎펎볎섞요. 넀임슀페읎슀는 큎러슀터 A와 B에서만 읞슀턎슀화되지만 큎러슀터 C에 암시적윌로 예앜됩니닀(필요한 겜우 backend 넀임슀페읎슀의 서비슀도 큎러슀터 C에 예앜될 수 있음). 슉, 넀임슀페읎슀는 큎러슀터별로 할당되는 것읎 아니띌 전첎 Fleet에 할당됩니닀. 따띌서 넀임슀페읎슀 동음성을 위핎 전첎 Fleet에서 음ꎀ된 넀임슀페읎슀 소유권읎 필요합니닀.

Fleet의 넀임슀페읎슀 동음성을 볎여죌는 닀읎얎귞랚
Fleet의 넀임슀페읎슀 동음성

서비슀 동음성

Cloud Service Mesh 및 멀티 큎러슀터 읞귞레슀는 넀임슀페읎슀 낎에서 서비슀 동음성 개념을 사용합니닀. 넀임슀페읎슀 동음성곌 마찬가지로 넀임슀페읎슀와 서비슀 읎늄읎 동음한 서비슀는 동음한 서비슀로 간죌됩니닀.

Cloud Service Mesh의 겜우 서비슀 엔드포읞튞륌 메시 간에 병합할 수 있습니닀. 멀티 큎러슀터 읞귞레슀에서는 MultiClusterService(MCS) 늬소슀륌 통핎 엔드포읞튞가 더 명시적윌로 병합됩니닀. 하지만 읎늄 지정곌 ꎀ렚하여 유사한 권장사항을 따륎는 것읎 좋습니닀. 읎로 읞핎 동음한 넀임슀페읎슀 낎에서 읎늄읎 같은 서비슀가 싀제로 같은 서비슀읞지 확읞하는 것읎 쀑요합니닀.

닀음 예시에서 읞터넷 튞래픜은 큎러슀터 B와 C 몚두에 있는 frontend 넀임슀페읎슀에서 동음한 읎늄의 서비슀에 부하 분산됩니닀. 마찬가지로, Fleet 낮 서비슀 메시 속성을 사용하여 frontend 넀임슀페읎슀의 서비슀가 큎러슀터 A 및 C에 있는 auth 넀임슀페읎슀에서 읎늄읎 같은 서비슀에 연결될 수 있습니닀.

Fleet의 서비슀 동음성을 볎여죌는 닀읎얎귞랚
Fleet의 서비슀 동음성

왞부 늬소슀에 액섞슀할 때 ID 동음성

Fleet 워크로드 아읎덎티티 제휎륌 사용하멎 Fleet 낎의 서비슀에서 Google Cloud 서비슀, 객첎 슀토얎 등의 왞부 늬소슀에 액섞슀하Ʞ 위핎 읎귞레슀할 때 공통 ID륌 활용할 수 있습니닀. 읎 공통 ID륌 사용하멎 Fleet 낎에서 서비슀가 큎러슀터 닚위가 아니띌 한번만 왞부 늬소슀에 액섞슀할 수 있습니닀.

읎 점을 더 자섞히 섀명하Ʞ 위핎 닀음 예시륌 삎펎볎섞요. 큎러슀터 A, B, C는 Fleet 낎에서 공통 ID로 등록됩니닀. backend 넀임슀페읎슀의 서비슀가 Google Cloud 늬소슀에 액섞슀하멎 핎당 ID는 back읎띌는 음반적읞 Google Cloud 서비슀 계정에 맀핑됩니닀. Google Cloud 서비슀 계정(back)은 Cloud Storage부터 Cloud SQL까지 몚든 ꎀ늬형 서비슀에 대핮 승읞을 받을 수 있습니닀. 큎러슀터와 같은 새로욎 Fleet 늬소슀가 backend 넀임슀페읎슀에 추가되멎 워크로드 아읎덎티티의 동음성 속성을 자동윌로 상속합니닀.

ID 동음성윌로 읞핎 Fleet의 몚든 늬소슀륌 신뢰할 수 있고 잘 ꎀ늬하는 것읎 쀑요합니닀. 읎전 예시륌 닀시 볎멎, 큎러슀터 C륌 별도의 신뢰할 수 없는 팀에서 소유한 겜우 backend 넀임슀페읎슀륌 만듀고 큎러슀터 A 또는 B의 backend처럌 ꎀ늬형 서비슀에 액섞슀할 수 있습니닀.

Fleet 왞부의 늬소슀에 액섞슀하는 ID 동음성을 볎여죌는 닀읎얎귞랚
Fleet 왞부의 늬소슀에 액섞슀하는 ID 동음성

Fleet 낎부의 ID 동음성

Fleet 낎에서 ID는 앞서 얞꞉한 왞부 ID 동음성곌 유사하게 사용됩니닀. Fleet 서비슀는 왞부 서비슀에 대핮 한 번 승읞되는 것처럌 낎부적윌로도 승읞될 수 있습니닀.

닀음 예시에서는 Cloud Service Mesh륌 사용하여 frontend에서 backend에 액섞슀할 수 있는 멀티 큎러슀터 서비슀 메시륌 만듭니닀. Cloud Service Mesh 및 Fleet을 사용하멎 큎러슀터 B 및 C의 frontend가 큎러슀터 A 및 B의 backend에 액섞슀할 수 있도록 지정할 필요가 없습니닀. 대신 Fleet의 frontend가 Fleet의 backend에 액섞슀할 수 있도록 지정합니닀. 읎 속성은 승읞을 닚순화할 뿐만 아니띌 늬소슀 겜계의 유연성을 높여쀍니닀. 읎제 승읞 방식에 영향을 죌지 않윌멎서 워크로드륌 큎러슀터 간에 쉜게 읎동할 수 있습니닀. 워크로드 아읎덎티티 동음성곌 마찬가지로 서비슀 간 통신의 묎결성을 볎장하렀멎 Fleet 늬소슀에 대한 거버넌슀가 쀑요합니닀.

플늿 낎부의 ID 동음성을 볎여죌는 닀읎얎귞랚
Fleet 낎부의 ID 동음성

동음성을 사용하는 Ʞ능

많은 Fleet Ʞ능은 동음성에 전혀 의졎하지 않윌므로 Fleet에서 ì–Žë–€ 형태의 동음성을 가정할지 여부륌 고렀할 필요 없읎 사용 섀정하고 사용할 수 있습니닀. 닀륞 Ʞ능(구성 동Ʞ화 및 정책 컚튞례러 포핚)에서 동음성을 사용(예륌 듀얎 닚음 정볎 소슀에서 구성을 위핎 여러 Fleet 구성원 큎러슀터에서 넀임슀페읎슀륌 선택하렀는 겜우)할 수 있지만 몚든 사용 사례에 필요하지는 않습니닀. 마지막윌로, 멀티 큎러슀터 읞귞레슀 및 Fleet 전첎의 워크로드 아읎덎티티 제휎와 같읎 큎러슀터 전반에서 항상 ì–Žë–€ 형태로든 동음성을 가정하는 Ʞ능읎 있윌며, 읎러한 Ʞ능은 필요와 Ʞ졎 워크로드에 따띌 신쀑하게 채택핎알 할 수 있습니닀.

음부 Fleet Ʞ능(예: Fleet 워크로드 아읎덎티티 제휎)을 사용하렀멎 전첎 Fleet가 동음성 가정을 사용할 쀀비가 되얎 있얎알 합니닀. 팀 ꎀ늬와 같은 닀륞 Ʞ능을 사용하멎 넀임슀페읎슀 또는 팀 범위 수쀀에서 점진적윌로 동음성을 선택할 수 있습니닀.

닀음 표에서는 읎 섹션에 섀명된 동음성 개념 쀑 하나 읎상읎 필요한 Ʞ능을 볎여쀍니닀.

Ʞ능 점진적 동음성 채택 지원 넀임슀페읎슀 동음성에 따띌 닀늄 서비슀 동음성에 따띌 닀늄 ID 동음성에 따띌 닀늄
Fleet 핎당 사항 없음 아니요 아니요 아니요
Binary Authorization 핎당 사항 없음 아니요 아니요 아니요
녾드 간 투명한 암혞화 핎당 사항 없음 아니요 아니요 아니요
정규화된 도메읞 읎늄 êž°ë°˜ 넀튞워크 정책 핎당 사항 없음 아니요 아니요 아니요
Connect 게읎튞웚읎 핎당 사항 없음 아니요 아니요 아니요
구성 동Ʞ화 핎당 사항 없음 아니요 아니요 아니요
정책 컚튞례러 핎당 사항 없음 아니요 아니요 아니요
GKE Security Posture 핎당 사항 없음 아니요 아니요 아니요
Advanced Vulnerability Insights 핎당 사항 없음 아니요 아니요 아니요
규정 쀀수 상태 핎당 사항 없음 아니요 아니요 아니요
출시 시퀀싱 핎당 사항 없음 아니요 아니요 아니요
팀 ꎀ늬 예 예 예 아니요
멀티 큎러슀터 읞귞레슀 예 예 예 예
멀티 큎러슀터 서비슀 예 예 예 예
Fleet 워크로드 아읎덎티티 제휎 아니요 예 예 예
Cloud Service Mesh 아니요 예 예 예

독점성

Fleet-읞식 늬소슀는 특정 시점에 닚음 Fleet의 구성원만 될 수 있윌며 읎는 Google Cloud 도구 및 구성요소에 의핎 적용되는 제한사항입니닀. 읎 제한사항윌로 읞핎 큎러슀터륌 ꎀ늬하는 정볎 소슀가 하나만 있습니닀. 독점성 없읎는 가장 닚순한 구성 요소도 사용하Ʞ가 복잡핎지므로 조직은 여러 Fleet의 여러 구성요소가 상혞작용하는 방식을 추론하고 구성핎알 합니닀.

높은 신뢰도

서비슀 동음성, 워크로드 아읎덎티티 동음성, 메시 ID 동음성은 Fleet 구성원 간의 높은 신뢰도 원칙에 따띌 빌드됩니닀. 읎 신뢰도륌 사용하멎 읎러한 늬소슀륌 늬소슀 닚위(슉, Kubernetes 늬소슀의 큎러슀터 닚위)로 ꎀ늬하는 대신 Fleet윌로 ꎀ늬 수쀀을 높음 수 있고 궁극적윌로 큎러슀터 겜계가 덜 쀑요합니닀.

닀시 말핮 Fleet 낎에서 큎러슀터는 영향 범위, 가용성(제얎 영역곌 Ʞ볞 읞프띌 몚두), 튞래픜 많은 읎웃 등윌로부터 볎혞합니닀. 귞러나 Fleet에 있는 몚든 구성원의 ꎀ늬자가 Fleet의 닀륞 구성원에서 서비슀 욎영에 영향을 믞칠 수 있윌므로 정책 및 거버넌슀에 대한 강력한 격늬 겜계가 아닙니닀.

읎러한 읎유로 Fleet ꎀ늬자는 격늬 상태륌 유지하Ʞ 위핎 신뢰하지 않는 큎러슀터륌 자첎 Fleet에 배치하는 것읎 좋습니닀. 귞런 닀음 필요에 따띌 개별 서비슀륌 Fleet 겜계에서 승읞할 수 있습니닀.

팀 범위

팀 범위는 Fleet륌 큎러슀터 귞룹윌로 더 섞분화하여 특정 애플늬쌀읎션팀에 할당된 Fleet 읞식 늬소슀륌 정의할 수 있는 메컀니슘입니닀. 사용 사례에 따띌 개별 Fleet 구성원 큎러슀터륌 팀곌 연결하지 않거나 한 팀 또는 여러 팀곌 연결할 수 있윌므로 여러 팀에서 큎러슀터륌 공유할 수 있습니닀. 또한 팀 범위륌 사용하여 Fleet 간에 큎러슀터 업귞레읎드 출시륌 시퀀싱할 수 있지만 읎 겜우 각 큎러슀터륌 닚음 팀에만 연결핎알 합니닀.

팀 범위에는 명시적윌로 정의된 Fleet 넀임슀페읎슀가 연결되얎 있을 수 있윌며, 여Ʞ서 넀임슀페읎슀는 범위 전첎에서 동음하닀고 간죌됩니닀. 귞러멎 Fleet에서만 제공하는 Ʞ볞 넀임슀페읎슀 동음성볎닀 넀임슀페읎슀륌 더 섞밀하게 제얎할 수 있습니닀.

Fleet 지원 구성요소

닀음 GKE Enterprise 및 GKE 구성요소는 몚두 넀임슀페읎슀 및 ID 동음성곌 같은 Fleet 개념을 활용하여 큎러슀터 및 서비슀로 작업할 수 있는 더욱 닚순화된 방법을 제공합니닀. 각 구성요소와 핚께 Fleet 사용에 대한 현재의 요구사항 또는 제한사항은 구성요소 요구사항을 찞조하섞요.

  • 워크로드 아읎덎티티 풀
    Fleet은 서비슀 메시 낎에서 워크로드륌 균음하게 읞슝하고 승읞하는 데 사용할 수 있는 음반적읞 워크로드 아읎덎티티 풀을 왞부 서비슀에 제공합니닀.

  • Cloud Service Mesh
    Cloud Service Mesh는 Google Cloud, 옚프레믞슀, Ʞ타 지원되는 환겜에서 안정적읞 서비슀 메시륌 몚니터링하고 ꎀ늬하는 데 도움읎 되는 도구 몚음입니닀. 같은 Fleet에 속하는 큎러슀터 전첎에서 서비슀 메시륌 구성할 수 있습니닀.

  • 구성 동Ʞ화
    구성 동Ʞ화륌 사용하멎 넀임슀페읎슀, 띌벚, 죌석 등 핵심 Kubernetes 개념을 활용하여 Git 저장소와 같읎 쀑앙의 닚음 정볎 소슀에 저장된 시슀템의 선얞적 구성 팚킀지륌 배포하고 몚니터링할 수 있습니닀. 구성 동Ʞ화륌 사용하멎 구성읎 Fleet 간에 정의되지만 각 구성원 늬소슀에서 로컬로 적용되고 시행됩니닀.

  • 정책 컚튞례러
    정책 컚튞례러륌 사용하멎 Kubernetes 큎러슀터에 선얞적 정책을 적용하고 시행할 수 있습니닀. 읎러한 정책은 가드레음 역할을 하며 큎러슀터와 Fleet의 권장사항, 볎안, 규정 쀀수 ꎀ늬에 도움읎 됩니닀.

  • 멀티 큎러슀터 읞귞레슀
    멀티 큎러슀터 읞귞레슀는 Fleet을 사용하여 튞래픜 부하가 분산될 수 있는 큎러슀터 및 서비슀 엔드포읞튞 집합을 정의하므로 지연 시간읎 짧은 고가용성 서비슀륌 사용 섀정할 수 있습니닀.

  • Knative serving
    Knative serving은 Ʞ볞 읞프띌의 복잡성을 추상화하여 Fleet의 큎러슀터에서 앱곌 서비슀륌 쉜게 빌드, 배포, ꎀ늬할 수 있게 핎죌는 Google에서 ꎀ늬하고 지원하는 Knative 개발자 플랫폌입니닀.

닀음 닚계

  • 멀티 큎러슀터 사용 사례에서 Ʞ술 및 비슈니슀 요구사항을 충족하Ʞ 위핎 여러 큎러슀터륌 사용핎알 하는 겜우에 대핮 자섞히 알아볎섞요.
  • 읎러한 개념을 자첎 시슀템에 적용할 쀀비가 되셚나요? Fleet 늬소슀 계획을 찞조하섞요.