VMware vSphere with Tanzu provides a platform for running Kubernetes workloads natively on VMware ESXi.
In vSphere with Tanzu, the workload is a deployed application that consists of containers running inside vSphere Pods, VMs, or both. It is an application that runs inside a Tanzu Kubernetes cluster that is deployed by Tanzu Kubernetes Grid service.
The supervisor cluster provides the management plane on which Tanzu Kubernetes clusters are built. The Tanzu Kubernetes Grid (TKG) service is a controller manager that includes a set of controllers which is a subset of the supervisor cluster. TKG service helps in provisioning a Tanzu Kubernetes cluster.
When Tanzu Kubernetes clusters are provisioned, a resource pool and VM folder are created in a supervisor namespace. The resource quotas and storage policy are applied to a namespace and inherited by the deployed Tanzu Kubernetes cluster. The Tanzu Kubernetes cluster control plane and worker node VMs are placed within the resource pool and VM folder.
The Tanzu Kubernetes cluster is a distribution of the open-source Kubernetes container platform that is built, signed, and supported by VMware. Tanzu Kubernetes clusters are built on top of the supervisor cluster. The cluster is defined in the supervisor namespace using custom resource. It uses the open-source Photon OS from VMware and is integrated with underlying vSphere infrastructure including storage, network, and authentication.
A vSphere pod is a VM with a small footprint that runs one or more containers. It is similar to a Kubernetes pod. Each pod is sized for the workload that has explicit resource reservations for that workload. It is allocated a specific amount of storage, memory, and CPUs that are required for the workload to run.
Persistent Volume is a storage defined for the cluster that is provisioned by an administrator or dynamically provisioned using Storage Classes (SCs). It is a resource in the cluster similar to a node. PVs are volume plug-ins like volumes but have a lifecycle independent of any individual pod that uses the PV. It captures the details of the implementation of the storage that is NFS, iSCSI, or a cloud-provider-specific storage system.
A Persistent Volume Claim (PVC) is a request for storage by a user. It is like a pod. Pods consume node resources. Similarly, PVCs consume PV resources. Pods can request specific levels of resources (CPUs and memory).
A Storage Class is described as the type of storage that is provisioned and allowed ranges for size and IOPS. When a user creates a PVC, the storage class is specified with size in GB and number of IOPS. A storage class is used to abstract the underlying storage platform.
A resource in a Kubernetes environment is an endpoint for API that stores a collection of API objects of a certain kind. A Custom Resource (CR) is an extension of the Kubernetes API that is not necessarily available in a default Kubernetes installation. It represents a customization of a particular Kubernetes installation.