It’s been a while since I’ve done a ‘How To’ post, mainly because I’ve been spending my time talking to customers and less time hands on recently. An area I’ve always been intrigued about but never had chance to play with, is containerisation. Thankfully @VMware came to my, and hopefully a few others, with a great way to get started with Tanzu Community Edition, especially if like me, you don’t come from a developer background.

So, if you’re like me, and have spent most of your career designing, feeding and watering infrastructure to support app workloads, containisation will be a bit of a dirty word. Why you ask? Well firstly, its ‘new’ and secondly, its a word only uttered by devs and people in SRE jobs (site reliability engineers to you and me!). VMware, for a while have have a product called Tanzu which comes in a number of flavours, but essentially it allows you to run containers natively on vSphere, across all of the big cloud providers, and on prem. This isn’t a marketing post, so if you want more info, head over here.

So this post is how to get started with the Tanzu Community Edition (TCE) – a completely free, unlimited usage version of Tanzu that allows you to run an enterprise-class k8s (kubernetes) cluster for learning, testing, pre-prod, whatever you need it for. What’s great about it, aside from letting you build directly on vSphere or the cloud providers, is that TCE allows you to run it locally on your Windows or Mac device. So this is a very quick, how to on how to get started on MacOS.

Pre-reqs

If you haven’t already, get yourself homebrew – its a package manager for MacOS which makes installing things sooooo much easier. Run the following command in your terminal window

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Next up, you need to install Docker Desktop for MacOS. You can go to to Docker website for this install. Its a pretty simple install and when its installed, you’ll see a little icon on your menubar.

As default, Docker is set to use up to 2GB RAM, I recommend upping that to as much as you can to ensure that Tanzu runs ok. I have 16GB in my laptop, so I gave Docker 8GB of that. You can do this by going into Docker > Preferences > Resources.

Lastly, you need to ensure you have kubectl installed. If you’ve installed HomeBrew, this is as simple as running the below command:

brew install kubectl 

And to check its installed correctly:

kubectl version --client

Installing TCE

Still in terminal, run the below:

brew tap vmware-tanzu/tanzu
brew install tanzu-community-edition

Once the installation is complete, in the terminal you will see instructions to run the setup script. Essentially its running the configure-tce.sh shell script from the install location. You can see the location of mine in the screenshot below.


{HOMEBREW-INSTALL-LOCATION}/configure-tce.sh

Once that is complete, you should be good to go. Worth checking that docker is running by running the following command in terminal

docker --version

That should return you something like this:

If it doesn’t, then run docker from spotlight and go through the basic install (accepting EULA, etc) and the daemon should start.

Next up to is stand up a standalone cluster, again this is really simple – just run the below command

tanzu standalone-cluster create --ui

This allows you to create a local cluster using the UI. This will open a local webpage, where pretty much the only detail it asks for is the name of your cluster and you can click through the rest of the wizard. This takes a while, however you get a progress bar down the left hand side of the verbose log screen on the right

Be patient and you should find yourself with a platform ready to go in a short while

How can you check everything is working? Back into terminal.

kubectl config use-context <STANDALONE-CLUSTER-NAME>-admin@<STANDALONE-CLUSTER-NAME>

In my case, my cluster was called tce-sam, so I inputted kubectl config use-context tce-sam-admin@tce-sam

You can check the API node is running by typing

kubectl get nodes

You should then see something like this

Now all this is great, but there isn’t anything actually tangible other than a bit of command-line output. So lets deploy an app within our cluster – again VMware have you covered for this.

Within the same terminal, run:

kubectl run --restart=Never --image=gcr.io/kuar-demo/kuard-amd64:blue kuard

And then forward the ports to 8080

kubectl port-forward kuard 8080:8080

You’ll see the following output

If you then open up http://localhost:8080/ in your browser, you should be presented with the KUAR demo application

When you’re finished looking at this, press command+c to stop port forwarding, and then the following to delete the pod

kubectl delete pod kuard

Hopefully that was useful at getting you up and running, I certainly enjoyed the process and it costs nothing other than a bit of time. If you don’t have the time to follow the above, you can jump on the various workshops at the Tanzu Developer Center