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

kubectl常用命令

kubectl常用命令

kubectl是Kubernetes集群的核心命令行管理工具,用于部署、管理和调试集群中的资源(如Pod、Deployment、Service等)。以下是日常使用中最常用的命令分类整理:

一、基础命令

1. 查看集群信息

• 查看集群基本信息:kubectl cluster-info

输出集群控制平面(Control Plane)的API服务器地址、CoreDNS服务地址等关键信息,帮助确认集群是否正常运行。
• 查看客户端与服务端版本:kubectl version --short=true

显示kubectl客户端版本和Kubernetes服务端版本,确保版本兼容性(如客户端版本通常不低于服务端版本的1个小版本)。

2. 查看资源对象

• 查看Pod列表:kubectl get pods [-n 命名空间] [-o wide]

默认显示当前命名空间下的Pod名称、状态、重启次数、年龄;-n指定命名空间(如-n kube-system查看系统Pod);-o wide显示额外信息(如Pod所在节点)。
• 查看Deployment列表:kubectl get deployments [-n 命名空间]

显示Deployment名称、副本数、更新策略、可用副本数等,是管理无状态应用的关键资源。
• 查看Service列表:kubectl get services [-n 命名空间]

显示Service名称、类型(ClusterIP/NodePort/LoadBalancer)、端口映射、关联的Pod选择器(Selector)。
• 查看所有资源:kubectl get all [-n 命名空间]

快速查看当前命名空间下的Pod、Service、Deployment、ReplicaSet等常见资源,简化操作。

3. 查看资源详情

• 查看Pod详细信息:kubectl describe pod <pod-name> [-n 命名空间]

输出Pod的事件(如调度、拉取镜像、启动容器)、容器状态、资源请求/限制、节点信息等,是排查Pod问题的核心命令(如Pod卡在Pending状态时,可通过此命令查看事件原因)。
• 查看Deployment详细信息:kubectl describe deployment <deployment-name> [-n 命名空间]

显示Deployment的副本数、更新策略、滚动更新状态、关联的ReplicaSet等,帮助了解应用部署情况。
• 查看Service详细信息:kubectl describe service <service-name> [-n 命名空间]

输出Service的端口映射、关联的Pod Endpoints(即Pod IP:Port列表)、选择器匹配的Pod数量等,确认Service是否正常转发流量。

4. 查看日志与执行命令

• 查看Pod容器日志:kubectl logs <pod-name> [-c 容器名称] [-n 命名空间]

默认显示Pod中第一个容器的日志;-c指定容器名称(适用于多容器Pod);-n指定命名空间。
• 实时查看日志:kubectl logs -f <pod-name> [-c 容器名称] [-n 命名空间]

类似Linux的tail -f命令,实时输出容器日志,用于监控应用运行状态(如查看Nginx访问日志)。
• 进入容器执行命令:kubectl exec -it <pod-name> -- /bin/bash [-c 容器名称] [-n 命名空间]

-it表示交互模式(分配伪终端);--后跟要执行的命令(如/bin/bash进入容器终端,ls /查看容器内文件);-c指定容器名称(多容器Pod必用);-n指定命名空间。

二、创建与管理资源

1. 创建资源

• 通过YAML文件创建:kubectl create -f <resource-file.yaml>

从YAML文件(如pod.yamldeployment.yaml)创建资源,是Kubernetes推荐的声明式管理方式(YAML文件需符合Kubernetes API规范)。
• 快速创建Pod:kubectl run <pod-name> --image=<image-name> [--port=<port>]

快速创建一个Pod(不推荐用于生产环境,仅用于测试),--image指定镜像名称(如nginx:1.25),--port指定容器端口(可选)。
• 暴露服务:kubectl expose deployment <deployment-name> --port=<service-port> --target-port=<pod-port> --type=<service-type> [-n 命名空间]

