Kubernetes 命令速查
kubectl 常用命令速查,覆盖 Pod、部署、服务、排障与节点维护
🖥️ 集群与上下文
kubectl cluster-info查看集群控制平面与核心服务地址
kubectl cluster-infokubectl config get-contexts列出所有集群上下文,当前使用的带 * 标记
kubectl config get-contextskubectl config use-context <上下文>切换到指定集群上下文
kubectl config use-context prod-clusterkubectl config current-context查看当前正在操作的集群
kubectl config current-contextkubectl api-resources列出集群支持的所有资源类型及缩写
kubectl api-resourceskubectl get namespaces列出所有命名空间
kubectl get nskubectl version --short查看客户端与服务端版本,判断兼容性
kubectl version --short🔍 查看资源
kubectl get pods -A查看所有命名空间的 Pod
kubectl get pods -Akubectl get pod -n <命名空间> -w持续监视 Pod 状态变化
kubectl get pod -n default -wkubectl get pod -o wide额外显示 Pod 所在节点与 IP
kubectl get pod -o widekubectl describe pod <Pod名>查看 Pod 详情,排障时重点看 Events 段
kubectl describe pod nginx-7d8bkubectl get all -n <命名空间>一次性列出该命名空间下所有常见资源
kubectl get all -n prodkubectl get pod -l app=<标签>按标签筛选资源
kubectl get pod -l app=nginxkubectl get deployments.apps -o yaml导出资源完整 YAML,便于对照或迁移
kubectl get deploy nginx -o yamlkubectl explain <资源>.<字段>查看字段含义与层级,写 YAML 时很管用
kubectl explain pod.spec.containers📦 Pod 操作
kubectl run <名> --image=<镜像>快速创建一个单容器 Pod(临时调试用)
kubectl run tmp --image=busybox -- sleep 3600kubectl exec -it <Pod名> -- sh进入容器执行命令,容器无 sh 时改用 bash
kubectl exec -it nginx-7d8b -- shkubectl logs <Pod名>查看容器日志,多容器需加 -c 指定容器名
kubectl logs nginx-7d8b -c nginxkubectl logs -f --tail 200 <Pod名>实时跟踪最后 200 行日志
kubectl logs -f --tail 200 nginx-7d8bkubectl logs <Pod名> --previous查看崩溃前一次容器的日志,排查 CrashLoopBackOff
kubectl logs nginx-7d8b --previouskubectl delete pod <Pod名> --force --grace-period=0强制立即删除卡住的 Pod,慎用
kubectl delete pod nginx-7d8b --force --grace-period=0kubectl cp <Pod名>:<路径> <本地路径>在 Pod 与本地之间拷贝文件
kubectl cp nginx-7d8b:/etc/nginx/nginx.conf ./nginx.confkubectl debug -it <Pod名> --image=busybox注入临时调试容器,适合 distroless 镜像
kubectl debug -it nginx-7d8b --image=busybox --target=nginx🚀 部署与扩缩容
kubectl create deployment <名> --image=<镜像>创建 Deployment 并生成 ReplicaSet
kubectl create deployment nginx --image=nginx:1.25kubectl apply -f <文件>按 YAML 声明式应用配置,推荐的生产方式
kubectl apply -f deployment.yamlkubectl apply -f <目录>应用目录下所有 YAML,加 -R 递归子目录
kubectl apply -f ./manifests/kubectl scale deployment <名> --replicas=<数>手动调整副本数
kubectl scale deploy nginx --replicas=5kubectl autoscale deployment <名> --min=2 --max=10 --cpu-percent=80创建 HPA,按 CPU 使用率自动扩缩
kubectl autoscale deploy nginx --min=2 --max=10 --cpu-percent=80kubectl set image deployment/<名> <容器>=<镜像>滚动更新容器镜像版本
kubectl set image deploy/nginx nginx=nginx:1.26kubectl rollout status deployment/<名>跟踪滚动更新进度直至完成
kubectl rollout status deploy/nginxkubectl rollout history deployment/<名>查看历史版本记录
kubectl rollout history deploy/nginxkubectl rollout undo deployment/<名>回滚到上一个版本,加 --to-revision=N 指定版本
kubectl rollout undo deploy/nginx --to-revision=2kubectl rollout restart deployment/<名>触发重启(等同更新一次模板注解),用于重载配置
kubectl rollout restart deploy/nginx🌐 服务与网络
kubectl expose deployment <名> --port=<端口>为 Deployment 创建 Service
kubectl expose deploy nginx --port=80 --target-port=80kubectl get svc,ep -n <命名空间>同时查看 Service 与后端 Endpoints,排查无可用后端
kubectl get svc,ep -n prodkubectl get ingress -A查看所有 Ingress 路由规则
kubectl get ingress -Akubectl port-forward svc/<服务名> 8080:80把集群服务转发到本地,临时调试用
kubectl port-forward svc/nginx 8080:80kubectl proxy开启本地 API 代理,可直接访问集群内资源
kubectl proxy --port=8001kubectl get networkpolicy -A查看网络策略,确认是否拦截了流量
kubectl get networkpolicy -A🔐 配置与密钥
kubectl create configmap <名> --from-literal=<键>=<值>从字面量创建 ConfigMap
kubectl create configmap appcfg --from-literal=LOG_LEVEL=debugkubectl create configmap <名> --from-file=<路径>从文件创建,文件名即键名
kubectl create configmap nginx-conf --from-file=./nginx.confkubectl create secret generic <名> --from-literal=<键>=<值>创建通用 Secret,值会被 base64 编码存储
kubectl create secret generic dbpass --from-literal=password=S3cretkubectl create secret docker-registry <名>创建拉取私有镜像用的 imagePullSecrets
kubectl create secret docker-registry regcred --docker-server=reg.com --docker-username=u --docker-password=pkubectl get secret <名> -o jsonpath="{.data.<键>}" | base64 -d解码查看 Secret 明文内容
kubectl get secret dbpass -o jsonpath="{.data.password}" | base64 -dkubectl edit configmap <名>在线编辑配置,保存后需重启 Pod 才生效
kubectl edit configmap appcfg🩺 故障排查
kubectl describe pod <Pod名> | grep -A20 Events只看事件段,定位调度失败或拉取镜像失败原因
kubectl describe pod nginx-7d8b | grep -A20 Eventskubectl get events -A --sort-by=.lastTimestamp按时间查看全集群事件,追事故首选
kubectl get events -A --sort-by=.lastTimestampkubectl top pod -A查看 Pod 实时资源占用,需安装 metrics-server
kubectl top pod -Akubectl top node查看节点资源占用,判断是否需要扩容
kubectl top nodekubectl describe node <节点名>查看节点资源分配与污点,排查 Pending
kubectl describe node node-1kubectl get pod --field-selector status.phase=Pending筛选处于 Pending 状态的 Pod
kubectl get pod -A --field-selector status.phase=Pendingkubectl delete pod -l app=<标签> --field-selector status.phase=Failed批量清理失败状态的 Pod
kubectl delete pod -l app=nginx --field-selector status.phase=Failedkubectl get crd查看集群已安装的自定义资源(CRD)
kubectl get crd🔧 节点维护
kubectl cordon <节点名>标记节点不可调度,已有 Pod 不受影响
kubectl cordon node-1kubectl drain <节点名> --ignore-daemonsets --delete-emptydir-data排空节点上所有 Pod,下线前必须操作
kubectl drain node-1 --ignore-daemonsets --delete-emptydir-datakubectl uncordon <节点名>恢复节点可调度状态
kubectl uncordon node-1kubectl taint nodes <节点名> <键>=<值>:NoSchedule给节点打污点,只有带对应容忍的 Pod 能调度
kubectl taint nodes node-1 dedicated=gpu:NoSchedulekubectl label nodes <节点名> <键>=<值>给节点打标签,配合 nodeSelector 使用
kubectl label nodes node-1 role=worker🛡️ 权限与资源清理
kubectl auth can-i <动词> <资源>检查当前用户是否有某项操作权限
kubectl auth can-i delete podskubectl auth can-i <动词> <资源> --as=<用户>模拟指定用户做权限校验
kubectl auth can-i get secrets --as=system:serviceaccount:default:appkubectl get rolebindings,clusterrolebindings -A查看 RBAC 授权绑定关系
kubectl get rolebindings,clusterrolebindings -Akubectl delete -f <文件>按 YAML 删除已创建的资源
kubectl delete -f deployment.yamlkubectl delete all -l app=<标签>按标签批量删除该应用的所有资源
kubectl delete all -l app=nginxkubectl get pods -A | awk '/Evicted/{print $2" -n "$1}' | xargs -n3 kubectl delete pod批量清理被驱逐的历史 Pod 记录
kubectl get pods -A | awk '/Evicted/{print $2" -n "$1}' | xargs -n3 kubectl delete podKubernetes 命令速查怎么用
kubectl 常用命令速查:Pod、Deployment、Service、日志与排错,覆盖日常运维场景。
- 按场景搜索命令
- 点击复制
- 替换命名空间与资源名
小贴士生产环境操作前先加 --dry-run 或 kubectl diff 预演一遍。
Kubernetes 命令速查常见问题
Kubernetes 命令速查是免费的吗?
完全免费,无需注册登录,也不限使用次数。997 工具箱所有工具都不收费。
使用Kubernetes 命令速查会把我的数据上传到服务器吗?
不会。Kubernetes 命令速查在浏览器本地完成计算,输入的文本和文件都不会离开你的设备,页面关闭后数据即消失。
Kubernetes 命令速查在手机上能用吗?
可以。页面做了移动端适配,手机和平板的浏览器打开同样能正常使用,也不需要安装任何 App。