Get Started with IO Kubernetes Service

Kubernetes is a powerful open-source container orchestration platform designed for deploying, scaling, and managing containerized applications across distributed systems. It provides robust scheduling, resource allocation, and workload management, making it an essential tool for handling complex multi-node environments.

Kubernetes is designed to automate containerized applications' deployment, scaling, and management. It provides a framework for automating the management of containerized workloads and services, allowing your organization to abstract away the underlying infrastructure and focus on developing and deploying its applications.

Kubernetes for GPU Workloads and Machine Learning

Kubernetes is particularly effective for machine learning (ML) and high-performance computing (HPC) workloads, where GPU acceleration is critical. It offers:

  • Dynamic GPU resource allocation for efficient workload distribution.
  • Auto-scaling to optimize GPU utilization based on demand.
  • Containerized ML environments for reproducibility and modularity.
  • Resource isolation to prevent contention between workloads.

This guide outlines connecting to and interacting with a Kubernetes cluster using kubectl to manage GPU-accelerated workloads.

To deploy a Kubernetes Service:

  1. From IO Cloud, next to Kubernetes, click Deploy.
  2. Select a Cluster Type.
  3. Select your Master Node Configuration.
    Note: Development will have one node and Production will have either three or five node configurations.
  4. Choose location(s).
  5. Select your Cluster Processor.
  6. Preview your request on the Summary page.
  7. Finalize and launch your cluster on the Payment page.

Access and review your cluster in the Kubernetes tab under IO Cloud.

📘

Note: Please be aware that Kubernetes Cluster is still in beta stage, so some more advanced features are not yet available.

Connect to Your Kubernetes Cluster

To interact with your cluster, you'll need kubectl, the Kubernetes command-line tool. Ensure you have valid cluster credentials, which are typically provided as a kubeconfig file.

Configuring kubeconfig

Your kubeconfig file contains authentication details and configuration settings for cluster access. You can set it up in two ways:

  1. Using the export command:
    export KUBECONFIG=/path/to/your/kubeconfig
  2. Moving it to the default location
    mv /path/to/your/kubeconfig ~/.kube/config

Once set up, your system will automatically detect the configuration file.

Verifying Cluster Access

After configuring kubeconfig, verify connectivity with the cluster:

kubectl cluster-info
kubectl version

These commands show cluster details and verify the compatibility between the client and server versions.

Essential kubectl Commands

Once connected, utilize kubectl to manage and monitor your workloads efficiently.

Retrieve Cluster Namespaces

kubectl get ns

List All Pods Across Namespaces

kubectl get pods --all-namespaces

View Deployments in a Specific Namespace

kubectl get deployments --namespace <namespace-name>

Describe a Deployment

kubectl describe deployment --namespace

View Pod Logs

kubectl logs -l <label-key>=<label-value>

These commands offer insights into cluster status, workloads, and logging, which are essential for debugging and performance tuning.

Explore Advanced kubectl Documentation

For deeper insights into Kubernetes operations, refer to:

Utilizing these resources can enhance your Kubernetes workflow for GPU-accelerated workloads and ML applications.