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命令均遵循统一结构,语法如下:
            
            
              bash
              
              
            
          
          kubectl [操作命令] [资源类型] [资源名称] [可选参数]
        - 操作命令 :如
create(创建)、get(查询)、delete(删除); - 资源类型 :如
pod(可简写为po)、service(可简写为svc)、deployment(可简写为deploy); - 可选参数 :如
-n(指定命名空间)、-o(指定输出格式)、--port(指定端口)。 
2. 帮助查询(高频考点)
通过以下命令查看kubectl所有命令分类与用法,考试中可快速检索遗忘命令:
            
            
              bash
              
              
            
          
          # 查看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的外部访问与负载均衡,是"服务发现"能力的核心命令。
命令示例:
            
            
              bash
              
              
            
          
          # 为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)。
验证结果:
            
            
              bash
              
              
            
          
          # 查看创建的Service,确认端口映射
kubectl get svc nginx-svc
        3. 故障排除与调试命令(CKA重点)
(1)查看资源详情:kubectl describe
用于查看资源的详细状态(如事件、容器日志、挂载信息),是排查Pod启动失败、Service绑定异常的核心命令。
命令示例:
            
            
              bash
              
              
            
          
          # 查看nginx-pod的详细信息(含事件日志)
kubectl describe pod nginx-pod
        - 关键信息:
Events(事件日志,如"镜像拉取失败""调度失败")、Containers(容器状态、镜像信息)、Volumes(存储挂载情况)。 
(2)查看容器日志:kubectl logs
查看Pod内容器的运行日志,用于排查应用业务逻辑错误。
命令示例:
            
            
              bash
              
              
            
          
          # 查看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容器内部,执行命令(如查看文件、测试网络),是调试容器内应用的关键命令。
命令示例:
            
            
              bash
              
              
            
          
          # 进入nginx-pod的容器,启动bash终端
kubectl exec -it nginx-pod -- /bin/bash
        -it:-i(保持标准输入打开)+-t(分配伪终端),缺一不可;--:分隔kubectl命令与容器内命令,后面跟容器内要执行的命令(如/bin/bash)。
容器内常用操作:
            
            
              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命令补全,提升输入效率:bash# 临时开启(当前终端有效) 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%以上的操作型题目,为证书获取奠定核心基础。