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

Kubernetes 的20 个核心命令分类详解

文章目录

    • 一、集群与资源管理
    • 二、应用部署与更新
    • 三、调试与诊断
    • 四、节点与集群维护
    • 五、配置与权限管理
    • 六、高阶操作
    • 七、详细命令示例与说明
      • 7.1. 基础命令
      • 7.2. 故障排查命令
      • 7.3.资源配置命令
      • 7.4. 集群管理命令
      • 7.5. 实用技巧与最佳实践

kubernetes 的命令行工具 kubectl 是集群管理的核心入口。本文通过 6 大场景分类,总结 20 个高频命令,并附详细示例,助你快速掌握日常操作。

一、集群与资源管理

命令类别说明使用示例
kubectl get -A基础查询查看所有命名空间下的资源(Pod/Deployment 等)kubectl get pods,deployments -A -o wid查看全集群资源分布
kubectl describe诊断分析显示资源详细信息(事件、配置、状态)kubectl describe pod nginx-pod 诊断 Pod 异常原因
kubectl apply -f声明式管理创建或更新资源(推荐替代 create)kubectl apply -f deployment.yaml 应用配置
kubectl delete资源清理删除资源(支持名称/标签/YAML)kubectl delete pods -l app=nginx 按标签删除

二、应用部署与更新

命令类别说明使用示例
kubectl rollout版本控制管理滚动更新(状态/回滚/暂停)kubectl rollout undo deployment/nginx 回滚到上一版本
kubectl scale扩缩容动态调整副本数kubectl scale deploy/nginx --replicas=5 扩容至 5 副本
kubectl set image镜像更新热更新容器镜像kubectl set image deploy/nginx nginx=nginx:1.25
kubectl autoscale自动扩缩容配置 HPA(水平自动扩缩容)kubectl autoscale deploy/nginx --min=2 --max=10 --cpu-percent=80

三、调试与诊断

命令类别说明使用示例
kubectl logs日志查看实时追踪容器日志kubectl logs -f nginx-pod --tail=100 实时查看日志
kubectl exec容器操作进入容器执行命令kubectl exec -it nginx-pod – /bin/bash 进入 Shell
kubectl port-forward本地调试端口转发到 Podkubectl port-forward svc/nginx 8080:80 本地访问服务
kubectl top资源监控查看节点/Pod 资源利用率(需 Metrics Server)kubectl top nodes 监控节点 CPU/内存

四、节点与集群维护

命令类别说明使用示例
kubectl cordon节点维护标记节点不可调度kubectl cordon node-01 隔离节点
kubectl drain安全驱逐驱逐节点 Pod(准备维护)kubectl drain node-01 --ignore-daemonsets 清空节点
kubectl taint调度控制为节点添加污点kubectl taint nodes node-01 env=prod:NoSchedule
kubectl cluster-info集群状态查看集群核心服务地址kubectl cluster-info 检查 API Server 状态

五、配置与权限管理

命令类别说明使用示例
kubectl config上下文管理切换多集群配置kubectl config use-context prod 切换生产集群
kubectl auth can-i权限验证检查 RBAC 权限kubectl auth can-i delete pods --as=system:serviceaccount:default:test

六、高阶操作

命令类别说明使用示例
kubectl patch字段更新热更新资源字段(无需替换完整 YAML)kubectl patch deployment nginx -p ‘{“spec”:{“replicas”:3}}’
kubectl label元数据管理为资源添加标签kubectl label pods nginx-pod env=prod 标记生产环境

七、详细命令示例与说明

7.1. 基础命令

kubectl get - 列出资源

# 列出所有命名空间的Pod
kubectl get pods --all-namespaces# 列出默认命名空间的Deployment
kubectl get deployments# 列出节点信息
kubectl get nodes -o wide# 以yaml格式列出Pod信息
kubectl get pod nginx-pod -o yaml

kubectl describe - 显示资源详细信息

# 描述Pod详情
kubectl describe pod nginx-pod# 描述节点详情
kubectl describe node worker-node-1# 描述Service详情
kubectl describe service nginx-service

kubectl create - 创建资源

# 通过YAML文件创建资源
kubectl create -f nginx-deployment.yaml# 创建命名空间
kubectl create namespace test-ns# 从docker镜像创建Deployment
kubectl create deployment nginx --image=nginx:1.20

kubectl apply - 应用配置

# 应用YAML配置(创建或更新)
kubectl apply -f nginx-deployment.yaml# 应用目录下的所有配置文件
kubectl apply -f ./manifests/

kubectl delete - 删除资源

# 删除Pod
kubectl delete pod nginx-pod# 通过标签删除资源
kubectl delete pods -l app=nginx# 删除命名空间及其所有资源
kubectl delete namespace test-ns --force

7.2. 故障排查命令

kubectl logs - 查看日志

# 查看Pod日志
kubectl logs nginx-pod# 实时查看日志
kubectl logs -f nginx-pod# 查看多容器Pod中的特定容器日志
kubectl logs nginx-pod -c nginx-container# 查看之前崩溃的容器日志
kubectl logs -p nginx-pod

kubectl exec - 在容器中执行命令

# 进入Pod的交互式shell
kubectl exec -it nginx-pod -- /bin/bash# 在Pod中执行简单命令
kubectl exec nginx-pod -- ls /etc/nginx# 在指定容器中执行命令
kubectl exec -it nginx-pod -c nginx-container -- /bin/bash

kubectl port-forward - 端口转发

# 将本地8080端口转发到Pod的80端口
kubectl port-forward nginx-pod 8080:80# 转发到Service
kubectl port-forward service/nginx-service 8080:80# 在后台运行端口转发
kubectl port-forward nginx-pod 8080:80 &

