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

k8s的常用组件,和命令

Kubernetes(k8s)的常用核心组件和高频命令,这是上手 k8s 的基础 —— 我会先清晰拆解核心组件(控制平面 + 节点组件),再按 “日常操作场景” 整理高频命令,结合使用示例,新手也能快速落地。
 

一、K8s 核心组件(控制平面 + 节点组件)

 
k8s 的组件分为控制平面(Master 节点) 和节点组件(Worker 节点),前者负责集群管理,后者负责执行具体任务,先看核心组件的作用和定位:
 
组件类型组件名称核心作用
控制平面 kube-apiserver 所有操作的统一入口(REST API),集群的 “网关”,所有组件都通过它交互
  etcd 集群的 “数据库”,存储所有集群状态(如 Pod、Service 配置),强一致性分布式存储
  kube-scheduler 调度器,负责把 Pod 分配到合适的 Worker 节点(按资源、亲和性等规则)
  kube-controller-manager 控制器管理器,包含多种控制器(如 Node 控制器、Pod 控制器、Service 控制器),保证集群状态符合预期
  cloud-controller-manager 对接云厂商 API(如 AWS/Aliyun),管理云资源(如负载均衡、持久化存储)
节点组件 kubelet 每个 Worker 节点的 “管家”,监听 apiserver,管理本机 Pod 的生命周期(启动 / 停止)
  kube-proxy 每个 Worker 节点的网络代理,维护节点的网络规则,实现 Service 的负载均衡
  容器运行时(Container Runtime) 运行容器的底层引擎,如 Docker、containerd、CRI-O
 

补充:核心插件(非内置但必须)

 
  • CoreDNS:提供集群内 DNS 服务,让 Pod 可以通过 Service 名称访问服务;
  • Network Plugin:网络插件,实现 Pod 间网络互通(如 Calico、Flannel、Cilium);
  • Ingress Controller:实现 HTTP/HTTPS 路由(如 Nginx Ingress)。
 

二、K8s 高频命令(按场景分类,附示例)

 
k8s 的核心命令行工具是kubectl,以下是日常开发 / 运维最常用的命令,按 “查看、操作、调试、集群管理” 分类:
 

1. 基础查看类(最常用)

 
用于查看集群资源状态,是排查问题的第一步:
 
bash
# 1. 查看集群信息(节点、版本、API地址)
kubectl cluster-info# 2. 查看节点列表(-o wide显示更多信息:IP、容器运行时)
kubectl get nodes
kubectl get nodes -o wide# 3. 查看Pod(核心!-n 指定命名空间,-o wide显示节点、IP)
kubectl get pods  # 查看默认命名空间Pod
kubectl get pods -n kube-system  # 查看kube-system命名空间(系统组件)
kubectl get pods -o wide  # 显示Pod所在节点、IP
kubectl get pods -A  # 查看所有命名空间的Pod(-A = --all-namespaces)
kubectl get pods --watch  # 实时监控Pod状态变化# 4. 查看Service(服务,-o yaml显示完整配置)
kubectl get svc  # 查看默认命名空间Service
kubectl get svc -n default -o yaml  # 查看某个Service的完整YAML配置# 5. 查看其他常用资源
kubectl get deploy  # 查看Deployment(无状态应用控制器)
kubectl get rs  # 查看ReplicaSet(副本集)
kubectl get configmap  # 查看配置映射
kubectl get secret  # 查看密钥(敏感信息)
kubectl get ingress  # 查看Ingress路由规则
kubectl get pvc  # 查看持久化卷声明
kubectl get pv  # 查看持久化卷# 6. 查看资源详情(描述信息,排查问题核心)
kubectl describe pod <pod-name> -n <namespace>  # 查看Pod详细信息(事件、容器、挂载等)
kubectl describe node <node-name>  # 查看节点详情(资源使用、污点、标签)
kubectl describe deploy <deploy-name>  # 查看Deployment详情
 
 

2. 资源操作类(创建 / 删除 / 更新)

 
用于管理资源的生命周期:
 
