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

【一起来学kubernetes】32、kubectl使用详解


一、kubectl 核心概念

kubectl 是 Kubernetes 的官方 CLI 工具,用于与集群交互,支持对资源(如 Pod、Service、Deployment 等)的增删改查操作。其核心特性包括:

  • 多资源管理:支持通过 YAML/JSON 文件或命令行参数操作资源。
  • 动态调试:提供日志查看、容器内命令执行等功能。
  • 多集群配置:通过 kubeconfig 文件切换不同集群上下文。

二、基础命令与操作

1. 资源查询
  • 获取资源列表
    kubectl get pods                  # 列出默认命名空间的 Pod
    kubectl get svc -n dev            # 指定命名空间查询 Service
    kubectl get all -A                # 查看所有命名空间的资源
    
  • 详细信息查看
    kubectl describe pod/nginx        # 显示 Pod 的详细状态与事件
    kubectl explain deployment.spec   # 查看资源字段的文档说明
    
2. 资源创建与更新
  • 声明式管理(YAML/JSON)
    kubectl apply -f deployment.yaml  # 创建或更新资源(推荐)
    kubectl create -f service.yaml    # 仅创建新资源(若存在则报错)
    
  • 命令式创建
    kubectl run nginx --image=nginx   # 启动一个 Pod(已弃用,建议用 Deployment)
    kubectl expose deployment/nginx --port=80 --type=NodePort  # 创建 Service
    
3. 资源删除
  • 按名称或文件删除
    kubectl delete pod/nginx          # 删除指定 Pod
    kubectl delete -f config.yaml     # 删除配置文件中的资源
    
  • 按标签批量删除
    kubectl delete pods -l app=web    # 删除所有标签为 app=web 的 Pod
    
4. 容器调试
  • 查看日志
    kubectl logs nginx -c container1 --follow  # 实时跟踪指定容器的日志
    
  • 执行命令
    kubectl exec -it nginx -- /bin/bash        # 进入容器交互终端
    kubectl exec nginx -- curl localhost:80    # 在容器内执行单次命令
    

三、高级操作与技巧

1. 动态资源调整
  • 扩缩容
    kubectl scale deployment/nginx --replicas=3  # 调整副本数
    kubectl autoscale deployment/nginx --min=2 --max=5  # 自动扩缩容
    
  • 滚动更新与回滚
    kubectl rollout status deployment/nginx     # 查看更新状态
    kubectl rollout undo deployment/nginx       # 回滚到上一版本
    
2. 网络与端口转发
  • 本地端口转发
    kubectl port-forward pod/nginx 8080:80      # 将本地 8080 转发到 Pod 的 80 端口
    
3. 高效查询与输出
  • 按标签过滤
    kubectl get pods -l env=prod              # 筛选特定标签的 Pod
    
  • 自定义输出格式
    kubectl get pods -o jsonpath='{.items[*].metadata.name}'  # 提取名称列表
    kubectl get pods -o wide                  # 显示 IP 和节点信息
    
4. 多集群管理
  • 切换上下文
    kubectl config use-context cluster-prod    # 切换到生产集群
    

四、常见问题与排错

  1. 资源状态异常
    • 使用 kubectl describe 查看事件和错误详情。
    • 检查 YAML 文件语法:kubectl apply --dry-run=client -f config.yaml
  2. Pod 无法删除
    kubectl delete pod/nginx --force --grace-period=0  # 强制删除
    
  3. 日志分析
    • 结合 kubectl logsgrep 过滤关键信息。

五、扩展功能

  • 插件支持
    kubectl plugin list                   # 查看已安装插件
    
  • 自定义资源(CRD)
    kubectl get crds                      # 查看自定义资源类型
    kubectl apply -f custom-resource.yaml # 部署自定义资源
    

拓展

【一起来学kubernetes】31、Helm使用详解

【一起来学kubernetes】25、Master使用详解


在这里插入图片描述

http://www.dtcms.com/a/104821.html

相关文章:

  • 视频分析设备平台EasyCVR安消一体化解决方案,打造社区/园区全面可视化智能安消应用
  • HNSW(Hierarchical Navigable Small World,分层可导航小世界)用来高效搜索高维向量的最近邻
  • JAVA常见的 JVM 参数及其典型默认值
  • CMMI(能力成熟度模型集成)简介
  • 蓝桥复习2(温度开始)
  • 系统思考反馈
  • 写Prompt的技巧和基本原则
  • PyQt6基础_界面控件简单介绍III
  • 【夜话系列】DelayQueue延迟队列(上):原理剖析与实现机制
  • 公网专线IP和私网专线IP之间的区别是什么?
  • 定时任务(python)
  • nodejs:midi-writer-js 将基金净值数据转换为 midi 文件
  • 多线程猜数问题
  • AI CUDA 工程师:Agentic CUDA 内核发现、优化和组合
  • 前后台系统
  • JavaScript单例模式
  • JS—Token与JWT
  • [测试] Google Test | 主流的 C 测试框架
  • 2024最新鸿蒙开发面试题合集(二)-HarmonyOS NEXT Release(API 12 Release)
  • 网络命名空间验证网络重叠现象
  • SpringBoot3.x 集成 shardingsphere-jdbc 实现读写分离
  • 26考研|数学分析:反常积分
  • JSON for Modern C++ 解析 JSON(五)
  • 【Git】5 个分区的切换方式及示例
  • idea报错:程序包不存在
  • 【android bluetooth 协议分析 13】【RFCOMM详解 1】【通俗易懂 什么是rfcomm】
  • 数理天地杂志数理天地杂志社数理天地编辑部2025年第6期目录
  • Java的比较器 Comparable 和 Comparator
  • 如何批量拆分Excel工作表或按行拆分Excel表格 - Excel拆分器使用方法
  • 通信协议与网络知识:从硬件到互联网的全面指南