超详细 Kubectl 完整命令手册生产级、全分类、带参数解释 实操示例一、基础语法 全局通用参数1. 标准语法kubectl 【子命令】【资源类型】【资源名称】【可选参数】2. 全局必用通用参数参数作用-n, --namespace指定命名空间-A, --all-namespaces遍历所有命名空间-o format指定输出格式-w, --watch实时监听资源变化--dry-runclient模拟执行不实际创建资源--show-labels显示资源标签-l keyval根据标签筛选资源--sort-by字段结果排序3. 全量资源全称 简写对照表高频nodes / no # 节点 namespaces / ns # 命名空间 pods / po # 容器Pod deployments / deploy # 无状态部署 statefulsets / sts # 有状态部署 daemonsets / ds # 守护进程集 services / svc # 服务 ingresses / ing # 路由 ingress configmaps / cm # 配置文件 secrets / sec # 密钥/敏感配置 persistentvolumes / pv # 存储卷 persistentvolumeclaims / pvc # 存储声明 jobs / jb # 一次性任务 cronjobs / cj # 定时任务 endpoints / ep # 服务后端端点 storageclasses / sc # 存储类4. 输出格式-o详解\# 基础 kubectl get po -o wide # 详细信息IP、节点、启动时间 kubectl get po -o yaml # 输出原生yaml配置 kubectl get po -o json # 输出json格式 \# 高级自定义 kubectl get po -o jsonpath{.items\[0].metadata.name} # 精准取值 kubectl get po -o custom-columnsNAME:.metadata.name,IP:.status.podIP # 自定义列二、集群 环境配置连接 / 上下文 / 权限1. 集群基础信息\# 查看客户端集群版本 kubectl version \# 查看集群组件状态 kubectl get cs \# 查看集群整体信息 kubectl cluster-info \# 查看所有API资源权限 kubectl api-resources \# 查看集群API版本 kubectl api-versions2. 多集群 / 多环境 Context 管理\# 查看所有集群上下文 kubectl config get-contexts \# 切换集群/环境 kubectl config use-context kubernetes-admincluster \# 查看当前使用上下文 kubectl config current-context \# 设置默认命名空间无需每次加 -n kubectl config set-context --current --namespaceprod \# 查看 kubeconfig 完整配置 kubectl config view三、命名空间 Namespace 操作K8s 资源默认隔离在命名空间集群级资源node/pv无命名空间。\# 查看所有命名空间 kubectl get ns \# 查看命名空间详情 kubectl describe ns default \# 创建命名空间 kubectl create ns dev \# 删除命名空间会清空该ns下所有资源 kubectl delete ns dev \# 查看指定命名空间下全部资源 kubectl get all -n dev四、核心资源增 / 删 / 改 / 查 全集1. 查询资源get\# 查单个类型资源 kubectl get po # 默认命名空间Pod kubectl get deploy -n prod # 指定命名空间deploy \# 一次性查询多种资源 kubectl get po,svc,deploy,ing -n prod \# 所有命名空间资源 kubectl get po -A \# 标签筛选查询 kubectl get po -l appnginx -n prod \# 排序查看按创建时间 kubectl get po --sort-by.metadata.creationTimestamp2. 创建资源create适合简单快速创建不推荐复杂资源\# 创建命名空间 kubectl create ns test \# 创建配置文件cm kubectl create cm app-config --from-literalenvprod --from-fileapp.conf \# 创建密钥secret kubectl create secret generic db-secret --from-literaluserroot --from-literalpwd123456 \# 创建service kubectl create svc clusterip nginx-svc --tcp80:803. 声明式创建 / 更新apply【生产首选】幂等操作重复执行无报错优先使用\# 单个yaml文件 kubectl apply -f nginx-deploy.yaml \# 批量生效目录下所有yaml kubectl apply -f ./manifests/ \# 在线远程yaml注原URL可能存在访问问题建议替换为有效地址 kubectl apply -f https://xxx/deploy.yaml4. 在线编辑修改edit直接编辑集群内运行配置实时生效kubectl edit deploy nginx -n prod kubectl edit cm app-config -n prod kubectl edit svc nginx-svc -n prod5. 补丁修改patch无需完整 yaml适合局部快速修改\# 修改Pod资源限制 kubectl patch pod nginx-7f98765432 -p {spec:{containers:\[{name:nginx,resources:{limits:{cpu:500m}}}]}}6. 删除资源delete\# 删除指定单个资源 kubectl delete po nginx-xxx -n prod kubectl delete deploy nginx -n prod \# 删除标签匹配的所有资源 kubectl delete po -l appnginx -n prod \# 清空当前ns下所有Pod kubectl delete po --all -n prod \# 根据yaml文件删除资源 kubectl delete -f nginx-deploy.yaml \# 强制删除卡死Pod无法自动销毁时 kubectl delete po nginx-xxx --force --grace-period07. 导出现有资源 YAML\# 导出运行中资源为yaml用于备份/复用 kubectl get deploy nginx -n prod -o yaml nginx-deploy.yaml \# 导出并去除集群独有字段 kubectl get deploy nginx -o yaml | kubectl neat deploy.yaml五、Pod 容器全操作日常运维最高频1. 查看 Pod 详情 排错事件\# 查看Pod详细状态、启动事件、错误原因 kubectl describe po nginx-xxx -n prod2. 日志查看\# 查看最新日志 kubectl logs nginx-xxx -n prod \# 实时滚动日志重点 kubectl logs -f nginx-xxx -n prod \# 查看之前崩溃容器日志 kubectl logs -p nginx-xxx -n prod \# 多容器Pod指定容器日志 kubectl logs nginx-xxx -c app-container -n prod \# 查看最近100行日志 kubectl logs --tail100 nginx-xxx3. 进入容器内部\# 交互式进入容器 bash kubectl exec -it nginx-xxx -n prod -- /bin/bash \# 无bash环境用sh kubectl exec -it nginx-xxx -- /bin/sh \# 直接在容器执行单条命令 kubectl exec nginx-xxx -- ls /data4. 本地 拷贝\# 本地文件上传到容器 kubectl cp /local/file.txt nginx-xxx:/app/ -n prod \# 容器文件下载到本地 kubectl cp nginx-xxx:/app/logs.log ./ -n prod5. 端口转发本地访问集群内部\# 本地8080 映射 Pod 80端口 kubectl port-forward pod/nginx-xxx 8080:80 -n prod \# 映射service端口 kubectl port-forward svc/nginx-svc 8080:806. 临时运行测试 Pod\# 快速启动临时调试pod用完即删 kubectl run debug --imagecentos:7 -it --rm -- /bin/bash六、工作负载管理1. Deployment 无状态应用\# 查看deploy kubectl get deploy -n prod \# 手动扩缩容 kubectl scale deploy nginx --replicas5 -n prod \# 动态更新镜像滚动更新 kubectl set image deploy/nginx nginxnginx:1.24 -n prod \# 查看滚动更新进度 kubectl rollout status deploy nginx -n prod \# 查看更新历史 kubectl rollout history deploy nginx -n prod \# 一键回滚上一版本 kubectl rollout undo deploy nginx -n prod \# 暂停/恢复发布 kubectl rollout pause deploy nginx kubectl rollout resume deploy nginx2. StatefulSet 有状态应用数据库、中间件kubectl get sts -n middleware kubectl describe sts mysql-sts -n middleware kubectl scale sts mysql-sts --replicas3 -n middleware3. DaemonSet 节点级守护进程日志、监控kubectl get ds -n kube-system kubectl describe ds fluentd -n kube-system4. Job CronJob 定时 / 一次性任务\# 查看一次性任务 kubectl get job -n task \# 查看定时任务 kubectl get cj -n task \# 手动触发一次定时任务 kubectl create job --fromcj/backup-job backup-once七、网络资源Service Ingress1. Service 服务暴露kubectl get svc -n prod kubectl describe svc nginx-svc -n prod \# 暴露deploy为NodePort服务 kubectl expose deploy nginx --port80 --typeNodePort -n prod \# 查看服务后端挂载节点 kubectl get ep -n prod2. Ingress 域名路由kubectl get ing -n prod kubectl describe ing nginx-ing -n prod八、配置与密钥ConfigMap Secret\# 查看 kubectl get cm -n prod kubectl get secret -n prod \# 查看详情secret默认加密展示 kubectl describe cm app-config -n prod kubectl get secret db-secret -o yaml -n prod \# 编辑配置 kubectl edit cm app-config -n prod九、存储资源PV / PVC / SC\# 集群存储卷 kubectl get pv \# 应用存储挂载 kubectl get pvc -n prod \# 存储类 kubectl get sc \# 详情排查 kubectl describe pvc>十、节点 Node 集群运维1. 基础查看kubectl get nodes kubectl get nodes -o wide kubectl describe node node-1012. 节点维护操作\# 标记节点不可调度维护前禁止新Pod调度 kubectl cordon node-101 \# 驱逐节点上所有Pod节点下线维护 kubectl drain node-101 --ignore-daemonsets --delete-emptydir-data \# 恢复节点调度 kubectl uncordon node-1013. 节点标签 污点\# 给节点打标签 kubectl label node node-101 node-roleworker \# 删除节点标签 kubectl label node node-101 node-role- \# 节点打污点禁止普通Pod调度 kubectl taint node node-101 keyvalue:NoSchedule十一、资源监控 性能需集群安装metrics-server\# 查看Pod CPU/内存占用 kubectl top po -n prod \# 查看节点资源使用率 kubectl top node十二、全局事件 排错神器\# 查看集群所有事件排错第一命令 kubectl get events -n prod \# 按时间倒序查看错误事件 kubectl get events --sort-by.metadata.creationTimestamp -A十三、高频组合命令生产常用\# 1. 强制重启deploy重建所有Pod kubectl rollout restart deploy nginx -n prod \# 2. 查看异常状态Pod kubectl get po -A | grep -E Error|CrashLoopBackOff|ImagePullBackOff \# 3. 导出所有集群资源备份 kubectl get all -A -o yaml k8s-all-backup.yaml \# 4. 清理所有无效、终止Pod kubectl delete po --field-selector status.phaseFailed -A十四、补充别名 自动补全提升效率\# 设置别名 kkubectl echo alias kkubectl /etc/profile source /etc/profile \# bash自动补全 echo source bash) /etc/profile source /etc/profile设置后直接用k get po、k describe deploy极简操作。注意文档中涉及的远程 YAML 文件 URLhttps://xxx/deploy.yaml存在解析失败问题可能是链接无效或不支持的类型建议替换为实际可用的 YAML 文件地址后再执行相关命令。