paint-brush
How To Manage Local Kubernetes Testing with KIND Toolby@sudip-sengupta
270 reads

How To Manage Local Kubernetes Testing with KIND Tool

by Sudip SenguptaJuly 27th, 2020
Read on Terminal Reader
Read this story w/o Javascript
tldt arrow

Too Long; Didn't Read

KIND is a tool for running local Kubernetes clusters using Docker container "nodes" Sudip Sengupta is Solution Architect with more than 15 years of working experience, and is the founder of Javelynn.com. He likes sharing his knowledge by regularly writing for Hackernoon, DZone, Appfleet and many more. He hopes this makes your life a little easier and lets you play with Kubernets a little bit more :) In this article, we are going to attempt deploying Cassandra since the docs have a pretty decent walk-through on it.
featured image - How To Manage Local Kubernetes Testing with KIND Tool
Sudip Sengupta HackerNoon profile picture

If you've spent days (or even weeks?) trying to spin up a Kubernetes cluster for learning purposes or to test your application, then your worries are over. Spawned from a Kubernetes Special Interest Group, KIND is a tool that provisions a Kubernetes cluster running IN Docker.

From the docs:

kind is a tool for running local Kubernetes clusters using Docker container "nodes". kind is primarily designed for testing Kubernetes 1.11+, initially targeting the conformance tests.

Installing KIND

As it is built using go, you will need to make sure you have the latest version of 

golang
 installed on your machine.

According to the k8s docs

golang -v 1.11.5
 is preferred. To install kind, run these commands (it takes a while):

go get -u sigs.k8s.io/kind
kind create cluster

Then confirm kind cluster is available:

kind get clusters

Setting up kubectl

Also, install the latest 

kubernetes-cli
 using Homebrew or Chocolatey.
The latest Docker has Kubernetes feature but it may come with older 
kubectl
 . Check its version by running this command:

kubectl version

Make sure it shows 

GitVersion: "v1.14.1"
 or above.
If you find you are running 
kubectl
from Docker, try 
brew link
 or reorder path environment variable.

Once 

kubectl
 and kind are ready, open bash console and run these commands:

export KUBECONFIG=”$(kind get kubeconfig-path)”
kubectl cluster-info

If 

kind
 is properly set up, some information will be shown.
Now you are ready to proceed. Yay!

Deploying first application

What should we deploy on the cluster? We are going to attempt deploying Cassandra since the docs have a pretty decent walk-through on it.

First of all, download 

cassandra-service.yaml
 and 
cassandra-statefulset.yaml
 for later. Then create kustomization.yaml by running two cat commands.

Once those 

yaml
 files are prepared, layout them as following:

k8s-wp/
  kustomization.yaml
  mysql-deployment.yaml
  wordpress-deployment.yaml

Then apply them to your cluster:

cd k8s-wp
kubectl apply -k ./

Validating (optional)

Get the Cassandra Service.

kubectl get svc cassandra

The response is:

NAME        TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)    AGE
cassandra   ClusterIP   None         <none>        9042/TCP   45s

Note that Service creation might have failed if anything else is returned. Read Debug Services for common issues.

Finishing up

That's really all you need to know to get started with KIND, I hope this makes your life a little easier and lets you play with Kubernetes a little bit more :)

About the author - Sudip is a Solution Architect with more than 15 years of working experience, and is the founder of Javelynn. He likes sharing his knowledge by regularly writing for HackernoonDZoneAppfleet and many more. And while he is not doing that, he must be fishing or playing chess.

Previously posted at https://appfleet.com/.