news 2026/6/17 2:13:01

kubectl 全部命令:像教10岁小孩玩“遥控器+通讯录“一样记住

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
kubectl 全部命令:像教10岁小孩玩“遥控器+通讯录“一样记住

🎮 kubectl 全部命令:像教10岁小孩玩"遥控器+通讯录"一样记住


先记住一句话(官方语法)

kubectl [动作] [对象类型] [对象名字] [附加条件...]

官方写的是:kubectl command TYPE NAME flags

翻译成小孩话就是:

"前台总机(kubectl)→ 你说:对什么类型的东西(TYPE)→ 叫什么名字(NAME)→ 做什么事(command)→ 带上什么条件(flags)"


一、kubectl 本质 = 一个电话机,不是魔法

你在终端敲kubectl,它做的事只有一件:

把你的话翻译成 HTTP 请求 → 打到 API Server(大楼前台总机)→ 前台查档案(etcd)→ 控制器们去干活

所以你每次敲命令,脑子里就放一张图:

你 → kubectl → [打电话给] → API Server → etcd(记录) → 控制器(执行)

二、拆开一条命令的"四节车厢"模型

以你最常用的为例:

kubectl get pods -n apps -o wide

车厢①:kubectl​ = 电话机本身(你拿起话筒)

车厢②:get​ = 动作(command)

"我要看清单。"

动作动词

大楼里什么意思

什么时候用

get

"给我列一下清单"

99%的起始操作

describe

"把这页病历念一遍(含事件)"

Pod 起不来 / 看哪里卡了

apply -f

"按这份说明书,把大楼改成这样"

日常主力(声明式)

delete

"撤掉"

清理

logs

"把店员的小本子念给我听"

看输出

exec

"走到推车边,掀帘子跟店员说话"

紧急排障

port-forward

"从外面拉一根临时对讲机线进来"

本地浏览器临时访问

scale

"改排班人数"

扩/缩

rollout

"换菜单进度/撤回"

升级管理

edit

"当场改说明书写错的地方"

应急微调

官方的分组精神也是这样分的:查看 → 创建更新 → 调试 → 集群配置

车厢③:pods(或po) = 对象类型(TYPE)

"你说的是哪类东西?Pod?Service?Deployment?Node?"

你写的

官方 TYPE

简写

大楼里指

pods

Pod

po

推车(最小干活单元)

deployments

Deployment

deploy

区域经理

services

Service

svc

总机电话

nodes

Node

no

机器/工作台

namespaces

Namespace

ns

房间号

configmaps

ConfigMap

cm

便利贴

secrets

Secret

sec

密封信封

ingress

Ingress

ing

导览规则纸

⚠️大小写不敏感,而且pods / pod / po三个都能用,kubectl会帮你认出来

车厢④:my-pod(可选)​ = 名字(NAME)

"具体哪一个?不说名字 = 全部"

kubectl get pods # 不写名字 → 看全部 kubectl get pods app1-xxx # 写名字 → 只看它

附加条件:-n apps -o wide​ = flags(旗帜/开关)

"顺便带上的条件:在哪个房间?要多列吗?输出成 YAML 吗?"


三、flags(那些-n/-o/-f/-l到底怎么记?)

不要死背。把它们分成4 个抽屉,每个抽屉里只有 3~5 个你天天用的:

抽屉A:「你在敲哪个房间?」—— namespace 系

旗子

人话

例子

-n apps--namespace apps

"去apps 房间里找/做事"

kubectl get pods -n apps

-A--all-namespaces

"所有房间一起看"(注意:短写是大写A,不是小写)

kubectl get pods -A

⚠️ 忘了写-n,kubectl 默认去default 房间——这就是为什么你之前 app1 全在default里(不是故意的,只是没指定)

抽屉B:「你想看多详细?」—— output 系

旗子

人话

例子

-o wide

"多给几列(IP / Node 这种)"

kubectl get pods -o wide

-o yaml

"给我看它的完整档案(YAML原文)"

