跳到主要内容

Kubectl 命令速查表

本速查表收录了日常管理 Kubernetes 集群最常用的 kubectl 命令,涵盖 Pod 操作、工作负载管理、网络配置、资源调试、集群维护等场景。适合容器编排工程师日常参考。

更新: 2026-07-16·41 条命令

Pod 管理 (Pod Management)

创建、查看和管理 Pod。

``bash # 列出所有 Pod kubectl get pods

# 列出所有命名空间的 Pod kubectl get pods --all-namespaces

# 显示更多信息(节点、IP 等) kubectl get pods -o wide

# 持续监控 Pod 状态 kubectl get pods -w

# 查看 Pod 详细信息 kubectl describe pod my-pod

# 查看 Pod 的完整 YAML kubectl get pod my-pod -o yaml

# 查看 Pod 标签 kubectl get pods --show-labels

# 根据标签筛选 kubectl get pods -l app=nginx,env=prod

# 删除 Pod kubectl delete pod my-pod

# 强制删除 Pod kubectl delete pod my-pod --force --grace-period=0

# 创建 Pod(运行一次) kubectl run nginx --image=nginx --restart=Never

# 创建 Pod 并暴露端口 kubectl run web --image=nginx --port=80

# 导出 Pod 定义到文件 kubectl get pod my-pod -o yaml --export > pod.yaml `

工作负载管理 (Workload Management)

管理 Deployment、StatefulSet、DaemonSet 等。

`bash # 创建 Deployment kubectl create deployment myapp --image=nginx

# 查看 Deployment kubectl get deployments

# 查看 Deployment 详细信息 kubectl describe deployment myapp

# 扩缩容 kubectl scale deployment myapp --replicas=5

# 自动扩缩容 kubectl autoscale deployment myapp --min=2 --max=10 --cpu-percent=80

# 滚动更新镜像 kubectl set image deployment/myapp myapp=myapp:v2

# 查看更新状态 kubectl rollout status deployment/myapp

# 查看更新历史 kubectl rollout history deployment/myapp

# 回滚到上一版本 kubectl rollout undo deployment/myapp

# 回滚到指定版本 kubectl rollout undo deployment/myapp --to-revision=2

# 暂停/恢复滚动更新 kubectl rollout pause deployment/myapp kubectl rollout resume deployment/myapp

# 查看 DaemonSet kubectl get daemonsets --all-namespaces

# 查看 StatefulSet kubectl get statefulsets

# 管理 CronJob kubectl get cronjobs kubectl create cronjob backup --image=busybox --schedule="0 0 * * *" -- /bin/sh -c "date" `

网络管理 (Networking)

管理 Service、Ingress、网络策略。

`bash # 列出所有 Service kubectl get services

# 列出所有命名空间的 Service kubectl get svc --all-namespaces

# 暴露 Deployment 为 Service kubectl expose deployment myapp --port=80 --target-port=8080 --type=ClusterIP

# 创建 NodePort 类型 Service kubectl expose deployment myapp --port=80 --type=NodePort

# 创建 LoadBalancer 类型 Service kubectl expose deployment myapp --port=80 --type=LoadBalancer

# 端口转发(本地访问) kubectl port-forward pod/my-pod 8080:80

# 端口转发到 Service kubectl port-forward svc/my-service 8080:80

# 查看 Endpoints kubectl get endpoints

# 查看 Ingress kubectl get ingress

# 查看网络策略 kubectl get networkpolicies

# 创建 Service(使用 YAML) kubectl create service clusterip my-svc --tcp=80:8080 `

配置管理 (Configuration)

管理 ConfigMap、Secret、资源配额等。

`bash # 创建 ConfigMap 从字面值 kubectl create configmap app-config --from-literal=key1=val1 --from-literal=key2=val2

# 创建 ConfigMap 从文件 kubectl create configmap app-config --from-file=config.properties

# 查看 ConfigMap kubectl get configmaps kubectl describe configmap app-config

# 创建 Secret 从字面值 kubectl create secret generic db-secret --from-literal=password=mysecret

# 创建 Secret 从文件 kubectl create secret generic tls-secret --from-file=tls.crt --from-file=tls.key

# 查看 Secret kubectl get secrets kubectl get secret db-secret -o yaml

# 编码/解码 Secret 值 echo -n "mysecret" | base64 echo "bXlzZWNyZXQ=" | base64 -d

# 管理资源配额 kubectl get resourcequotas

# 管理 LimitRange kubectl get limitranges

# 查看 ServiceAccount kubectl get serviceaccounts

# 编辑资源(使用默认编辑器) kubectl edit deployment myapp

# 应用 YAML 配置 kubectl apply -f deployment.yaml

# 删除资源配置 kubectl delete -f deployment.yaml `

调试与排查 (Debugging)

日志、exec、事件排查。

`bash # 查看 Pod 日志 kubectl logs my-pod

# 持续跟踪日志 kubectl logs -f my-pod

# 查看最近 N 行日志 kubectl logs --tail=100 my-pod

# 查看最近一段时间日志 kubectl logs --since=1h my-pod

# 查看多容器 Pod 的指定容器日志 kubectl logs my-pod -c sidecar-container

# 进入容器执行命令 kubectl exec -it my-pod -- /bin/sh

# 在容器中执行单条命令 kubectl exec my-pod -- env kubectl exec my-pod -- ls -la /app

# 复制文件到 Pod kubectl cp /local/file.txt my-pod:/remote/path/

# 从 Pod 复制文件 kubectl cp my-pod:/remote/path/file.txt /local/file.txt

# 查看集群事件 kubectl get events kubectl get events --sort-by='.lastTimestamp' kubectl get events -w

# 查看事件并过滤 kubectl get events --field-selector type=Warning

# 查看 API 资源类型 kubectl api-resources

# 查看资源字段说明 kubectl explain pod kubectl explain pod.spec.containers

# 测试 API 访问权限 kubectl auth can-i create deployments kubectl auth can-i delete pods --as=system:serviceaccount:default:my-sa `

