kubectl command

common

version

1
2
kubectl version
kubectl api-versions

health

1
2
3
4
5
6
7
8
9
10
11
# check kubernetes inner ip 
kubectl get svc kubernetes -n default

# check api server
kubectl get componentstatuses

# check crd
kubectl get crd | grep cert-manager

# check all pods
kubectl get pods -A

label

1
2
# check node label
kubectl get nodes --show-labels

namespace

1
kubectl get namespaces

pod

1
2
3
4
5
# list namespace's pod
kubectl get pod -n {namespace}

# force delete pod
kubectl delete pod {pod_name} --grace-period=0 --force -n {namespace}

expose yaml

1
kubectl get pod <pod-name> -n <namespace> -o yaml > pod-config.yaml

daemonsets

1
kubectl get daemonsets --all-namespaces

log

​ • -c : Specify which container to retrieve logs from.

​ • -f: Stream the logs in real-time.

​ • –previous: Show logs from the last terminated container.

​ • –since=: Return logs for the last period (e.g., 1h, 30m).

​ • –tail=: Limit the number of log lines returned.

​ • –all-containers=true: Get logs from all containers in the pod.

1
2
3
4
5
# pod
kubectl logs -f {podId} -n {namespace}

# pod's container
kubectl logs <pod-name> -c <container-name> -n <namespace>

config info

1
kubectl get pod 容器id --kubeconfig=/path/to/configfile -o yaml > env-vq48.yaml
1
kubectl get -o yaml 这样的参数,会将指定的 Pod API 对象以 YAML 的方式展示出来。

exec

without kubeconfig

1
2
# kubectl exec -it {pod_name} -- /bin/bash
kubectl exec -it {pod_id} -n {namespace} -c {container_id} -- sh

describe

1
kubectl describe pod {podName}

cp

1
kubectl cp 命令空间/容器id:/path/to/source_file ./path/to/local_file

storage

CSIDriver

1
kubectl get csidrivers

storageclass

1
kubectl get storageclass

pvc

1
kubectl get pvc

pv

1
2
3
4
5
6
7
8
# list pv
kubectl get pv

# delete pv
## step1: change stragety
kubectl patch pv PV_NAME -p '{"spec":{"persistentVolumeReclaimPolicy":"Delete"}}'
## step2: delete
kubectl delete pv PV_NAME