Configure Windows Server nodes to automatically join an Active Directory domain


This page provides instructions to configure your Windows Server nodes in your Google Kubernetes Engine (GKE) cluster to automatically join an Active Directory (AD) domain.

If you want to join your Windows Server nodes to a Managed Microsoft AD domain and don't require a security group that contains the computer objects of your cluster, you can use the automated domain join feature. For more information, see Join GKE Windows Server nodes automatically to a Managed Microsoft AD domain.

Before you begin

Before you start, make sure you have performed the following tasks:

  • Enable the Google Kubernetes Engine API.
  • Enable Google Kubernetes Engine API
  • If you want to use the Google Cloud CLI for this task, install and then initialize the gcloud CLI. If you previously installed the gcloud CLI, get the latest version by running gcloud components update.

Configure auto join for Windows Server node pools

  1. Configure AD and your Google Cloud project for automatic joining by completing the instructions in the Configuring Active Directory for VMs to automatically join a domain tutorial.

  2. Create a GKE cluster:

    gcloud container clusters create CLUSTER_NAME \
        --enable-ip-alias \
        --num-nodes=NUMBER_OF_NODES \
        --no-enable-shielded-nodes \
        --cluster-version=VERSION
    

    Replace the following:

    • CLUSTER_NAME: the name of your new cluster.
    • NUMBER_OF_NODES: the number of Linux nodes to create. You should provide sufficient compute resources to run cluster add-ons. This is an optional field and, if omitted, uses the default value of 3.
    • VERSION: the GKE cluster version, which must be 1.17.14-gke.1200 or later or 1.18.9-gke.100 or later. You can also use the --release-channel flag to enroll the cluster in a release channel.
    • --enable-ip-alias turns on alias IP. Alias IP is required for Windows Server nodes.
    • --no-enable-shielded-nodes disables Shielded GKE Nodes.
  3. Set the following variables:

    export DOMAIN_PROJECT_ID=PROJECT_ID
    export SERVERLESS_REGION=REGION
    export REGISTER_URL=https://$SERVERLESS_REGION-$DOMAIN_PROJECT_ID.cloudfunctions.net/register-computer
    

    Replace the following:

  4. Create and start a Windows Server node pool by passing the specialized scriptlet that joins the node to the AD domain:

     gcloud container node-pools create NODE_POOL_NAME \
        --cluster=CLUSTER_NAME \
        --image-type=IMAGE_NAME \
        --no-enable-autoupgrade \
        --machine-type=MACHINE_TYPE_NAME \
        "--metadata=sysprep-specialize-script-ps1=iex((New-Object System.Net.WebClient).DownloadString('$REGISTER_URL'))"
    

    Replace the following:

    • NODE_POOL_NAME: the name of your Windows Server node pool.
    • CLUSTER_NAME: the name of the cluster you created.
    • IMAGE_NAME: the node image to use, such as WINDOWS_LTSC_CONTAINERD. For more information, see Choose your Windows Server node image.
    • MACHINE_TYPE_NAME: the machine type. n1-standard-2 is the minimum recommended machine type as Windows Server nodes require additional resources. Machine types f1-micro and g1-small are not supported. Each machine type is billed differently. For more information, refer to the machine type price sheet.

Your Windows Server node is now joined to your Active Directory domain.

What's next