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 PODkubectl 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
Originally published at https://devops-with-linux.blogspot.com.