自动将 GKE Windows Server 节点加入代管式 Microsoft AD 网域

本页面介绍如何使用自动网域加入功能将 Google Kubernetes Engine (GKE) 集群中的 Windows Server 节点加入代管式 Microsoft AD 网域。

代管式 Microsoft AD 如何将 Windows Server 节点自动加入网域

GKE 集群中创建节点池时,您可以使用 Managed Microsoft AD 提供的现成脚本来自动加入 Managed Microsoft AD 网域。在 GKE 创建节点池后,Managed Microsoft AD 会发起网域加入请求,并尝试将节点与您的网域联接起来。如果网域加入请求成功,Managed Microsoft AD 会将节点加入您的网域。如果网域加入请求失败,创建的节点将继续运行。您需要查看日志以确定并解决问题,然后再重新创建节点池。如需了解详情,请参阅查看调试日志

在某些特定场景中,您需要从代管式 Microsoft AD 手动清理未联接节点的相关信息。如需了解详情,请参阅清理未联接的虚拟机

您无法使用网域加入脚本更新现有节点池来自动将现有节点加入您的网域。

自动网域加入功能不会将 GKE 节点配置为使用 gMSA 进行身份验证,但是,您可以在 Managed Microsoft AD 中手动创建 gMSA,并将 GKE 节点配置为使用 gMSA。如需了解如何为 GKE 节点配置 gMSA,请参阅为 Windows Pod 和容器配置 gMSA

准备工作

  1. 创建代管式 Microsoft AD 网域

  2. 使用 Windows Server 节点池创建 GKE 集群

  3. 请确保 Windows Server 节点在代管式 Microsoft AD 支持的 Windows 版本上运行。

  4. 在代管式 Microsoft AD 网域与节点网络之间配置网域对等互连,或将代管式 Microsoft AD 网域与节点位于同一网络中。

  5. 在具有 Managed Microsoft AD 网域的项目中创建一个具有 Google Cloud Managed Identities 网域加入 (roles/managedidentities.domainJoin) IAM 角色的服务帐号。如需了解详情,请参阅 Cloud Managed Identity 角色

  6. 在 Windows Server 节点上设置完整的 cloud-platform 访问权限范围。如需了解详情,请参阅授权

元数据

您需要以下元数据键才能将 Windows Server 节点加入网域。

  • windows-startup-script-url
  • managed-ad-domain
  • 可选:enable-guest-attributes
  • 可选:managed-ad-ou-name
  • 可选:managed-ad-force

如需详细了解这些元数据键,请参阅元数据

当代管式 Microsoft AD 中已存在 Windows Server 节点的计算机帐号时,网域加入请求会失败。为了使 Managed Microsoft AD 在网域加入过程中重复使用现有的计算机帐号,您可以在创建节点池时使用 managed-ad-force 元数据键。

联接 Windows Server 节点

在将 Windows Server 节点池添加到 GKE 集群时,您可以配置这些元数据键。本部分介绍在创建节点池时如何在 gcloud CLI 命令中使用这些元数据键。

但是,在使用其他可用选项创建节点池时,您也可以使用这些元数据键。如需了解详情,请参阅添加和管理节点池

如需创建节点池并加入 Windows Server 节点,请运行以下 gcloud CLI 命令:

gcloud container node-pools create NODE_POOL_NAME \
    --cluster=CLUSTER_NAME \
    "--metadata=windows-startup-script-url=URL,managed-ad-domain=DOMAIN_RESOURCE_PATH,managed-ad-force=TRUE" \
    --service-account=SERVICE_ACCOUNT \
    --image-type=WINDOWS_IMAGE_NAME \
    --scopes=https://www.googleapis.com/auth/cloud-platform \
    --location=ZONE_OR_REGION \
    --no-enable-autoupgrade

您可以将 --metadata 标志中的占位符替换为相关值,如元数据部分中所述。

如需详细了解此 gcloud CLI 命令,请参阅 gcloud container node-pools create

后续步骤