k8s笔记03-常用操作命令
Kubernetes(K8s)核心命令与CKA考试重点笔记
一、K8s命令的重要性与CKA考试关联
1. 命令在CKA考试中的占比
- CKA考试共17道题,其中11道题可通过K8s命令+Linux基础命令直接完成(无需编写YAML),6道题需结合K8s命令与资源对象配置完成。
- 熟练掌握核心命令是通过CKA考试的关键,需优先攻克高频命令的用法与场景。
2. K8s命令体系
K8s操作以kubectl
命令为核心,辅以少量Linux基础命令,kubectl
命令可分为7大类,其中标红部分为CKA考试必掌握命令:
- 基本命令(增删改查核心操作)
- 部署命令(应用部署与更新)
- 集群管理命令(节点、资源管理)
- 故障排除与调试命令(日志、容器交互)
- 高级命令(滚动更新、扩缩容)
- 设置命令(标签、注解配置)
- 其他命令(API查询、配置查看)
二、kubectl
命令基础格式与帮助查询
1. 基本格式
所有kubectl
命令均遵循统一结构,语法如下:
kubectl [操作命令] [资源类型] [资源名称] [可选参数]
- 操作命令:如
create
(创建)、get
(查询)、delete
(删除); - 资源类型:如
pod
(可简写为po
)、service
(可简写为svc
)、deployment
(可简写为deploy
); - 可选参数:如
-n
(指定命名空间)、-o
(指定输出格式)、--port
(指定端口)。
2. 帮助查询(高频考点)
通过以下命令查看kubectl
所有命令分类与用法,考试中可快速检索遗忘命令:
# 查看kubectl完整帮助文档
kubectl -h
# 查看特定命令的详细用法(如get命令)
kubectl get -h
- 帮助文档将命令分为“初学者命令”“进阶部署命令”“故障排除命令”等类别,与实际考试场景高度匹配。
三、kubectl
核心命令实操(CKA必掌握)
1. 基本命令:增删改查(高频必考)
(1)创建资源:kubectl create
/ kubectl run
用于创建Pod、Service等资源,支持“通过YAML文件创建”和“直接命令行创建”两种方式。
操作场景 | 命令示例 | 说明 |
---|---|---|
通过YAML文件创建Pod | kubectl create -f nginx-pod.yaml | 需提前编写YAML配置文件,适用于复杂资源定义 |
直接命令行创建Pod | kubectl run nginx-pod --image=nginx:1.14.2 | 快速创建单容器Pod,--image 指定镜像版本 |
预生成YAML模板(不实际创建) | kubectl run nginx-pod --image=nginx:1.14.2 --dry-run=client -o yaml > nginx-pod.yaml | --dry-run=client 仅生成模板不执行,-o yaml 指定输出为YAML格式,用于快速生成配置文件 |
(2)查询资源:kubectl get
最常用命令,用于查看资源的运行状态、IP、端口等信息,支持多种输出格式。
操作场景 | 命令示例 | 说明 |
---|---|---|
查看所有Pod(默认命名空间) | kubectl get pods (或简写kubectl get po ) | 显示Pod名称、就绪状态、重启次数、运行时间 |
查看指定命名空间的Pod | kubectl get po -n kube-system | -n kube-system 指定命名空间为kube-system (系统命名空间) |
查看Pod详细信息(宽格式) | kubectl get po -o wide | 额外显示Pod的IP地址、调度节点(Node) |
查看Pod的YAML配置 | kubectl get po nginx-pod -o yaml | 显示资源的完整YAML定义,用于排查配置问题 |
查看Service(简写) | kubectl get svc | 查看所有Service的名称、类型、集群IP、端口 |
(3)更新资源:kubectl set
/ kubectl edit
用于修改已创建资源的配置(如镜像版本、资源限制)。
操作场景 | 命令示例 | 说明 |
---|---|---|
修改Pod的镜像版本 | kubectl set image pod nginx-pod nginx-pod=nginx:1.16.1 | 格式:kubectl set image [资源类型] [资源名称] [容器名]=[新镜像] |
直接编辑资源YAML | kubectl edit pod nginx-pod | 打开默认编辑器(如vi)修改YAML配置,保存后自动生效,适用于复杂配置修改 |
(4)删除资源:kubectl delete
用于删除Pod、Service、Deployment等资源,支持按名称或YAML文件删除。
操作场景 | 命令示例 | 说明 |
---|---|---|
删除指定Pod | kubectl delete pod nginx-pod | 按资源名称删除,立即终止Pod |
删除指定Service | kubectl delete svc nginx-svc | 删除Service,断开后端Pod的访问入口 |
通过YAML文件删除资源 | kubectl delete -f nginx-pod.yaml | 与create -f 对应,删除YAML文件定义的资源 |
删除所有Pod(谨慎使用) | kubectl delete pod --all | 删除当前命名空间下的所有Pod,测试环境常用 |
2. 部署命令:服务暴露与实例管理
(1)暴露Service:kubectl expose
将Pod的端口暴露为Service,实现Pod的外部访问与负载均衡,是“服务发现”能力的核心命令。
命令示例:
# 为nginx-pod暴露Service,Service端口80,映射到Pod的80端口
kubectl expose pod nginx-pod --port=80 --target-port=80 --name=nginx-svc
--port
:Service对外暴露的端口(集群内访问端口);--target-port
:Pod内部的容器端口(需与Pod的containerPort
一致);--name
:指定Service的名称(如nginx-svc
)。
验证结果:
# 查看创建的Service,确认端口映射
kubectl get svc nginx-svc
3. 故障排除与调试命令(CKA重点)
(1)查看资源详情:kubectl describe
用于查看资源的详细状态(如事件、容器日志、挂载信息),是排查Pod启动失败、Service绑定异常的核心命令。
命令示例:
# 查看nginx-pod的详细信息(含事件日志)
kubectl describe pod nginx-pod
- 关键信息:
Events
(事件日志,如“镜像拉取失败”“调度失败”)、Containers
(容器状态、镜像信息)、Volumes
(存储挂载情况)。
(2)查看容器日志:kubectl logs
查看Pod内容器的运行日志,用于排查应用业务逻辑错误。
命令示例:
# 查看nginx-pod的日志
kubectl logs nginx-pod
# 实时查看日志(类似tail -f)
kubectl logs nginx-pod -f
# 查看多容器Pod中指定容器的日志(如容器名为"app")
kubectl logs nginx-pod -c app
(3)进入容器交互:kubectl exec
进入运行中的Pod容器内部,执行命令(如查看文件、测试网络),是调试容器内应用的关键命令。
命令示例:
# 进入nginx-pod的容器,启动bash终端
kubectl exec -it nginx-pod -- /bin/bash
-it
:-i
(保持标准输入打开)+-t
(分配伪终端),缺一不可;--
:分隔kubectl
命令与容器内命令,后面跟容器内要执行的命令(如/bin/bash
)。
容器内常用操作:
# 查看容器内文件
ls /usr/share/nginx/html
# 测试网络连通性
ping baidu.com
# 查看容器内进程
ps aux
四、CKA考试命令使用技巧
-
资源类型简写:考试中使用简写可节省时间,常见简写如下:
pod
→po
、service
→svc
、deployment
→deploy
、namespace
→ns
;- 示例:
kubectl get po
(替代kubectl get pods
)。
-
输出格式选择:
- 快速查看状态用默认格式(
kubectl get po
); - 需IP、节点信息用宽格式(
-o wide
); - 需配置详情用YAML格式(
-o yaml
)。
- 快速查看状态用默认格式(
-
命名空间指定:
- 考试中部分题目指定命名空间(如
dev
),需在命令后加-n dev
,避免操作默认命名空间导致失分; - 示例:
kubectl get po -n dev
。
- 考试中部分题目指定命名空间(如
-
命令补全(可选配置):
考试环境若支持,可开启kubectl
命令补全,提升输入效率:# 临时开启(当前终端有效) source <(kubectl completion bash) # 永久开启(需重启终端) echo "source <(kubectl completion bash)" >> ~/.bashrc
五、总结
- 核心优先级:
kubectl get
/create
/delete
/expose
/describe
/logs
/exec
是CKA考试高频命令,需做到“无文档熟练输入”; - 实操为王:命令需结合实际场景练习(如创建Pod→暴露Service→查看日志→删除资源),避免死记硬背;
- 考试技巧:善用
kubectl -h
查询帮助,优先使用简写与指定输出格式,确保命令执行效率与准确性。
通过以上命令的熟练掌握,可覆盖CKA考试中70%以上的操作型题目,为证书获取奠定核心基础。