Using managed GKE clusters¶
Initial setup¶
Install the GKE plugin¶
To use Google Kubernetes Engine (GKE), begin by installing the “GKE clusters” plugin from the Plugins store in Dataiku DSS. For more details, see the instructions for installing plugins.
Prepare your local commands¶
Follow the Google Cloud Platform (GCP) documentation to ensure the following on your local machine (where DSS is installed):
The
gcloudcommand is installed. See install documentation. Thegcloudcommand has the appropriate permissions and scopes to:push to the Google Artifact Registry (GAR) service.
have full control on the GKE service.
The
gke-gcloud-auth-plugincommand is installed. See GCP documentation.The
kubectlcommand is installed. See install documentation.The
dockercommand is installed, can build images and push them to GAR. The latter can be enabled by running thegcloud auth configure-dockercommand. See install documentation.
Note
- Cluster management has been tested with the following versions of Kubernetes:
1.23
1.24
1.25
1.26
1.27
1.28
1.29
1.30
1.31
1.32
1.33
1.34
1.35
1.36
There is no known issue with other Kubernetes versions.
Create base images¶
Build the base image by following these instructions.
Create new image build and containerized execution configurations¶
Go to: Administration > Settings > Containerized Execution
Add a new image build configuration
Configure the GAR repository URL to use, e.g.
<region>-docker.pkg.dev/my-gcp-project/my-repositorySet the GAR-specific push/authentication option on the image build configuration.
Add a new container execution configuration of type “Kubernetes”
Finish by clicking Push base images.
Cluster configuration¶
Connection¶
The connection is where you define how to connect to GCP. This can be done either inline in each cluster (not recommended), or as a preset in the “GKE connection” plugin settings (recommended).
Network settings¶
The “network” field refers to the Virtual Private Cloud (VPC) where the cluster will be deployed. The “sub-network” field defines the IP space within that VPC where the pod IPs will be allocated. If left blank, those fields will use default network settings, the details of which are explained in the GCP documentation.
Cluster nodes¶
This is where you define the number and type of nodes that you want in your cluster. You can define the properties of a node pool either inline (not recommended) or as a preset in the “Node pools” plugin settings (recommended). You have the possibility to define multiple node pools, each with its own properties.
Using GPUs¶
GCP provides GPU-enabled instances with NVIDIA GPUs. Using GPUs for containerized execution requires the following steps.
Enable GPU support on the cluster¶
When you create your cluster using the GKE plugin, be sure to enable the “With GPU” option in the node pool settings. Follow the GCP documentation on GPUs to select the GPU type.
At cluster creation, the plugin will run the NVIDIA driver “DaemonSet” installation procedure, which needs several minutes to complete.
Add a custom reservation¶
For your containerized execution task to run on nodes with GPUs, and for GKE to configure the CUDA driver on your containers, the corresponding pods must be created with a custom limit (in Kubernetes parlance). This indicates that you need a specific type of resource (standard resource types are CPU and memory).
You must configure this limit in the containerized execution configuration. To do this:
In the “Custom limits” section, add a new entry with key
nvidia.com/gpuand value1(to request 1 GPU).Add the new entry and save your settings.
Deploy¶
You can now deploy your GPU-based recipes and models.