集群管理 (Cluster Management)

节点管理、上下文切换、集群信息。

`bash # 查看节点 kubectl get nodes

# 查看节点详细信息 kubectl describe node worker-1

# 查看节点资源用量 kubectl top node kubectl top pod

# 标记节点为不可调度 kubectl cordon worker-1

# 驱逐节点上的 Pod kubectl drain worker-1 --ignore-daemonsets --delete-emptydir-data

# 恢复节点调度 kubectl uncordon worker-1

# 添加/管理污点 kubectl taint nodes worker-1 key=value:NoSchedule kubectl taint nodes worker-1 key=value:NoSchedule-

# 添加/管理标签 kubectl label node worker-1 disktype=ssd kubectl label node worker-1 disktype-

# 添加/管理注解 kubectl annotate pod my-pod description="my annotation" kubectl annotate pod my-pod description-

# 查看集群信息 kubectl cluster-info

# 查看当前上下文 kubectl config current-context

# 列出所有上下文 kubectl config get-contexts

# 切换上下文 kubectl config use-context production

# 查看 kubeconfig kubectl config view

# 设置集群上下文 kubectl config set-context my-context --namespace=prod --cluster=my-cluster --user=my-user

# 合并多个 kubeconfig export KUBECONFIG=file1:file2 kubectl config view --flatten > merged-config

# 查看 API 版本 kubectl api-versions

# 查看集群中所有资源 kubectl get all --all-namespaces ``

Pod 管理(7)

命令难度
kubectl get pods
列出所有 Pod
基础
kubectl get pods --all-namespaces
列出所有命名空间的 Pod
基础
kubectl describe pod my-pod
查看 Pod 的详细信息
基础
kubectl get pod my-pod -o yaml
导出 Pod 的 YAML 定义
中级
kubectl get pods -l app=nginx,env=prod
根据标签筛选 Pod
中级
kubectl delete pod my-pod --force --grace-period=0
强制删除 Pod
中级
kubectl run nginx --image=nginx --restart=Never
创建一次性运行的 Pod
基础

工作负载(6)

命令难度
kubectl create deployment myapp --image=nginx
创建 Deployment
基础
kubectl scale deployment myapp --replicas=5
扩缩容 Deployment
基础
kubectl set image deployment/myapp myapp=myapp:v2
滚动更新 Deployment 镜像
中级
kubectl rollout status deployment/myapp
查看 Deployment 更新状态
中级
kubectl rollout undo deployment/myapp
回滚 Deployment 到上一版本
中级
kubectl rollout history deployment/myapp
查看 Deployment 更新历史
中级

网络(4)

命令难度
kubectl expose deployment myapp --port=80 --target-port=8080 --type=ClusterIP
暴露 Deployment 为 ClusterIP 服务
中级
kubectl expose deployment myapp --port=80 --type=NodePort
创建 NodePort 类型 Service
中级
kubectl port-forward pod/my-pod 8080:80
端口转发到 Pod(本地调试)
中级
kubectl get ingress
查看 Ingress 资源
中级

配置(6)

命令难度
kubectl create configmap app-config --from-literal=key1=val1
从字面值创建 ConfigMap
基础
kubectl create configmap app-config --from-file=config.properties
从文件创建 ConfigMap
基础
kubectl create secret generic db-secret --from-literal=password=mysecret
从字面值创建 Secret
中级
kubectl edit deployment myapp
编辑 Deployment 资源
中级
kubectl apply -f deployment.yaml
应用 YAML 配置文件
基础
kubectl delete -f deployment.yaml
删除 YAML 配置定义的资源
基础

调试(6)

命令难度
kubectl logs -f my-pod
持续跟踪 Pod 日志
基础
kubectl logs --tail=100 my-pod
查看 Pod 最近 N 行日志
基础
kubectl exec -it my-pod -- /bin/sh
进入容器交互式 Shell
基础
kubectl cp /local/file.txt my-pod:/remote/path/
复制文件到 Pod
中级
kubectl get events --sort-by='.lastTimestamp'
按时间排序查看集群事件
中级
kubectl explain pod.spec.containers
查看资源字段说明
基础

集群管理(12)

命令难度
kubectl auth can-i create deployments
测试当前用户是否有创建 Deployment 的权限
高级
kubectl get nodes
列出集群节点
基础
kubectl describe node worker-1
查看节点详细信息
中级
kubectl top node
查看节点资源使用量
中级
kubectl top pod
查看 Pod 资源使用量
中级
kubectl cordon worker-1
标记节点为不可调度
高级
kubectl drain worker-1 --ignore-daemonsets --delete-emptydir-data
驱逐节点上的 Pod 准备维护
高级
kubectl taint nodes worker-1 key=value:NoSchedule
给节点添加污点阻止调度
高级
kubectl cluster-info
查看集群信息
基础
kubectl config current-context
查看当前上下文
基础
kubectl config use-context production
切换上下文
基础
kubectl get all --all-namespaces
查看集群中所有资源
中级

常见问题

本速查表数据整理自各工具官方文档。最后更新: 2026-07-16。