kubectl get pod app1-xxx -o yaml

-o json

"给我看 JSON 版档案"

kubectl get pod app1-xxx -o json

--show-labels

"把贴纸(labels)也列出来"

kubectl get pods --show-labels

抽屉C:「从哪里读说明书?」—— file 系

旗子

人话

例子

-f nginx.yaml

"按这份文件执行"

kubectl apply -f nginx.yaml

-f ./dir/

"按这个文件夹里所有文件执行"

kubectl apply -f ./k8s/

-f=file,记住这一个字母就够

抽屉D:「筛选/过滤」—— selector 系

旗子

人话

例子

-l app=app1

"只显示胸前贴纸写app=app1的"

kubectl get pods -l app=app1

--field-selector status.phase=Running

"按运行状态筛"

kubectl get pods --field-selector status.phase=Running


四、"命令组合"到底是什么意思?—— 不是背单词,是搭积木

所谓"组合",就是:一个动作 → 接不同的 TYPE → 带不同的 flags,骨架永远不变:

kubectl [动作] [TYPE] [名字?] [-n?] [其他flags]

举几个你一看就懂的组合:

组合①:日常三板斧(占你 80% 操作)

# 1. 先看有什么 kubectl get pods -n apps kubectl get pods -A # 所有房间扫一眼 # 2. 不对劲?看病历(重点看底部 Events) kubectl describe pod app1-xxx -n apps # 3. 看店员写了啥日志 kubectl logs app1-xxx -n apps kubectl logs -f app1-xxx -n apps # -f = 跟着看(直播) kubectl logs --tail=100 app1-xxx -n apps # 只看最后100行

组合②:进推车里(排障专用)

# 掀开帘子聊天 kubectl exec -it app1-xxx -n apps -- /bin/sh # ↑ ↑ ↑ ↑ # stdin TTY Pod名字 房间 分隔符(必须写两个横杠)

这里的--​ 超级重要——它是一条分界线

  • --左边:给 kubectl 看的参数

  • --右边:给容器里的命令看的

忘了写--有时会诡异报错,记住"两个横杠=把话筒递过去"

组合③:拉临时对讲机(本地调试神器)

# 你浏览器 → localhost:8080 → Pod的80 kubectl port-forward -n apps pod/app1-xxx 8080:80 # 或更常用:直接forward到Service kubectl port-forward -n apps svc/app1-service 8080:80

然后浏览器开http://localhost:8080/app1——不走 Ingress,不碰防火墙,纯本地

组合④:改排班数

kubectl scale deployment app1-deployment --replicas=3 -n apps

组合⑤:换菜单(镜像升级)→ 看进度 → 翻车就撤

kubectl set image deployment/app1-deployment app1=myimage:v2 -n apps kubectl rollout status deployment/app1-deployment -n apps # 翻车了: kubectl rollout undo deployment/app1-deployment -n apps

五、记忆法:不是背表,是"造三个心理锚点"

锚点1️⃣:所有命令都长得像一句英语

kubectl [看/改/删] [什么东西] [叫啥名?] [在哪间房?]

只要你念出来:

  • "kubectlget(拿)pods(推车清单)在哪?(-n apps)"

  • "kubectllogs(日志)app1-xxx(哪个推车)在哪?(-n apps)"

大脑就不需要背了,语法自己长出来

锚点2️⃣:flags 按"常用前缀字母"分组

前缀

联想

例子

-n

Namespace(房间号)

-n apps

-o

Output(输出格式)

-o wide / -o yaml

-f

File(文件)

-f xxx.yaml

-l

Label(贴纸)

-l app=app1

-A

All-namespaces

大写A!

看到-A就想到"All房间",看到-n就想到"N号房"

锚点3️⃣:忘了参数?永远的救命稻草

kubectl -h # 总帮助 kubectl get -h # get 这个动作有哪些参数+例子 kubectl logs -h # logs 有哪些参数(--tail / --since / -p 全在这)