bash
# 1. 通过YAML文件创建资源(最推荐的方式)
kubectl apply -f <yaml-file>  # 创建/更新资源(幂等,重复执行不会报错)
kubectl create -f <yaml-file>  # 创建资源(非幂等,已存在会报错)# 2. 删除资源
kubectl delete pod <pod-name> -n <namespace>  # 删除单个Pod
kubectl delete deploy <deploy-name> -n <namespace>  # 删除Deployment(会自动删除Pod)
kubectl delete -f <yaml-file>  # 通过YAML文件删除资源
kubectl delete pods --all -n <namespace>  # 删除命名空间下所有Pod# 3. 编辑资源(实时修改配置)
kubectl edit deploy <deploy-name> -n <namespace>  # 编辑Deployment(会自动触发滚动更新)
kubectl edit svc <svc-name> -n <namespace>  # 编辑Service# 4. 扩缩容(调整Deployment的副本数)
kubectl scale deploy <deploy-name> --replicas=3 -n <namespace>  # 缩容/扩容到3个副本# 5. 滚动更新(更新镜像)
kubectl set image deploy <deploy-name> <container-name>=<new-image> -n <namespace>
# 示例:更新nginx-deploy的nginx容器镜像为nginx:1.25
kubectl set image deploy nginx-deploy nginx=nginx:1.25 -n default# 6. 回滚更新(如果更新出问题)
kubectl rollout undo deploy <deploy-name> -n <namespace>  # 回滚到上一版本
kubectl rollout history deploy <deploy-name> -n <namespace>  # 查看更新历史
 
 

3. 调试排障类(定位 Pod / 容器问题)

 
用于排查 Pod 启动失败、运行异常等问题:
 
bash
# 1. 查看Pod日志(核心!-f 实时跟踪,--tail 查看最后N行)
kubectl logs <pod-name> -n <namespace>  # 查看Pod日志(单容器)
kubectl logs <pod-name> -c <container-name> -n <namespace>  # 多容器Pod指定容器
kubectl logs <pod-name> -f -n <namespace>  # 实时跟踪日志(类似tail -f)
kubectl logs <pod-name> --tail=100 -n <namespace>  # 查看最后100行日志# 2. 进入Pod的容器(调试)
kubectl exec -it <pod-name> -n <namespace> -- /bin/bash  # 进入容器(bash)
kubectl exec -it <pod-name> -c <container-name> -n <namespace> -- sh  # 多容器指定容器# 3. 复制文件(Pod ↔ 本地)
kubectl cp <namespace>/<pod-name>:<pod-path> <local-path>  # Pod文件复制到本地
kubectl cp <local-path> <namespace>/<pod-name>:<pod-path>  # 本地文件复制到Pod# 4. 查看Pod的容器状态(排查启动失败)
kubectl get pods <pod-name> -o jsonpath='{.status.containerStatuses}' -n <namespace># 5. 临时运行一个Pod(测试集群网络/环境)
kubectl run -it --rm debug-pod --image=busybox -- sh  # 运行busybox Pod,退出后删除
 
 

4. 集群管理类(节点 / 命名空间 / 权限)

 
bash
# 1. 管理命名空间
kubectl create namespace <ns-name>  # 创建命名空间
kubectl delete namespace <ns-name>  # 删除命名空间
kubectl get namespaces  # 查看所有命名空间# 2. 给节点打标签/污点(调度用)
kubectl label nodes <node-name> env=prod  # 给节点打标签(用于亲和性调度)
kubectl taint nodes <node-name> key=value:NoSchedule  # 给节点加污点(阻止Pod调度)# 3. 查看组件状态(控制平面)
kubectl get componentstatuses  # 查看控制平面组件状态(kube-apiserver/etcd等)# 4. 查看资源使用情况
kubectl top nodes  # 查看节点CPU/内存使用
kubectl top pods -n <namespace>  # 查看Pod CPU/内存使用
 

