k8s常用命令速查
强制删除pod
kubectl delete pod <pod-name> --grace-period=0 --force
查看pod包含的容器
说明
一般情况下,一个pod可能包含多个容器
通过自定义列
$ export POD_NAME='xxx'
$ kubectl get pod ${POD_NAME} -o 'custom-columns=NAME:.metadata.name,CONTAINERS:.spec.containers[*].name'
NAME CONTAINERS
prometheus-prometheus-server-75c956b9cc-w8l4p prometheus-prometheus-server-configmap-reload,prometheus-prometheus-server
通过 jq
命令
$ export POD_NAME='xxx'
$ kubectl get pod ${POD_NAME} -o json | jq '.spec.containers[].name'
"prometheus-prometheus-server-configmap-reload"
"prometheus-prometheus-server"
存储类
设置默认存储类
export SC_NAME=openebs-hostpath
kubectl patch storageclass ${SC_NAME} -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
查看证书过期时间
命令
通过查看 kubeconfig
文件中 client-certificate-data
字段的值可以获取证书过期时间
echo xxx | base64 --decode | openssl x509 -noout -enddate
示例
输出的时间是UTC时间,换成北京时间需要+8
echo xxx | base64 --decode | openssl x509 -noout -enddate
Warning: Reading certificate from stdin since no -in or -new option is given
notAfter=Nov 1 02:23:23 2024 GMT
查看node节点上调度的pod
kubectl get pods --field-selector spec.nodeName=<Node_Name>
查看未达到期望副本数的资源
kubectl get deploy --all-namespaces -o custom-columns=NAMESPACE:.metadata.namespace,NAME:.metadata.name,READY:.status.readyReplicas,DESIRED:.spec.replicas --no-headers=true | awk '$3 != $4 '
手动设置资源的副本数
kubectl scale deployment <deployment-name> --replicas=<desired-replica-count> -n <namespace>
污点
查看所有节点的污点
kubectl get nodes -o custom-columns=NAME:.metadata.name,TAINTS:.spec.taints
查看某个节点的污点
kubectl describe node <node-name> | grep Taints