My eleven year old daughter recently asked me ‘the question’. You know the one…
“Hey dadda, what’s Kubernetes?”
How do you explain kubernetes to an eleven year old?! Check out this video to learn how. Brilliant.
I am not a Kubernetes expert. I am learning, probably just like you are. Creating resources, tearing down resources, building them again, kubectl-ing, scratching my head, scratching my head some more, rinse and repeat. I can understand how powerful it is. I can also understand how complex it is.
As an engineer, I am constantly trying to distill complex things down to their simplest form. I figure out how to do something by reading documentation, blogs, dissecting code, and a humorous amount of trial and error. If I don’t distill this information and document it, I’ll have to do it all over again in a few months as my memory is just awful. I do enjoy this process, and I hope these types of posts can help you get to where you are going a tiny bit faster.
If you want to deploy or demonstrate dymamically provisioned, persistent storage without being a Kubernetes expert, this is the post for you.
Let’s start with some basic definitions:
- Kubernetes; container orchestration system
- Azure Kubernetes Service (AKS); a fully managed Kubernetes cluster service provided by Microsoft
- NetApp Trident; dynamic, persistent, storage orchestrator for Kubernetes (or Docker)
- Azure NetApp Files; lightning fast, enterprise grade, file storage service (NFS/SMB) provided by Microsoft
At the end of this tutorial you will have deployed AKS, installed NetApp Trident, configured a Trident backend to dynamically provision Azure NetApp Files volumes, and have a running nginx deployment being served by Azure NetApp Files storage.
Before we dive in… You will need a Linux operating system to interact with Trident (tridentctl). I am using an Ubuntu VM running in Azure. You could use the Windows Subsystem for Linux or any Linux distro on the supported host operating systems list found here.
Ok, let’s dive in!
Deploy your Kubernetes cluster using the Azure Kubernetes Service (AKS)
- From within the Azure portal, navigate to ‘Kubernetes services’ and click the ‘+Add’ button at the top, choose ‘Add Kubernetes cluster’.
- You can accept the default settings for everything. You will need to provide the resource group and give your cluster a name. Feel free to reduce the number of nodes and node size to save yourself some money. A single node is enough for this demo. AKS will create all of the required Azure networking components for you.
Create a delegated subnet for Azure NetApp Files
- Navigate to ‘Virtual networks’ within the Azure portal. Find your newly created virtual network. It should have a prefix similiar to ‘aks-vnet’. Click on the name of the VNet.
- Click on ‘Subnets’ and select ‘+Subnet’ from the top toolbar.
- Give your subnet a name like ‘ANF.sn’ and under the ‘Subnet delegation’ heading, select ‘Microsoft.Netapp/volumes’. Do not change anything else. Click ‘OK’.