官方文档也明确说了:不确定就加-h/--help,它会直接给你 Usage + Examples


六、你最可能用的"一条龙排障组合"(肌肉记忆)

# ① 扫一眼全楼 kubectl get pods -A --show-labels # ② 找到可疑的 → 看它的"病历本"(底部 Events 是金矿) kubectl describe pod app1-xxx -n apps # ③ 看它在嘟囔什么 kubectl logs app1-xxx -n apps kubectl logs -f --tail=200 app1-xxx -n apps # ④ 实在不行,掀帘子进去 kubectl exec -it app1-xxx -n apps -- /bin/sh # ⑤ 改完了?看它活没活 kubectl get pods -n apps -w # -w = watch(实时刷新)

七、一个防坑小抄(为什么你某些命令"好像没生效")

症状

原因

修法

明明创建了,但kubectl get pods看不到

忘了-n,去看了 default 房间

-n appskubectl config set-context --current --namespace=apps

exec报错"not found"/"not executable"

有的镜像没/bin/bash,只有/bin/sh

-- /bin/sh

logs说没内容

容器启动失败(CrashLoopBackOff)→ 要加--previous

kubectl logs app1-xxx -n apps --previous

apply 后没变化

YAML 改了不可变字段 / 或改的是 labels 但没改 template

kubectl rollout restart deploy ...强刷


最后一句话收口:kubectl 不是咒语集,它就是一把结构化电话机动作→什么→叫谁→带什么条件,骨架5个字就够用,其余全是翻帮助(-h)和练手感。你要我下一步把这套东西做成一个双面速查卡(正面:命令骨架+4个抽屉;背面:你的集群真实输出逐行翻译)?

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/17 2:10:49

geo优化系统源码部署流程分享

Geo优化系统源码部署流程环境准备确保服务器或本地开发环境满足以下条件:操作系统推荐使用Linux(如Ubuntu 20.04)或Windows Server 2016,安装JDK 11、MySQL 8.0、Redis 6.0及Nginx/Apache。硬件建议配置4核CPU、8GB内存、100GB存储…

作者头像 李华
网站建设 2026/6/17 2:09:42

Java毕设选题推荐:基于 SpringBoot 的计算思维训练与 AI 学习资源平台设计 面向学习者的人工智能知识科普网站设计与实现【附源码、mysql、文档、调试+代码讲解+全bao等】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/6/17 2:07:45

每家企业都能构建自己的AI数字员工|向量空间JBoltAI

当企业开始接入大模型之后,下一步该往哪走?这个问题在2026年变得格外清晰:不是让AI回答更多问题,而是让AI真正动手干活。JBoltAI平台在V4.5.0版本中正式上线了企业智能体中心(Agent Center),这一…

作者头像 李华
网站建设 2026/6/17 1:37:59

基于状态机的PIC单片机SPI EEPROM非阻塞驱动设计与实现

1. 项目概述与核心价值最近在做一个基于PIC单片机的数据记录仪项目,需要频繁、可靠地存储一些配置参数和运行日志。直接使用单片机内部的Flash虽然方便,但存在擦写次数有限、操作复杂容易出错的问题。于是,我自然而然地想到了外挂一颗SPI接口…

作者头像 李华
网站建设 2026/6/17 1:35:27

功能安全工程实践:从ISO 26262标准到SafeAssure解决方案深度解析

1. 功能安全:从“黑匣子”到工程化实践的深度拆解在汽车电子和工业控制领域摸爬滚打了十几年,我亲眼见证了“功能安全”从一个只有少数专家才懂的“黑匣子”术语,变成了如今每个嵌入式工程师都绕不开的必修课。简单来说,功能安全的…

作者头像 李华
网站建设 2026/6/17 1:31:35

华硕笔记本终极优化指南:告别卡顿与耗电的完整解决方案

华硕笔记本终极优化指南:告别卡顿与耗电的完整解决方案 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vivobook, Zenbook, E…

作者头像 李华