Setting up a Kubernetes Cluster with Linode (linode)
a Linode account
linode-cli and linode credentials configured
kubectl
LINUX/MAC is the preferred method of setup.
Windows should choose either:
Deploy a THORNode from a Linux VPS.
To install the linode-cli (Linode CLI), follow .
You need to have pip (python) on your system.
Create a Linode API token for your account with read and write access from your . The token string is only displayed once, so save it in a safe place.
Use the API token to grant linode-cli access to your Linode account. Pass in the token string when prompted by linode-cli.
To install the kubectl (Kubernetes CLI), follow or choose a package manager based on your operating system.
MacOS:
Use the package manager to install kubectl.
Windows:
Use the package manager to install kubectl.
To install the wget, follow or choose a package manager based on your operating system.
MacOS:
Use the package manager to install wget.
Windows:
Use the package manager to install wget.
Use the commands below to deploy a Kubernetes cluster.
You can run the make command that automates those command for you like this:
Or manually run each commands:
Now that you've provisioned your Kubernetes cluster, you need to configure kubectl.
To configure authentication from the command line, use the following command, substituting the ID of your cluster.
Note: If the above
linode-clicommand is broken you can download the file from the web for the respective cluster.
This replaces the existing configuration at ~/.kube/config.
Once done, you can check your cluster is responding correctly by running the command:
To destroy and remove previously created resources, you can run the command below.
Or run the commands manually:
Use Windows Subsystem for Linux - https://docs.microsoft.com/en-us/windows/wsl/about****
pip install linode-cli --upgradelinode-clibrew install kubernetes-clichoco install kubernetes-clibrew install wgetchoco install wgetmake linodecd linode/
terraform init
terraform plan # to see the plan
terraform apply# Store it - method #1
jq -r ".resources[].instances[].attributes.kubeconfig" linode/terraform.tfstate | base64 -D > ~/.kube/config-linode
# Store it - method #2
linode-cli lke kubeconfig-view <use_your_cluster_id> > ~/.kube/config-linode
# Merge it and set current context
KUBECONFIG=~/.kube/config:~/.kube/config-linode kubectl config view --flatten > ~/.kube/tmpcfg && mv -f ~/.kube/tmpcfg ~/.kube/config && kubectl config use-context $(kubectl config current-context --kubeconfig=~/.kube/config-linode)
# Or just view it - method #1
jq -r ".resources[].instances[].attributes.kubeconfig" linode/terraform.tfstate | base64 -D
# Or just view it - method #2
linode-cli lke kubeconfig-view <use_your_cluster_id>kubectl version
kubectl get nodesmake destroy-linodecd linode/
terraform destroy