Stay organized with collections Save and categorize content based on your preferences.
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 beginBefore you start, make sure that you have performed the following tasks:
gcloud components update
. Note: For existing gcloud CLI installations, make sure to set the compute/region
property. If you use primarily zonal clusters, set the compute/zone
instead. By setting a default location, you can avoid errors in the gcloud CLI like the following: One of [--zone, --region] must be supplied: Please specify location
. You might need to specify the location in certain commands if the location of your cluster differs from the default that you set.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.
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.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:
PROJECT_ID
: the project ID of your domain project.REGION
: the region to deploy your Cloud Run function in. Choose a region that supports both Cloud Run functions and Serverless VPC Access. The region does not have to be the same region as the one you plan to deploy VM instances in.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 nextExcept as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-08-12 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-12 UTC."],[],[]]
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4