将Deployment暴露为Service,--port是Service的端口(对外暴露),--target-port是Pod的端口(应用监听端口),--type指定服务类型(ClusterIP默认,NodePort对外暴露,LoadBalancer云厂商负载均衡)。

2. 更新资源

• 设置镜像版本:kubectl set image deployment/<deployment-name> <container-name>=<new-image>:<tag> [-n 命名空间]

更新Deployment中指定容器的镜像版本(如kubectl set image deployment/nginx nginx=nginx:1.26),触发滚动更新(自动替换旧Pod)。
• 调整副本数量:kubectl scale deployment <deployment-name> --replicas=<number> [-n 命名空间]

扩容或缩容Deployment的副本数(如kubectl scale deployment/nginx --replicas=5将副本数调整为5),适用于应对流量波动。
• 自动扩缩容:kubectl autoscale deployment <deployment-name> --min=<min-replicas> --max=<max-replicas> --cpu-percent=<threshold> [-n 命名空间]

开启Horizontal Pod Autoscaler(HPA),根据CPU利用率自动调整副本数(如--min=2 --max=10 --cpu-percent=80表示CPU利用率超过80%时,自动扩容至最多10个副本)。

3. 删除资源

• 删除资源:kubectl delete <resource-type> <resource-name> [-n 命名空间]

删除指定资源(如kubectl delete pod/nginx删除名为nginx的Pod,kubectl delete deployment/nginx删除名为nginx的Deployment)。
• 按标签删除:kubectl delete <resource-type> -l <label-key>=<label-value> [-n 命名空间]

通过标签选择器批量删除资源(如kubectl delete pod -l app=nginx删除所有带有app=nginx标签的Pod),适用于管理有共同特征的Pod。

三、集群管理

1. 节点管理

• 查看节点列表:kubectl get nodes

显示集群中所有节点的名称、状态(Ready/NotReady)、角色(master/worker)、年龄等。
• 标记节点不可调度:kubectl cordon <node-name>

将节点标记为“不可调度”(SchedulingDisabled),新Pod不会调度到该节点,适用于节点维护前的准备。
• 恢复节点可调度:kubectl uncordon <node-name>

取消节点的“不可调度”标记,新Pod可以调度到该节点。
• 驱赶节点上的Pod:kubectl drain <node-name> [--ignore-daemonsets]

驱赶节点上的所有Pod到其他可用节点(--ignore-daemonsets忽略DaemonSet管理的Pod,如日志采集组件),通常与cordon一起使用,用于节点维护。

2. 标签与选择器

• 查看节点标签:kubectl get nodes --show-labels

显示节点的所有标签(如disktype=ssdregion=us-east),标签用于资源分组和调度。
• 给节点打标签:kubectl label nodes <node-name> <label-key>=<label-value>

给节点添加标签(如kubectl label nodes node-01 disktype=ssd),可用于调度Pod到指定类型的节点(如nodeSelector: {disktype: ssd})。
• 删除节点标签:kubectl label nodes <node-name> <label-key>-

删除节点的指定标签(如kubectl label nodes node-01 disktype-)。

四、故障排查

1. 查看资源状态详情

• 查看Pod状态:kubectl describe pod <pod-name> [-n 命名空间]

通过事件日志(Events)查看Pod无法创建的原因(如镜像拉取失败、资源不足、调度失败),是排查Pod问题的第一步。
• 查看Deployment状态:kubectl describe deployment <deployment-name> [-n 命名空间]

查看Deployment的滚动更新状态、副本数是否符合预期、是否有容器重启等,帮助排查应用部署问题。

2. 回滚部署

• 查看部署历史:kubectl rollout history deployment <deployment-name> [-n 命名空间]

显示Deployment的历史版本(每次更新都会生成一个版本),帮助确定回滚的目标版本。
• 回滚到上一个版本:kubectl rollout undo deployment <deployment-name> [-n 命名空间]

