Kubernetes 100个常用命令!( 三 )

  • 1. 列出命名空间中的服务帐户:kubectl get serviceaccounts -n <namespace>
  • 2. 查看一个服务帐户详情:kubectl describe serviceaccount <serviceaccount-name> -n <namespace>
  • 清空节点和解除封锁:
    1. 1. 清空节点以进行维护:kubectl drain <node-name> --ignore-daemonsets
    2. 2. 解除对节点的封锁:kubectl uncordon <node-name>
    资源清理:
    1. 1. 强制删除 pod(不推荐):kubectl delete pod <pod-name> -n <namespace> --grace-period=0 --force
    Pod 亲和性和反亲和性:
    1. 1. 列出 pod 的 pod 亲和性规则:kubectl get pod <pod-name> -n <namespace> -o=jsonpath='{.spec.affinity}'
    2. 2. 列出 pod 的 pod 反亲和性规则:kubectl get pod <pod-name> -n <namespace> -o=jsonpath='{.spec.affinity.podAntiAffinity}'
    Pod 安全策略 (PSP):
    1. 1. 列出所有 Pod 安全策略(如果启用):kubectl get psp
    事件:
    1. 1. 查看最近的集群事件:kubectl get events --sort-by=.metadata.creationTimestamp
    2. 2. 按特定命名空间过滤事件:kubectl get events -n <namespace>
    节点故障排除:
    1. 1. 检查节点情况:kubectl describe node <node-name> | grep Conditions -A5
    2. 2. 列出节点容量和可分配资源:kubectl describe node <node-name> | grep -E "Capacity|Allocatable"
    临时容器(Kubernetes 1.18+):
    1. 1. 运行临时调试容器:kubectl debug -it <pod-name> -n <namespace> --image=<debug-image> -- /bin/sh
    资源指标(需要指标服务器):
    1. 1. 获取 Pod 的 CPU 和内存使用情况:kubectl top pod -n <namespace>
    kuelet诊断:
    1. 1. 查看节点上的kubelet日志:kubectl logs -n kube-system kubelet-<node-name>
    使用Telepresence 进行高级调试:
    1. 1. 使用 Telepresence 调试 pod:telepresence --namespace <namespace> --swap-deployment <pod-name>
    Kubeconfig 和上下文:
    1. 1. 列出可用的上下文:kubectl config get-contexts
    2. 2. 切换到不同的上下文:kubectl config use-context <context-name>
    Pod 安全标准(PodSecurity 准入控制器):
    1. 1. 列出 PodSecurityPolicy (PSP) 违规行为:kubectl get psp -A | grep -vE 'NAME|REVIEWED'
    Pod 中断预算 (PDB) 诊断:
    1. 1. 列出命名空间中的所有 PDB:kubectl get pdb -n <namespace>
    2. 2. 查看一个PDB详情:kubectl describe pdb <pdb-name> -n <namespace>
    资源锁诊断(如果使用资源锁):
    1. 1. 列出命名空间中的资源锁:kubectl get resourcelocks -n <namespace>
    服务端点和 DNS:
    1. 1. 列出服务的服务端点:kubectl get endpoints <service-name> -n <namespace>
    2. 2. 检查 Pod 中的 DNS 配置:kubectl exec -it <pod-name> -n <namespace> -- cat /etc/resolv.conf
    自定义指标(Prometheus、Grafana):
    1. 1. 查询Prometheus指标:用于kubectl port-forward访问Prometheus和Grafana服务来查询自定义指标 。
    Pod 优先级和抢占:
    1. 1. 列出优先级:kubectl get priorityclasses
    Pod 开销(Kubernetes 1.18+):
    1. 1. 列出 pod 中的开销:kubectl get pod <pod-name> -n <namespace> -o=jsonpath='{.spec.overhead}'
    存储卷快照诊断(如果使用存储卷快照):
    1. 1. 列出存储卷快照:kubectl get volumesnapshot -n <namespace>
    2. 2. 查看存储卷快照详情:kubectl describe volumesnapshot <snapshot-name> -n <namespace>
    资源反序列化诊断:
    1. 1. 反序列化并打印 Kubernetes 资源:kubectl get <resource-type> <resource-name> -n <namespace> -o=json
    节点污点:
    1. 1. 列出节点污点:kubectl describe node <node-name> | grep Taints
    更改和验证 Webhook 配置:
    1. 1. 列出变异 webhook 配置:kubectl get mutatingwebhookconfigurations


      推荐阅读