📌
GKE Fleet
GKE Fleet(フリート)は、複数のGKEクラスターを一元的に管理・監視するためのGoogle Cloudの機能です。マルチクラスター管理を簡素化し、セキュリティ、ポリシー、構成管理を統一的に行うことができます。
主な特徴:
- 集中管理
fleet.tf
# Fleet の作成
resource "google_container_fleet" "primary" {
project = var.project_id
location = "global"
name = "my-fleet"
}
# Fleet メンバーシップの設定
resource "google_container_fleet_membership" "primary" {
project = var.project_id
location = "global"
fleet = google_container_fleet.primary.name
membership = "cluster-membership"
membership_spec {
cluster_ref {
cluster = google_container_cluster.primary.id
}
}
}
- Fleet機能の有効化
fleet_features.tf
# Fleet 機能の有効化
resource "google_container_fleet_feature" "multicluster_service_discovery" {
project = var.project_id
name = "multiclusterservicediscovery"
fleet = google_container_fleet.primary.name
spec {
multiclusterservicediscovery {
# 設定オプション
}
}
}
resource "google_container_fleet_feature" "mesh" {
project = var.project_id
name = "mesh"
fleet = google_container_fleet.primary.name
spec {
mesh {
management = "MANAGEMENT_AUTOMATIC"
}
}
}
主な機能:
- セキュリティ管理
security_policy.tf
resource "google_container_fleet_feature" "security_policy" {
project = var.project_id
name = "securitypostureconfig"
fleet = google_container_fleet.primary.name
spec {
securitypostureconfig {
security_posture = "BASIC"
vulnerability_mode = "VULNERABILITY_BASIC"
}
}
}
- Config Management
config_management.tf
resource "google_container_fleet_feature" "config_management" {
project = var.project_id
name = "configmanagement"
fleet = google_container_fleet.primary.name
spec {
configmanagement {
config_sync {
source_format = "hierarchy"
git {
sync_repo = "https://github.com/org/repo"
sync_branch = "main"
policy_dir = "/policies"
secret_type = "none"
}
}
}
}
}
- マルチクラスターIngress
multi_cluster_ingress.tf
resource "google_container_fleet_feature" "mci" {
project = var.project_id
name = "multiclusteringress"
fleet = google_container_fleet.primary.name
spec {
multiclusteringress {
config_membership = google_container_fleet_membership.primary.name
}
}
}
利点:
- 統一管理
- 複数クラスターの一元管理
- 共通ポリシーの適用
- 構成の標準化
- セキュリティ強化
- 集中的なセキュリティポリシー
- 脆弱性スキャン
- コンプライアンス管理
- 運用効率化
- 監視の一元化
- 構成管理の自動化
- トラブルシューティングの効率化
使用例:
complete_fleet_example.tf
# Fleet の作成
resource "google_container_fleet" "primary" {
project = var.project_id
location = "global"
name = "my-fleet"
}
# 複数クラスターのメンバーシップ
resource "google_container_fleet_membership" "clusters" {
for_each = {
cluster1 = google_container_cluster.cluster1.id
cluster2 = google_container_cluster.cluster2.id
cluster3 = google_container_cluster.cluster3.id
}
project = var.project_id
location = "global"
fleet = google_container_fleet.primary.name
membership = "membership-${each.key}"
membership_spec {
cluster_ref {
cluster = each.value
}
}
}
# 機能の有効化
resource "google_container_fleet_feature" "features" {
for_each = toset([
"multiclusteringress",
"multiclusterservicediscovery",
"mesh",
"configmanagement"
])
project = var.project_id
name = each.key
fleet = google_container_fleet.primary.name
spec {
dynamic "multiclusteringress" {
for_each = each.key == "multiclusteringress" ? [1] : []
content {
config_membership = google_container_fleet_membership.clusters["cluster1"].name
}
}
# 他の機能の設定...
}
}
使用シナリオ:
- マルチリージョン展開
- グローバルな負荷分散
- 地理的冗長性
- ローカライゼーション
- 環境分離
- 開発/ステージング/本番環境の管理
- チーム別のクラスター管理
- プロジェクト間の標準化
- ハイブリッド/マルチクラウド
- オンプレミスとクラウドの統合
- 複数クラウドプロバイダーの管理
- 移行戦略の実装
GKE Fleetは、大規模なKubernetesデプロイメントを管理する組織にとって特に有用なツールです。
Discussion