自动将 GKE Windows Server 节点加入 Managed Microsoft AD 域

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

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

GKE 集群中创建节点池时,您可以使用 Managed Microsoft AD 提供的现成脚本自动加入 Managed Microsoft AD 网域。GKE 创建节点池后,托管式 Microsoft AD 会发起域名加入请求,并尝试将节点加入您的网域。如果网域加入请求成功,托管式 Microsoft AD 会将节点加入您的网域。如果网域加入请求失败,则创建的节点会继续运行。您需要检查日志以找出并解决问题,然后才能重新创建节点池。如需了解详情,请参阅查看调试日志

在某些特定情况下,您需要从托管式 Microsoft AD 中手动清理与未加入的节点相关的信息。如需了解详情,请参阅清理未加入集群的虚拟机

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

自动网域加入功能不会将 GKE 节点配置为使用 gMSA 进行身份验证。不过,您可以在托管式 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. 在包含托管式 Microsoft AD 网域的项目中,创建具有 Google Cloud 托管式身份网域联接 (roles/managedidentities.domainJoin) IAM 角色的服务账号。如需了解详情,请参阅 Cloud 托管的身份角色

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

元数据

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

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

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

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

加入 Windows Server 节点

您可以在向 GKE 集群添加 Windows Server 节点池时配置这些元数据键。本部分介绍了如何在创建节点池时在 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

后续步骤