/ Home

Kubernetes Commands

Note: All kubernetes commands come here

https://kubernetes.io/docs/tasks/tools/install-kubectl/#install-kubectl-on-macos

Kubectl version

kubectl version

Client Version: version.Info{Major:"1", Minor:"16", GitVersion:"v1.16.2", GitCommit:"c97fe5036ef3df2967d086711e6c0c405941e14b", GitTreeState:"clean", BuildDate:"2019-10-15T23:43:08Z", GoVersion:"go1.12.10", Compiler:"gc", Platform:"darwin/amd64"}
    Server Version: version.Info{Major:"1", Minor:"15", GitVersion:"v1.15.0", GitCommit:"e8462b5b5dc2584fdcd18e6bcfe9f1e4d970a529", GitTreeState:"clean", BuildDate:"2019-06-19T16:32:14Z", GoVersion:"go1.12.5", Compiler:"gc", Platform:"linux/amd64"}

Basic Minikube commands

minikube start
kubectl run hello-minikube --image=gcr.io/google_containers/echoserver:1.4 --port=8080
kubectl expose deployment hello-minikube --type=NodePort
kubectl get pod
curl $(minikube service hello-minikube --url)
kubectl delete deployment hello-minimube
minikube stop
minikube stop && minikube delete
minikube ip
minikube dashboard
minikube dashboard --url=true
kubectl proxy

Get nodes

kubectl get nodes

Don’t show miniukbe notifications

minikube config set WantUpdateNotification false

Kubeclt service types

ClusterIP
NodePort
LoadBalancer
ExternalName

https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types

Delete all pods

kubectl delete --all pods --namespace=default

Delete all deployments

kubectl delete --all deployments --namespace=default

Delete all services

kubectl delete --all services --namespace=default

Cleanup

kubectl -n default delete services reverser-be reverser-fe

kubectl -n default delete deployment flask-app
kubectl -n default delete deployment reverser-be reverser-fe

Install Minikube


https://kubernetes.io/docs/tasks/tools/install-minikube/

Kube config location

/Users/xyzabc/.kube
config_oct14  - OLD and Localhost
config - AWS Remote

Delete pods

kubectl delete pods <pod>

https://kubernetes.io/docs/tasks/run-application/force-delete-stateful-set-pod/

Simple App in Kubectl

kubectl apply -f deployment.yaml 
deployment.apps/nginx-deployment
kubectl describe deployment nginx-deployment
kubectl get pods
kubectl get pods -l app=nginx
kubectl describe pod nginx-deployment-5754944d6c-5lhbm

kubectl get deployments

kubectl expose deployment nginx-deployment --type=NodePort
curl $(minikube service nginx-deployment --url)
    http://192.168.99.100:31775

Simple Flask app

Image: https://hub.docker.com/r/tiangolo/uwsgi-nginx-flask/
docker pull tiangolo/uwsgi-nginx-flask


kubectl apply -f flask-deployment.yaml 

# if any updates, change the yaml file and do
kubectl apply -f flask-deployment.yaml 

# verify inside pod
kubectl exec -it flask-sample-deployment-6bf5f67f9-w8rwh bash
curl http://localhost:80

# get from deployments
kubectl get deployments
    flask-sample-deployment   2/2     2            2           6m13s

Expose service

kubectl expose deployment flask-sample-deployment --type=NodePort

verify services

kubectl get svc
flask-sample-deployment   NodePort    10.98.110.45     <none>        5002:31561/TCP   19s

get url

minikube service flask-sample-deployment --url
http://192.168.99.100:31561

Check logs

kubectl logs flask-sample-deployment-5fb467f9d-4ctf5

Delete deployment and services

kubectl get all
    PODS:
        pod/flask-sample-deployment-5fb467f9d-kj4gh   1/1     Running            0          2m8s
        pod/flask-sample-deployment-6bf5f67f9-q6g6w   1/1     Running            0          2m9s
    Services:
        service/flask-sample-deployment   NodePort    10.98.110.45     <none>        5002:31561/TCP   7m5s
    Deployments:
        deployment.apps/flask-sample-deployment   1/2     1            1           13m

