Skip to main content
Version: 0.5.0

Prerequisites

Introduction

This topic describes the prerequisites for installing KubeSlice. Ensure that you have the following environment set up that is required to install KubeSlice. In this environment, you must install the KubeSlice Controller and register clusters with it. You need:

  • Kubernetes clusters.
  • Clusters to be able to reach each other (that is, for each cluster, there must be an IP address that is routable from other clusters that want to reach it) whether through a public or a private network.
  • Ports exposed on the clusters so that the tunneling service can connect.
  • A kubeconfig file retrieved from the clusters for authentication.

Command Line Tools

You need the following command line tools to install the KubeSlice.

Package RequiredInstallation Instructions
Helm - The Package Manager for KubernetesInstalling Helm
kubectl - Kubernetes CLIInstalling Tools
kubectx and kubensInstalling Kubectx
Dockerhttps://docs.docker.com/engine/install/
Kind CLIhttps://kind.sigs.k8s.io/docs/user/quick-start/#installation (for kind clusters)

Infrastructure Requirements

Kind Clusters

The following are the infrastructure requirements to install KubeSlice components.

info

If you are on Ubuntu OS, then it is recommended to increase the ulimit to 2048 or unlimited.

If you still face issues, see errors due to too many open files.

Host RequirementsMinimum of 8vCPUs and 8GB of RAM
info

Ensure to modify the memory and CPU usage allowed to docker as described in
https://docs.docker.com/desktop/windows/#resources.

Requirements for Hosting KubeSlice Controller

info

You can install the KubeSlice Controller on a cluster and also register the same cluster with the KubeSlice Controller.

Cluster Requirements1 Kubernetes Cluster
Supported Kubernetes Versions1.23 and 1.24
Required Helm Version3.7.0

Requirements for Worker Clusters

Minimum Clusters Required2 Kubernetes Clusters
Nodes Reserved for KubeSlice Components1 Node per cluster
Supported Kubernetes Versions1.23 and 1.24
Required Helm Version3.7.0

Cloud Clusters

The following are the infrastructure requirements to install KubeSlice components on cloud clusters.

Requirements for Hosting KubeSlice Controller

info

You can install the KubeSlice Controller on a cluster and also register the same cluster with the KubeSlice Controller.

Cluster Requirements1 Kubernetes Cluster
Supported Kubernetes Versions1.23 and 1.24
Supported Kubernetes ServicesAzure Kubernetes Service (AKS), Elastic Kubernetes Service (EKS), and Google Kubernetes Engine (GKE)
Required Helm Version3.7.0
info

Kubeslice has been tested on AKS, GKE, and EKS, but it should run in any Kubernetes environment with the supported Kubernetes versions.

Requirements for Worker Clusters

Minimum Clusters Required1 Kubernetes Clusters
Minimum Nodes or NodePools Required2, Each with a minimum of 4 vCPUs and 16 GB of RAM
NodePools Reserved for KubeSlice Components1 NodePool
Cluster Requirements- 1 Kubernetes Cluster - 2 minimum nodes or NodePools each with a minimum of 4 vCPUs and 16 GB of RAM. - 1 NodePool for KubeSlice components
Supported Kubernetes Versions1.23 and 1.24
Supported Kubernetes ServicesAzure Kubernetes Service (AKS), Elastic Kubernetes Service (EKS), and Google Kubernetes Engine (GKE)
Required Helm Version3.7.0
Required Istio Version1.13.3

Cluster Networking

info

Open the UDP Ports required for the KubeSlice Gateway Node in both public and private clusters.

Kubernetes ServiceCNI with Network Policy SupportOpen UDP PortsReachability Options
Azure Kubernetes ServiceEnable Calico for Azure AKS30000-33000Public Node IP with NodePort Service
Elastic Kubernetes ServiceEnable Calico for Amazon EKS30000-33000Public Node IP with NodePort Service
Google Kubernetes EngineEnable Calico for Google GKE30000-33000Public Node IP with NodePort Service

Required Cluster Roles (RBAC)

caution

Only the cluster administrator can install the KubeSlice Controller and the Slice Operator (Worker Operator).

Cluster Context Switching

You must change your kubeconfig context frequently to run kubectl commands in each cluster. Using kubectx can make this process easier and save you time.

To switch the context to a certain cluster, run the following command with the corresponding cluster name:

kubectx <cluster name>

Expected Output.

Switched to context "<cluster name>"

To return to the last used context, use the following command:

kubectx -

Expected Output.

Switched to context "<previous context>"
success

You have successfully set up the required KubeSlice prerequisites.