You can connect the Tanzu Kubernetes Grid CLI to a vSphere with Tanzu Supervisor Cluster that is running in a vSphere 7 instance. In this way, you can deploy Tanzu Kubernetes clusters to vSphere with Tanzu and manage their lifecycle directly from the Tanzu Kubernetes Grid CLI.
vSphere with Tanzu provides a vSphere Plugin for
kubectl. The vSphere Plugin for
kubectl extends the standard
kubectl commands so that you can connect to the Supervisor Cluster from
kubectl by using vCenter Single Sign-On credentials. Once you have installed the vSphere Plugin for
kubectl, you can connect the Tanzu Kubernetes Grid CLI to the Supervisor Cluster. Then, you can use the Tanzu Kubernetes Grid CLI to deploy and manage Tanzu Kubernetes clusters running in vSphere.
NOTE: On VMware Cloud on AWS and Azure VMware Solution, you cannot create a Supervisor Cluster, and need to deploy a management cluster to run
Download and install the
kubectl vsphere CLI utility on the bootstrap machine on which you run Tanzu Kubernetes Grid CLI commands.
For information about how to obtain and install the vSphere Plugin for
kubectl, see Download and Install the Kubernetes CLI Tools for vSphere in the vSphere with Tanzu documentation.
Connect to the Supervisor Cluster and add it as a management cluster to the
From vCenter Hosts and Clusters view, in the left column, expand the nested Datacenter, the vCenter cluster that hosts the Supervisor Cluster, and its Namespaces object.
Under Namespaces, select the cluster containing the three SupervisorControlPlaneVM instances. In the main pane, select the Summary tab.
Under Summary > Status > Link to CLI Tools click Copy link and record the URL, for example
https://192.168.123.3. This is the Supervisor Cluster API endpoint,
SUPERVISOR_IP below, which serves the download page for the Kubernetes CLI tools.
On the bootstrap machine, run the
kubectl vsphere login command to log in to vSphere 7 with your vCenter Single Sign-On user account.
Specify a vCenter Single Sign-On user account with the required privileges for Tanzu Kubernetes Grid operation, and the virtual IP (VIP) address for the control plane of the Supervisor Cluster. For example:
kubectl vsphere login --vsphere-username email@example.com --server=SUPERVISOR_IP --insecure-skip-tls-verify=true
Enter the password you use to log in to your vCenter Single Sign-On user account.
When you have successfully logged in,
kubectl vsphere displays all of the contexts to which you have access. The list of contexts should include the IP address of the Supervisor Cluster.
Set the context of
kubectl to the Supervisor Cluster.
kubectl config use-context SUPERVISOR_IP
Add the Supervisor Cluster to your Tanzu Kubernetes Grid instance.
tkg add management-cluster
tkg get management-cluster to see the list of management clusters that your
tkg CLI can access.
tkg get management-cluster
The output should list the Supervisor Cluster by its IP address, as both the management cluster name and context.
MANAGEMENT-CLUSTER-NAME CONTEXT-NAME STATUS vsphere-mc vsphere-mc-admin@vsphere-mc Success aws-mc * aws-mc-admin@aws-mc Success SUPERVISOR_IP SUPERVISOR_IP Success
Set the context of the Tanzu Kubernetes Grid CLI to the Supervisor Cluster.
tkg set management-cluster SUPERVISOR_IP
Configure the Tanzu Kubernetes clusters that the
tkg CLI calls the Supervisor Cluster to create:
Obtain information about the storage classes that are defined in the Supervisor Cluster.
kubectl get storageclasses
Set variables to define the storage classes, VM classes, and service domain with which to create your cluster. For information about all of the configuration parameters that you can set when deploying Tanzu Kubernetes clusters to vSphere with Tanzu, see Configuration Parameters for Provisioning Tanzu Kubernetes Clusters in the vSphere with Tanzu documentation.
The following table lists the required variables:
||Value returned from CLI:
||Default storage class for control plane nodes|
||Default storage class for worker nodes|
||Default storage class for control plane or workers|
||Storage classes available for node customization|
||A standard VM class for vSphere with Tanzu, for example
See Virtual Machine Class Types for Tanzu Kubernetes Clusters in the vSphere with Tanzu documentation.
|VM class for control plane nodes|
||VM class for worker nodes|
||CIDR range||The CIDR range to use for the Kubernetes services. The recommended range is
||CIDR range||The CIDR range to use for pods. The recommended range is
You can set the variables above by doing either of the following:
Include them in
~/.tkg/config.yaml, or other file passed to
--config option. For example:
From command line, set them as local environment variables by running
export (on Linux and macOS) or
SET (on Windows) on the command line. For example:
tkg create cluster to create a Tanzu Kubernetes cluster.
Determine the versioned Tanzu Kubernetes release (
tkr) for the cluster:
Obtain the list of Tanzu Kubernetes releases that are available in the Supervisor Cluster.
kubectl get tkr
-lflag to narrow down the
tkrlist by Kubernetes version, for example:
kubectl get tkr -l v1.17returns all 1.17 versions
kubectl get tkr -l v1.17.7=latestreturns the latest 1.17.7 version
tkg get kubernetesversions, which lists Kubernetes versions that ship with
tkgfor management clusters that are not vSphere 7 Supervisor Clusters.
From the command output, record the desired value listed under
VERSION, for example
Determine the namespace for the cluster.
kubectl get namespaces
Decide on the cluster plan:
prod, or a custom plan.
~/.tkg/providers/infrastructure-tkg-service-vspheredirectory. See Configure Tanzu Kubernetes Cluster Plans for details.
tkg create cluster with the namespace and
tkr values above to create a Tanzu Kubernetes cluster:
tkg create cluster my-vsphere7-cluster --plan=dev --namespace=NAMESPACE --kubernetes-version=TANZU-KUBERNETES-RELEASE
You can now use the Tanzu Kubernetes Grid CLI to deploy more Tanzu Kubernetes clusters to the vSphere with Tanzu Supervisor Cluster. You can also use the Tanzu Kubernetes Grid CLI to manage the lifecycles of clusters that are already running there. For information about how to manage the lifecycle of clusters, see the other topics in Deploying Tanzu Kubernetes Clusters and Managing their Lifecycle.