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命令均遵循统一结构,语法如下:

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考试命令使用技巧

  1. 资源类型简写:考试中使用简写可节省时间,常见简写如下:

    • podposervicesvcdeploymentdeploynamespacens
    • 示例:kubectl get po(替代kubectl get pods)。
  2. 输出格式选择

    • 快速查看状态用默认格式(kubectl get po);
    • 需IP、节点信息用宽格式(-o wide);
    • 需配置详情用YAML格式(-o yaml)。
  3. 命名空间指定

    • 考试中部分题目指定命名空间(如dev),需在命令后加-n dev,避免操作默认命名空间导致失分;
    • 示例:kubectl get po -n dev
  4. 命令补全(可选配置)

    考试环境若支持,可开启kubectl命令补全,提升输入效率:

    bash 复制代码
    # 临时开启(当前终端有效)
    source <(kubectl completion bash)
    # 永久开启(需重启终端)
    echo "source <(kubectl completion bash)" >> ~/.bashrc

五、总结

  1. 核心优先级kubectl get/create/delete/expose/describe/logs/exec是CKA考试高频命令,需做到"无文档熟练输入";
  2. 实操为王:命令需结合实际场景练习(如创建Pod→暴露Service→查看日志→删除资源),避免死记硬背;
  3. 考试技巧 :善用kubectl -h查询帮助,优先使用简写与指定输出格式,确保命令执行效率与准确性。

通过以上命令的熟练掌握,可覆盖CKA考试中70%以上的操作型题目,为证书获取奠定核心基础。