Skip to main content
Version: 2023.3

Kubernetes Integration

The Kubernetes deployment type integrates CloudShell with Kubernetes. This integration enables the deployment of CloudShell Apps in self-hosted and cloud-managed Kubernetes containers. CloudShell supports deploying Kubernetes pods from images residing in the cluster's image registry.

The following diagram illustrates an Kubernetes integration (with a local CloudShell installation) hosting two live sandboxes:

CloudShell communicates with the Kubernetes cluster over the Kubernetes API to deploy and manage container instances as part of CloudShell sandboxes.

When deploying a sandbox, CloudShell creates a Kubernetes deployment in a dedicated namespace for the sandbox. The deployment spins up 1 or more pods for each Kubernetes App (number of pods are defined in the App’s settings) as well as services for exposing the internal and external ports defined in the App. A dedicated service is created for each port. For each internal port, a ClusterIP service is created, and for each external port, a LoadBalancer or NodePort service is created.

Notes
  • CloudShell does not manage Kubernetes App connectivity at this time. This can be done using the external and internal ports defined in the App.
  • When the sandbox ends, the sandbox's namespace along with all its components are automatically deleted from the cluster.
  • The App's external IP is displayed in the VM Details pane. For details, see View an App's VM Details.

Kubernetes installation workflow

To integrate Kubernetes with CloudShell, perform the following steps:

  1. Add a Kubernetes Cloud Provider Resource

  2. Add a Kubernetes App Template