Delete both deployment and service

kubectl delete deployment.apps/flask-sample-deployment service/flask-sample-deployment

Kube pod details

kubectl get po

kubectl logs bapi-be-6db7bf6f95-bshhk

kubectl get services -o wide

    more:
    https://coreos.com/tectonic/docs/latest/tutorials/sandbox/deleting-deployment.html
kubect exec -it nginx-deployment-5754944d6c-mkpt8 bash

more: https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands

https://kubernetes.io/docs/reference/kubectl/cheatsheet/

https://medium.com/@wisegain/minikube-cheat-sheet-a273385e66c9

Minikube:

brew install minikube

minikube start

minikube start
minikube dashboard

kubectl create deployment hello-node --image=gcr.io/hello-minikube-zero-install/hello-node
kubectl get deployments
kubectl get pods
kubectl get events
kubectl config view

set minikube context

kubectl config use-context minikube

kubectl expose deployment hello-node --type=LoadBalancer --port=8080
kubectl get services
minikube addons list
minikube addons enable heapster
kubectl get pod,svc -n kube-system

pods, deployments, services, ingress, nodes

kubectl get pods
kubectl get deployment
kubectl get services
kubectl get ingress
kubectl get nodes

how to delete

kubectl delete service hello-node
kubectl delete deployment hello-node

stop, delete

minikube stop
minikube delete
kubectl cluster-info

kubectl get namespace

NAME          STATUS   AGE
default       Active   8m
kube-public   Active   8m
kube-system   Active   8m
kubectl create namespace rjdev
NAME          STATUS   AGE
default       Active   10m
kube-public   Active   10m
kube-system   Active   10m
rjdev         Active   47s

kube config location

~/.kube/config

kubectl config get-clusters

kubectl config
current-context
delete-cluster
delete-context
get-clusters
rename-context
set
set-cluster
set-context
set-credentials
unset
use-context
view

kubectl config view

kubectl config get-contexts
    CURRENT   NAME       CLUSTER    AUTHINFO   NAMESPACE
    *         minikube   minikube   minikube
kubectl config current-context
minikube
kubectl config get-clusters
    NAME
    minikube
kubectl config --help
kubectl get namespace

NAME          STATUS   AGE
default       Active   40m
kube-public   Active   40m
kube-system   Active   40m
rjdev         Active   31m
kubectl -n dev get pods
    get pods in the dev namespace
kubectl get pods
    get pods in the current (default) namespace
kubectl config current-context
kubectl config set-context $(kubectl config current-context)
kubectl get pods
kubectl get deployments
kubectl get services
kubectl get ingress
kubectl get nodes
minikube --help
minikube ip
    192.168.99.101
minikube ssh-key
    /Users/xyzabc/.minikube/machines/minikube/id_rsa
minikube ssh
minikube start --kubernetes-version v1.7.0
minikube start --kubernetes-version v1.7.0 \
 --extra-config=proxy.IPTables.SyncPeriod.Duration=5000000000 \
 --extra-config=proxy.IPTables.MinSyncPeriod.Duration=3000000000 \
minikube addons list

#

eval $(minikube docker-env)
    enables us to interact and build against docker daemon inside the minikube VM.
kubectl get deployments
kubectl get pods
kubectl get events
kubectl config view

https://kubernetes.io/docs/tutorials/hello-minikube/

debugging:

kubectl get event -n reverser-dev

misc commands

kubectl get svc --all-namespaces -o wide

kubectl get nodes -o wide

kubectl get nodes --show-labels

aws eks list-nodegroups --cluster-name rj-test-cluster

kubectl -n reverser-dev get nodes

eksctl get nodegroups --cluster rj-test-cluster

eksctl scale nodegroup --cluster=rj-test-cluster --nodes=2 --name=rj-test-ng

eksctl drain nodegroup --cluster=rj-test-cluster  --name=rj-test-ng

kubectl get all

cat ~/.kube/config