三、常用快捷技巧

  1. 命令别名:可以给kubectl设置别名(如alias k=kubectl),简化输入;
  2. 自动补全:执行source <(kubectl completion bash)开启 bash 自动补全(永久生效需配置到~/.bashrc);
  3. 简写资源类型:k8s 支持资源类型简写,如podpodeploydeploysvcsvcnsnamespace,示例:kubectl get po -A

总结

  1. 核心组件:控制平面的kube-apiserver/etcd/kube-scheduler是集群 “大脑”,节点组件的kubelet/kube-proxy是集群 “手脚”,缺一不可;
  2. 高频命令:
    • 查看类:kubectl get/describe是日常排查的基础;
    • 操作类:kubectl apply/delete/scale是资源管理核心;
    • 调试类:kubectl logs/exec是定位 Pod 问题的关键;
     
  3. 所有操作优先通过yaml文件(kubectl apply -f)执行,保证操作可追溯、可复用。
http://www.jsqmd.com/news/200997/

相关文章:

  • 2026最新瑜伽面料品牌top5推荐!服务覆盖广东广州义乌福建等地优质公司及厂家选择指南,品质与功能兼具助力服饰产业升级 - 全局中转站
  • 第一章:C语言程序 Pro
  • ZetaChain 跨链原子性解析: 技术机制、生态展望与开发实战
  • 【课程设计/毕业设计】基于机器学习的web网页html版通过CNN卷积神经网络对盆栽识别
  • 大模型产品经理十本经典书籍推荐:从技术原理到商业落地的全方位指南_大模型产品经理必读的十本书籍
  • 商用无忧!企业宣传片免费素材库
  • 深度学习毕设项目:基于深度学习的web网页html版通过CNN卷积神经网络对盆栽识别
  • HTML+CSS制作心跳特效代码
  • 2026本科生必备8个降AI率工具测评榜单
  • 深度学习毕设选题推荐:基于人工智能的web网页html版通过CNN卷积神经网络对盆栽识别
  • 面试必杀:对比 LangGraph 的 `StatefulGraph` 与传统微服务编排(如 Temporal)在处理 LLM 推理时的本质差异
  • 如何使用OpenVINO在Intel显卡上部署PaddleOCR-VL模型
  • 强烈安利10个一键生成论文工具,自考论文写作必备!
  • 【毕业设计】机器学习人工智能基于web网页html版通过CNN卷积神经网络对盆栽识别
  • vue vxe-context-menu 如何给任意组件使用右键菜单,全局右键菜单
  • 深度测评!9个AI论文工具助你搞定毕业论文
  • 深度挑战:设计一个具备‘自省(Self-introspection)’能力的 Agent,它能实时报告自己的 Token 剩余额度并调整思考深度
  • 探讨‘教育辅导机器人’:根据学生的掌握程度,在图中动态生成个性化的知识复习与测试路径
  • IT审计师怎么考?CISA证书报考指南
  • 解析‘智能运维机器人’:通过监控报警触发图执行,自动执行链路排查、日志聚合与临时扩容操作
  • 大模型微调实战指南:八大高效技术路径详解,零基础也能上手轻量化落地
  • 面试必杀:详细描述从用户提问到图结束,中间经历的所有 `__start__` 节点初始化与 `__end__` 状态回收的物理细节
  • 大模型时代AI产品经理转型指南:技能评估、学习路径与实践方法(建议收藏)_2026版最新转型大模型产品经理指南(非常详细)
  • CISA干货|信息系统审计师全解析+备考攻略
  • 深度思考:随着模型推理成本的下降,我们是否应该倾向于‘无限循环的自我修正’而非‘单次高质量推理’?
  • 2.11 保险客户续保预测案例:数据可视化探索,发现业务洞察
  • 面试必杀:什么是 ‘LangGraph Cloud’ 的底层并行架构?它如何处理数万个 Persistent Threads 的并发调度?
  • 2.12 续保预测模型构建:从特征工程到模型训练,完整实战流程
  • 学会这些省电技巧,告别续航焦虑,寒冬跑网约车也能高效运营、安心接单!
  • AI时代知识管理圣经:从零开始构建企业知识库,让大模型真正落地