回滚到上一个稳定版本(如kubectl rollout undo deployment/nginx)。
• 回滚到指定版本:kubectl rollout undo deployment <deployment-name> --to-revision=<revision-number> [-n 命名空间]

回滚到指定版本(如kubectl rollout undo deployment/nginx --to-revision=3回滚到第3个版本)。


文章转载自:

http://Pi46RQYY.rtsgx.cn
http://JzvrHEPG.rtsgx.cn
http://gVbHx0AJ.rtsgx.cn
http://GjqeAnhK.rtsgx.cn
http://VJj0iF0S.rtsgx.cn
http://7N0M6SZ3.rtsgx.cn
http://o6ozjjoB.rtsgx.cn
http://qn6lkYxC.rtsgx.cn
http://SbLbkR9X.rtsgx.cn
http://etT9KsUP.rtsgx.cn
http://s7GzfUdY.rtsgx.cn
http://D5xhhphj.rtsgx.cn
http://El0p3xkJ.rtsgx.cn
http://MW0lkNUC.rtsgx.cn
http://rzqTYuzP.rtsgx.cn
http://lXwzOOm1.rtsgx.cn
http://rw402Bgb.rtsgx.cn
http://mK8orWUc.rtsgx.cn
http://fg5iBDok.rtsgx.cn
http://Fuu4CdDU.rtsgx.cn
http://Z6bYvKdj.rtsgx.cn
http://3cfvrQQC.rtsgx.cn
http://ZOOBOgy5.rtsgx.cn
http://6EKgZKXI.rtsgx.cn
http://x06zcdUW.rtsgx.cn
http://TTmWaEgP.rtsgx.cn
http://Cd0zubTd.rtsgx.cn
http://CI1uRwes.rtsgx.cn
http://tIdYwgC1.rtsgx.cn
http://ySwcvGFP.rtsgx.cn
http://www.dtcms.com/a/380065.html

相关文章:

  • MinIO 分布式模式与纠删码
  • linux 宏 DEVICE_ATTR
  • 代码随想录刷题Day56
  • Ansible的 Playbook 模式详解
  • Qt 调用setLayout后,父对象自动设置
  • 现在中国香港服务器速度怎么样?
  • 用python的socket写一个局域网传输文件的程序
  • CentOS配置vsftpd服务器
  • 华为初级认证培训需要吗?HCIA考试考什么内容?自学还是报班?
  • 系统核心解析:深入操作系统内部机制——进程管理与控制指南(二)【进程状态】
  • KafKa02:Kafka配置文件server.properties介绍
  • 【LeetCode 每日一题】3459. 最长 V 形对角线段的长度
  • Linux系统之----信号中断(下)
  • 【C++】模板进阶:非类型参数、模板特化与分离编译
  • 使用OmniAvatar-14B模型实现照片和文字生成视频的完整指南
  • Redis缓存雪崩
  • 复习Git在IDEA中的关键操作
  • IntelliJ IDEA git凭据帮助程序
  • 【Docker】P3 入门指南:运维与开发双重视角
  • Mac安装hadoop
  • 租房平台|租房管理平台小程序系统|基于java的租房系统 设计与实现(源码+数据库+文档)
  • Linux 深入理解权限
  • SQL Server 中的 STUFF 函数与FOR XML PATH详解
  • 配置自签证书多域名的动态网站+部署http的repo仓库+基于nfs与yum仓库的http部署
  • React学习教程,从入门到精通,React AJAX 语法知识点与案例详解(18)
  • Go语言详细指南:特点、应用场景与开发工具
  • vue el-cascader级联选择器-地区三级选择问题记录
  • 《机器人抓取:从经典到现代的综述》内容的提取和凝练:
  • 【ZEGO即构开发者日报】微信公众号上线“智能回复”功能;2025年8月中国应用/游戏厂商出海收入Top30榜;土耳其宣布将封禁29款社交/社媒应用……
  • qt QAreaLegendMarker详解