当前位置: 首页 > news >正文

超详细 Kubectl 完整命令手册(生产级、全分类、带参数解释+实操示例)

超详细 Kubectl 完整命令手册

(生产级、全分类、带参数解释 + 实操示例)

一、基础语法 & 全局通用参数

1. 标准语法

kubectl 【子命令】【资源类型】【资源名称】【可选参数】

2. 全局必用通用参数

参数作用
`-n, --namespace指定命名空间
-A, --all-namespaces遍历所有命名空间
-o <format>指定输出格式
-w, --watch实时监听资源变化
--dry-run=client模拟执行,不实际创建资源
--show-labels显示资源标签
-l key=val根据标签筛选资源
--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-columns=NAME:.metadata.name,IP:.status.podIP # 自定义列

二、集群 & 环境配置(连接 / 上下文 / 权限)

1. 集群基础信息

\# 查看客户端&集群版本 kubectl version \# 查看集群组件状态 kubectl get cs \# 查看集群整体信息 kubectl cluster-info \# 查看所有API资源&权限 kubectl api-resources \# 查看集群API版本 kubectl api-versions

2. 多集群 / 多环境 Context 管理

\# 查看所有集群上下文 kubectl config get-contexts \# 切换集群/环境 kubectl config use-context kubernetes-admin@cluster \# 查看当前使用上下文 kubectl config current-context \# 设置默认命名空间(无需每次加 -n) kubectl config set-context --current --namespace=prod \# 查看 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 app=nginx -n prod \# 排序查看(按创建时间) kubectl get po --sort-by=.metadata.creationTimestamp

2. 创建资源create

适合简单快速创建,不推荐复杂资源

\# 创建命名空间 kubectl create ns test \# 创建配置文件cm kubectl create cm app-config --from-literal=env=prod --from-file=app.conf \# 创建密钥secret kubectl create secret generic db-secret --from-literal=user=root --from-literal=pwd=123456 \# 创建service kubectl create svc clusterip nginx-svc --tcp=80:80

3. 声明式创建 / 更新apply【生产首选】

幂等操作,重复执行无报错,优先使用

\# 单个yaml文件 kubectl apply -f nginx-deploy.yaml \# 批量生效目录下所有yaml kubectl apply -f ./manifests/ \# 在线远程yaml(注:原URL可能存在访问问题,建议替换为有效地址) kubectl apply -f https://xxx/deploy.yaml

4. 在线编辑修改edit

直接编辑集群内运行配置,实时生效

kubectl edit deploy nginx -n prod kubectl edit cm app-config -n prod kubectl edit svc nginx-svc -n prod

5. 补丁修改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 app=nginx -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-period=0

7. 导出现有资源 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 prod

2. 日志查看

\# 查看最新日志 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 --tail=100 nginx-xxx

3. 进入容器内部

\# 交互式进入容器 bash kubectl exec -it nginx-xxx -n prod -- /bin/bash \# 无bash环境用sh kubectl exec -it nginx-xxx -- /bin/sh \# 直接在容器执行单条命令 kubectl exec nginx-xxx -- ls /data

4. 本地 拷贝

\# 本地文件上传到容器 kubectl cp /local/file.txt nginx-xxx:/app/ -n prod \# 容器文件下载到本地 kubectl cp nginx-xxx:/app/logs.log ./ -n prod

5. 端口转发(本地访问集群内部)

\# 本地8080 映射 Pod 80端口 kubectl port-forward pod/nginx-xxx 8080:80 -n prod \# 映射service端口 kubectl port-forward svc/nginx-svc 8080:80

6. 临时运行测试 Pod

\# 快速启动临时调试pod,用完即删 kubectl run debug --image=centos:7 -it --rm -- /bin/bash

六、工作负载管理

1. Deployment 无状态应用

\# 查看deploy kubectl get deploy -n prod \# 手动扩缩容 kubectl scale deploy nginx --replicas=5 -n prod \# 动态更新镜像(滚动更新) kubectl set image deploy/nginx nginx=nginx: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 nginx

2. StatefulSet 有状态应用(数据库、中间件)

kubectl get sts -n middleware kubectl describe sts mysql-sts -n middleware kubectl scale sts mysql-sts --replicas=3 -n middleware

3. DaemonSet 节点级守护进程(日志、监控)

kubectl get ds -n kube-system kubectl describe ds fluentd -n kube-system

4. Job & CronJob 定时 / 一次性任务

\# 查看一次性任务 kubectl get job -n task \# 查看定时任务 kubectl get cj -n task \# 手动触发一次定时任务 kubectl create job --from=cj/backup-job backup-once

七、网络资源:Service & Ingress

1. Service 服务暴露

kubectl get svc -n prod kubectl describe svc nginx-svc -n prod \# 暴露deploy为NodePort服务 kubectl expose deploy nginx --port=80 --type=NodePort -n prod \# 查看服务后端挂载节点 kubectl get ep -n prod

2. 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-101

2. 节点维护操作

\# 标记节点不可调度(维护前禁止新Pod调度) kubectl cordon node-101 \# 驱逐节点上所有Pod(节点下线维护) kubectl drain node-101 --ignore-daemonsets --delete-emptydir-data \# 恢复节点调度 kubectl uncordon node-101

3. 节点标签 & 污点

\# 给节点打标签 kubectl label node node-101 node-role=worker \# 删除节点标签 kubectl label node node-101 node-role- \# 节点打污点(禁止普通Pod调度) kubectl taint node node-101 key=value: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.phase=Failed -A

十四、补充:别名 + 自动补全(提升效率)

\# 设置别名 k=kubectl echo "alias k=kubectl" >> /etc/profile source /etc/profile \# bash自动补全 echo "source bash)" >> /etc/profile source /etc/profile

设置后直接用k get pok describe deploy极简操作。

注意:文档中涉及的远程 YAML 文件 URL(https://xxx/deploy.yaml)存在解析失败问题,可能是链接无效或不支持的类型,建议替换为实际可用的 YAML 文件地址后再执行相关命令。

http://www.cnnetsun.cn/news/2091099.html

相关文章:

  • 如何3分钟解锁B站缓存视频:m4s-converter终极转换指南
  • 【工业级MCP网关设计规范V2.3】:基于金融高频交易场景验证的12条硬性约束,90%团队踩过的3个线程模型陷阱
  • Zotero文献去重插件:告别重复文献的智能解决方案
  • 终极指南:如何用PCL启动器轻松管理你的Minecraft世界
  • 从零开始:如何利用Kohya_ss轻松训练你的专属AI绘画模型
  • Murata Type 2GT LoRa模块技术解析与应用实践
  • 基于LLM与Godot的智能桌宠:打造有记忆、有情感的AI桌面伙伴
  • VSCode农业插件生态白皮书首发:覆盖23类农用设备协议(Modbus-RTU/ISOBUS/NMEA 0183),仅限首批500名涉农开发者领取
  • Phi-mini-MoE-instruct开发指南:API接口封装与Python client调用示例
  • 推荐 win11 可用的 SVN 版本:64位,下载最新的 TortoiseSVN 1.14.x 版本
  • 为什么Photoshop图层批量导出工具能大幅提升设计效率?
  • AI分子对接
  • ERP系统进销存模块源码深度解析(附代码):核心逻辑与实现方案
  • 51PR媒体发布平台整合近10万媒体资源,助力企业高效发稿
  • 重新定义地图创作:如何通过TEdit实现泰拉瑞亚世界的无限可能
  • MPL502-V-G-270 MPL 502系列传感器
  • MicMute:Windows平台一键麦克风静音解决方案,告别会议尴尬瞬间
  • DeepseekV3论文阅读笔记
  • Ryujinx终极指南:如何在PC上免费畅玩Switch游戏 [特殊字符]
  • 从成本到效果:5大软文发稿平台深度测评,帮你选出适合的那个
  • D6.3 PriorityClass 常用实验(2个)
  • Redisson 介绍
  • 算法训练营Day12| LeetCode 169. 多数元素
  • 2026年口碑优异的金相显微镜工厂盘点 有采购需求的建议收好
  • 宇宙学研究新突破:用 Blender 几何节点处理 CMB 数据,实现多项实用功能!
  • AI Agent在体育与娱乐领域的应用:数据分析与体验优化
  • HNU计算机系统期中题库详解(五)位运算与逻辑运算
  • 嵌入式团队紧急升级预警:VSCode 2026.1起废弃legacy GDB adapter——3类老旧JTAG探针将彻底失联?
  • KrkrzExtract终极指南:3步掌握krkrz引擎资源处理工具
  • 多线程下载引擎架构解析:AB Download Manager的技术实现路径