当前位置: 首页 > 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使用详解


在这里插入图片描述

相关文章:

  • 视频分析设备平台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)
  • 网络命名空间验证网络重叠现象
  • 美国失去最后一个AAA评级,资产价格怎么走?美股或将触及天花板
  • 习近平向第三十四届阿拉伯国家联盟首脑理事会会议致贺信
  • 高飞已任南航集团党组副书记
  • “80后”萍乡市安源区区长邱伟,拟任县(区)委书记
  • 网易有道一季度净利润同比增长247%:有能力在今年实现更强劲的利润增长
  • 江苏省委组织部副部长高颜已任南京市委常委、组织部部长