kubectl top - 资源使用统计

# 查看节点资源使用情况
kubectl top nodes# 查看Pod资源使用情况
kubectl top pods# 查看指定命名空间的Pod资源使用
kubectl top pods -n kube-system

kubectl cp - 文件拷贝

# 从容器拷贝文件到本地
kubectl cp nginx-pod:/etc/nginx/nginx.conf ./nginx.conf# 从本地拷贝文件到容器
kubectl cp ./config.txt nginx-pod:/tmp/config.txt# 拷贝到指定容器
kubectl cp ./file.txt nginx-pod:/tmp/file.txt -c nginx-container

7.3.资源配置命令

kubectl edit - 编辑资源

# 编辑Deployment
kubectl edit deployment nginx-deployment# 编辑指定命名空间的资源
kubectl edit deployment nginx -n production# 使用特定编辑器
KUBE_EDITOR="vim" kubectl edit deployment nginx

kubectl scale - 扩缩容

# 扩展Deployment副本数
kubectl scale --replicas=5 deployment/nginx-deployment# 基于当前副本数进行扩展
kubectl scale --current-replicas=3 --replicas=5 deployment/nginx-deployment

kubectl set - 配置资源参数

# 更新容器镜像
kubectl set image deployment/nginx nginx=nginx:1.21# 设置环境变量
kubectl set env deployment/nginx DEBUG=true# 更新资源限制
kubectl set resources deployment/nginx -c=nginx --limits=cpu=200m,memory=512Mi

kubectl patch - 部分更新资源

# 更新容器镜像
kubectl patch pod nginx -p '{"spec":{"containers":[{"name":"nginx","image":"nginx:1.21"}]}}'# 添加注解
kubectl patch deployment nginx -p '{"metadata":{"annotations":{"version":"v2"}}}'

kubectl rollout - 部署管理

# 查看部署状态
kubectl rollout status deployment/nginx# 回滚部署
kubectl rollout undo deployment/nginx# 查看部署历史
kubectl rollout history deployment/nginx# 重启部署(触发滚动更新)
kubectl rollout restart deployment/nginx

7.4. 集群管理命令

kubectl cluster-info - 集群信息

# 显示集群基本信息
kubectl cluster-info# 显示详细集群信息
kubectl cluster-info dump

kubectl api-resources - API资源查询

# 列出所有API资源
kubectl api-resources# 显示资源的API版本
kubectl api-resources --api-group=apps

kubectl config - 配置管理

# 显示当前上下文
kubectl config current-context# 切换上下文
kubectl config use-context production-cluster# 查看配置
kubectl config view

kubectl auth - 权限检查

# 检查当前用户是否有创建Pod的权限
kubectl auth can-i create pods# 检查特定用户权限
kubectl auth can-i list deployments --as=system:serviceaccount:default:default

kubectl explain - 资源文档

# 查看Pod资源的文档
kubectl explain pods# 查看Pod的spec字段文档
kubectl explain pods.spec# 查看容器字段文档
kubectl explain pods.spec.containers

7.5. 实用技巧与最佳实践

  • 使用别名:为常用命令设置别名,如 alias k=‘kubectl’
  • 自动补全:启用kubectl自动补全功能提高效率
  • 使用 -o wide/yaml/json:获取更详细或特定格式的输出
  • 标签选择器:使用 -l 参数通过标签筛选资源
  • 跨命名空间操作:使用 -n 或 --all-namespaces 管理不同命名空间的资源

在这里插入图片描述


“人的一生会经历很多痛苦,但回头想想,都是传奇”。


http://www.xdnf.cn/news/18972.html

相关文章:

  • Linex系统网络管理(二)
  • 数据结构第8章 排序(竟成)
  • SqlHelper类库的使用方法
  • .NET周刊【8月第3期 2025-08-17】
  • 鸿蒙ArkUI 基础篇-06-组件基础语法-Column/Row/Text
  • 车载诊断架构 --- 基于整车功能的正向诊断需求开发
  • Dubbo加标签方式
  • Vue3 + 高德地图实现车辆电子围栏监控与报警
  • banner这个文件是怎么请求到后端数据的
  • codeforces(1045)(div2)D. Sliding Tree
  • zookeeper-集群扩缩容
  • 二次校验请求源 IP 是否在 WAF 官方 IP 段内” + “校验是否携带 WAF 专属 HTTP 头
  • 全域管控,一触可达:复合机器人远程监控方案重塑智能制造
  • volitale伪共享问题及解决方案
  • 高效管理远程连接!Remote Desktop Manager 全方位使用指南
  • 对接连连支付(四)-- 收款查询
  • 数据结构:单链表的应用(力扣算法题)第一章
  • 迅睿CMS自定义网站表单:HTML方式调用Select下拉选项数据指南
  • Winsock 操作指南
  • 宝塔面板零基础搭建 WordPress 个人博客与外贸网站 | 新手10分钟上手指南
  • vscode 调试 指定 python文件 运行路径
  • 嵌入式Linux自学不走弯路!670+讲课程!系统学习路线:入门+应用+ARM+驱动+移植+项目 (STM32MP157开发板)
  • Libvio访问异常排查指南
  • 《从有限元到深度学习:我的金属疲劳研究进阶之路》
  • Paimon——官网阅读:主键表
  • 【Kafka】项目整合使用案例
  • 解开 Ansible 任务复用谜题:过滤器用法、Include/Import 本质差异与任务文件价值详解
  • CPU 虚拟化之Cpu Models
  • 微算法科技(NASDAQ:MLGO)突破性FPGA仿真算法技术助力Grover搜索,显著提升量子计算仿真效率
  • 【LwIP源码学习7】ICMP部分源码分析