
Tanzu Application Platform (TAP) is a packaged set of components that helps developers and operators build, deploy, and manage apps on Kubernetes. It is currently in beta ( use for testing only).
Note: Please go through VMware official documentation for latest updates.
Overview
Prerequisites
- Tanzu Network account to download Tanzu Application Platform packages
- A container image registry, such as Harbor or Docker Hub or google container registry with at least 20 GB of available storage for application images, base images, and runtime dependencies. In this demo, I will be using gcr.io for storing images.
- Network access to https://registry.tanzu.vmware.com
- Git infrastructure access like GitHub, GitLab, Azure DevOps
- Kubernetes cluster v1.19 or later running on any of the environments including AKS, EKS, GKE, Kind, MiniKube, TKG 1.4, TCE with at least 50 GB disk per node. In this demo, we will deploy TAP on Amazon EKS
Note: Refer to doc for more details.
Create EKS Cluster
In this section, I will be taking you through the steps to create a Kubernetes cluster on Amazon EKS.
Create Cluster Service Role
- Login to AWS management console > IAM > Access Management > Roles > Create Role
- Select AWS Service
- Under select a service to view its use cases , select EKS
- Select your use case > EKS Cluster and click on Next Permissions
- Leave AmazonEKSClusterPolicy to default and click on Next: Tags
- Add Tag (Optional) and click on Next: Review
- Give a name and click on Create role.
Create EKS Cluster
- Login to AWS management console > Elastic Kubernetes Service > Add Cluster > Create
- Click Next
- Under Specify networking section, leave the values to default and click Next
- Under Configure logging section, leave the values to default and click Next
- Click Create
Cluster creation should take a while to complete, upon successful completion, status should show Active
Create Node IAM Role
- Login to AWS management console > IAM > Access Management > Roles > Create Role
- Select AWS Service > EC2 and click on Next:Permissions
- Under Attach Permissions, select below policies and click on Next:Tags
-
-
- AmazonEKSWorkerNodePolicy
- AmazonEC2ContainerRegistryReadOnly
- AmazonEKS_CNI_Policy
-
-
- Tags (Optional) and click Next: Review
- Give a Name and Create role.
Create Node group in EKS cluster
- Click on newly created EKS cluster > Configuration > Compute > Add Node group
- Name: Give a Name
- Node IAM Role: Select the node role created in previous step
Note: There are various fields which can be used like launch templates, Labels, Taints etc .. In this demo, I sticked to default values.
- Next
- Node group compute configuration: To deploy all TAP packages, your cluster must have at least 8 GB of RAM across all nodes available, At least 8 CPUs for i9 or equivalent or 12 CPUs for i7. So, for this EKS cluster I preferred to choose t3.xlarge and 30 GiB Disk size.
- Node Group scaling configuration: I preferred to choose min and max size as 2, you can certainly have more nodes based on requirement.
- Node Group update configuration: Leave as default and click Next
- Node Group network configuration: Leave as default (To be able to take ssh to worker nodes, enable the option Configure SSH access to nodes) and click Next
- Review and Create
Node creation takes 5-10 mins based on the region selected, upon successful completion, status should turn Active.
In this demo, I am using a ubuntu instance deployed on AWS as jumpbox to perform TAP install, you can also follow the same or use your local workstation to connect EKS cluster and install TAP.
Install Tanzu CLI, plugins and kubectl
Install Kubectl
Install AWS CLI
Install Tanzu CLI
Sign to Tanzu Network and accept below EULAs:
Sign in to Tanzu Network , download tanzu-cluster-essentials-linux-amd64-1.0.0.tgz (for Linux) into local machine and copy to destination jumpbox using scp or download directly using pivnet cli.
Sign in to Tanzu Network , click on folder tanzu-cli-0.12.0 and download tanzu-framework-bundle-linux (for Linux) into local machine and copy to destination jumpbox using scp or download directly using pivnet cli.
Install Docker
- Refer to Docker page to get the detailed steps of Installing Docker.
Image Repo (GCR) – Optional
Note: If you have Docker hub pro account, please use it as it do not have any pull limits. Otherwise, use gcr.io which I will cover in this demo or harbor.
- Login to Google cloud console > IAM & Admin > Service Accounts > Create Service Account
- Give a name and click on Create and Continue
- Add below given roles and Done
- Click on newly created service account > Keys > Create new key
- Select Key type as JSON and Create – this downloads a json file, keep it safe and secured.
Test Access
- Copy the downloaded json key into jumpbox or any machine where you are planning execute Tanzu commands for TAP install.
Now we are all set to proceed with TAP Install on EKS cluster using gcr image repo.