Cloud Computing‎ > ‎Kubernetes‎ > ‎

8. Quick Commands

Download Kubectl




Or use a packaged version for your OS: see


Project URL:

Latest Release and download instructions:


Minikube on windows:
Download the latest minikube-version.exe

Rename the file to minikube.exe and put it in C:\minikube

Open a cmd (search for the app cmd or powershell)

Run: cd C:\minikube and enter minikube start

Test your cluster commands

Make sure your cluster is running, you can check with minikube status.

If your cluster is not running, enter minikube start first.

kubectl run hello-minikube --port=8080
kubectl expose deployment hello-minikube --type=NodePort

minikube service hello-minikube --url

<open a browser and go to that url>


Project URL

Free DNS Service

Sign up at

Choose for subdomain hosting

Enter the AWS nameservers given to you in route53 as nameservers for the subdomain provides a free .tk domain name you can use and you can point it to the amazon AWS nameservers often has promotions for tld’s like .co for just a couple of bucks

Cluster Commands

kops create cluster --state=s3://kops-state-b429b --zones=eu-west-1a --node-count=2 --node-size=t2.micro --master-size=t2.micro

kops update cluster --yes --state=s3://kops-state-b429b

kops delete cluster --name --state=s3://kops-state-b429b

kops delete cluster --name --state=s3://kops-state-b429b --yes

Kubernetes from scratch
You can setup your cluster manually from scratch

If you’re planning to deploy on AWS / Google / Azure, use the tools that are fit for these platforms

If you have an unsupported cloud platform, and you still want Kubernetes, you can install it manually

CoreOS + Kubernetes: ###a href="">


You can download Docker Engine for:




DevOps box



DevOps box:

Launch commands (in terminal / cmd / powershell):

cd devops-box/

vagrant up

Launch commands for a plain ubuntu box:

mkdir ubuntu

vagrant init ubuntu/xenial64

vagrant up

Cheatsheet: Docker commands

Build image: docker build .

Build & Tag: docker build -t wardviaene/k8s-demo:latest .

Tag image: docker tag imageid wardviaene/k8s-demo

Push image: docker push wardviaene/k8s-demo

List images: docker images

List all containers: docker ps -a

Cheatsheet: Kubernetes commands

kubectl get pod: Get information about all running pods

kubectl describe pod <pod>: Describe one pod

kubectl expose pod <pod> --port=444 --name=frontend: Expose the port of a pod (creates a new service)

kubectl port-forward <pod> 8080: Port forward the exposed pod port to your local machine

kubectl attach <podname> -i: Attach to the pod

kubectl exec <pod> -- command: Execute a command on the pod

kubectl label pods <pod> mylabel=awesome: Add a new label to a pod

kubectl run -i --tty busybox --image=busybox --restart=Never -- sh: Run a shell in a pod - very useful for debugging

kubectl get deployments: Get information on current deployments

kubectl get rs: Get information about the replica sets

kubectl get pods --show-labels: get pods, and also show labels attached to those pods

kubectl rollout status deployment/helloworld-deployment: Get deployment status

kubectl set image deployment/helloworld-deployment k8s-demo=k8s-demo:2: Run k8s-demo with the image label version 2

kubectl edit deployment/helloworld-deployment: Edit the deployment object

kubectl rollout status deployment/helloworld-deployment: Get the status of the rollout

kubectl rollout history deployment/helloworld-deployment: Get the rollout history

kubectl rollout undo deployment/helloworld-deployment: Rollback to previous version

kubectl rollout undo deployment/helloworld-deployment --to-revision=n: Rollback to any version version

AWS Commands

aws ec2 create-volume --size 10 --region us-east-1 --availability-zone us-east-1a --volume-type gp2

Creating a new key for a new user: openssl genrsa -out myuser.pem 2048

Creating a certificate request: openssl req -new -key myuser.pem -out myuser-csr.pem -subj "/CN=myuser/O=myteam/"

Creating a certificate: openssl x509 -req -in myuser-csr.pem -CA /path/to/kubernetes/ca.crt -CAkey /path/to/kubernetes/ca.key -CAcreateserial -out myuser.crt -days 10000

Abbreviations used

Resource type: Abbreviated alias

configmaps: cm

customresourcedefinition: crd

daemonsets: ds

deployments deploy

horizontalpodautoscalers: hpa

ingresses ing

limitranges limits

namespaces: ns

nodes: no

persistentvolumeclaims: pvc

persistentvolumes: pv

pods: po

replicasets: rs

replicationcontrollers: rc

resourcequotas: quota

serviceaccounts: sa

services: svc

Quick Commands

$ kubectl version
The client version is the kubectl version; the server version is the Kubernetes version installed on the master. 

$ kubectl cluster-info
Kubernetes master and DNS info

$ kubectl get nodes
View Cluster nodes

$ kubectl run hello-kubernetes --port 8080
Deploy App

$ kubectl expose deployment hello-kubernetes --type=NodePort
Expose App

$ kubectl get service hello-kubernetes
Get service details

$ kubectl get deployments
List deployments

$ kubectl get pods
List pods

$ kubectl describe pods
Describe pods

$ kubectl logs $POD_NAME
View container logs

Troubleshooting with kubectl
kubectl get - list resources
kubectl describe - show detailed information about a resource
kubectl logs - print the logs from a container in a pod
kubectl exec - execute a command on a container in a pod