Tuesday, July 6, 2021

Advance Kubernetes Command As a Pro

1. Copy Data From a Pod to Local Machine: 

kubectl cp <some-namespace>/<some-pod>:/tmp/foo /tmp/bar

and just vice versa i.e. from local machine to POD

 kubectl cp /tmp/bar <some-namespace>/<some-pod>:/tmp/foo

2.  Display Pod Details Only three Columns (NodeName, POD name, Name space)   

kubectl get pods --all-namespaces --output 'jsonpath={range .items[*]}{.spec.nodeName}{" "}{.metadata.namespace}{"\t "}{.metadata.name}{"\n"}{end}' 

3.  Display Pod Details Only three Columns (NodeName, POD name, Status)

kubectl get pod -o=custom -columns=NAME:.metadata.name,STATUS:.status.phase,NODE:.spec.nodeName --all-namespaces

4. Display Pod Details Only two Columns (NodeName, POD name)

        kubectl get pod -o=custom-columns=NODE:.spec.nodeName,NAME:.metadata.name --all-namespaces

5. List of PODs running on selected NODE:

kubectl get pods --all-namespaces -o wide --field-selector spec.nodeName=<node-name>

6.  View Logs of Container if  more than one container in a pod: 

kubectl logs -f <pod-name> <container-name> -n kube-system

7. To Drain a particular node :

kubectl  drain <node-name> --kubeconfig=<config-name> --delete-local-data=true --force=true --grace-period=-1 --ignore-daemonsets=true --timeout=120s

8. cretae a yaml file in imerative manner with dry run: 

kubectl run redis --image=redis123 --dry-run=client --restrat=Never -o yaml > test.yaml 

9. Take Postgres DataBase Backup From POD:

          echo -n "PASSWORD" | docker exec -i <container_id> pg_dump -U user-name -d db-name  > /home/db_dump_`date +%d-%m-%Y"_"%H_%M_%S`.sql

10. Take Postgres MySql Backup (Dump) From POD:

          echo -n "PASSWORD" | docker exec -i <container_id> mysqldump -u user-name -d db-name -p > /home/db_dump_`date +%d-%m-%Y"_"%H_%M_%S`.sql

11. Enjoy  

 

Advance Kubernetes Command As a Pro

1. Copy Data From a Pod to Local Machine:   kubectl cp <some-namespace>/<some-pod>:/tmp/foo /tmp/bar and just vice versa i.e....