This tutorial can be followed using either Google Cloud Platform or Microsoft Azure. Any sections where the commands to be entered are different based on the selected platform will either be captioned ```gcloud``` or ```az```, depending on the platform that the command applies to.
This tutorial leverages the [Google Cloud Platform](https://cloud.google.com/) to streamline provisioning of the compute infrastructure required to bootstrap a Kubernetes cluster from the ground up. [Sign up](https://cloud.google.com/free/) for $300 in free credits.
[Estimated cost](https://cloud.google.com/products/calculator#id=873932bc-0840-4176-b0fa-a8cfd4ca61ae) to run this tutorial: $0.23 per hour ($5.50 per day).
As an alternative, MS Azure can be used to provision resources to complete the tutorial. [Estimated cost](https://azure.com/e/caa9df7c786c4f93bbd5566e02bd69b5) is roughly $11 a day
## Azure CLI
### Installation
Documentation on installing the azure CLI (```az```) is located [here](https://learn.microsoft.com/en-us/cli/azure/install-azure-cli)
### az Setup
If this is your first time running the ```az``` tool, you will need to login. The easiest way to do this is via ```az login```, which will bring up a web browser where you will fill out your username/password. Alternative methods for logging in are detailed [here](https://learn.microsoft.com/en-us/cli/azure/authenticate-azure-cli)
Set your default location:
```az config set defaults.location=eastus```
Create a resource group to hold all VMs / VPCs / etc that will be created:
```az group create --resource-group k8s-the-hard-way```
Set the created resource group as the default:
```az config set defaults.group=k8s-the-hard-way```
Set the default output format to Table (easier to read than JSON, see [here](https://learn.microsoft.com/en-us/cli/azure/format-output-azure-cli) for other output formats available)
[tmux](https://github.com/tmux/tmux/wiki) can be used to run commands on multiple compute instances at the same time. Labs in this tutorial may require running the same commands across multiple compute instances, in those cases consider using tmux and splitting a window into multiple panes with synchronize-panes enabled to speed up the provisioning process.
> Enable synchronize-panes by pressing `ctrl+b` followed by `shift+:`. Next type `set synchronize-panes on` at the prompt. To disable synchronization: `set synchronize-panes off`.