小牛丨软件测试学习小牛丨软件测试学习
首页
  • 业务测试面试题
  • 数据库测试面试题
  • Linux测试环境面试题
  • 网络协议测试面试题
  • 中间件测试面试题
  • Java测试开发面试题
  • Python测试开发面试题
  • Python自动化面试题
  • Java自动化面试题
  • 性能测试面试题
  • 手撕代码
  • HR面试题
  • 系列总入口
  • 业务测试理论
  • 数据库测试
  • Linux测试环境
  • 网络协议
  • 中间件测试
  • Python编程
  • Java编程
  • 自动化测试
  • 性能测试
  • AI测试
  • HR面试
  • AI测试学习路线
  • AI测试基础面试题
  • 大模型测试面试题
  • AI自动化测开面试题
  • AI Agent测试面试题
  • AI性能与稳定性测试面试题
  • AI应用安全测试面试题
  • 互联网大厂面试真题
  • 互联网中厂面试真题
  • 手机厂商面试真题
  • 通信厂商面试真题
  • 新能源汽车面试真题
  • 银行金融面试真题
  • 项目说明
  • 电商接口文档
  • 实战项目总入口
  • 测试简历编写指南
  • 20K level 简历打磨指南
  • 测试简历模板参考
  • 简历常见问题与避坑
  • 零基础入行专题路径
  • 初中级进阶高级专题路径
  • 零基础小白入行软件测试保姆级学习路线
  • 初中级测试进阶高级测试全路线
首页
  • 业务测试面试题
  • 数据库测试面试题
  • Linux测试环境面试题
  • 网络协议测试面试题
  • 中间件测试面试题
  • Java测试开发面试题
  • Python测试开发面试题
  • Python自动化面试题
  • Java自动化面试题
  • 性能测试面试题
  • 手撕代码
  • HR面试题
  • 系列总入口
  • 业务测试理论
  • 数据库测试
  • Linux测试环境
  • 网络协议
  • 中间件测试
  • Python编程
  • Java编程
  • 自动化测试
  • 性能测试
  • AI测试
  • HR面试
  • AI测试学习路线
  • AI测试基础面试题
  • 大模型测试面试题
  • AI自动化测开面试题
  • AI Agent测试面试题
  • AI性能与稳定性测试面试题
  • AI应用安全测试面试题
  • 互联网大厂面试真题
  • 互联网中厂面试真题
  • 手机厂商面试真题
  • 通信厂商面试真题
  • 新能源汽车面试真题
  • 银行金融面试真题
  • 项目说明
  • 电商接口文档
  • 实战项目总入口
  • 测试简历编写指南
  • 20K level 简历打磨指南
  • 测试简历模板参考
  • 简历常见问题与避坑
  • 零基础入行专题路径
  • 初中级进阶高级专题路径
  • 零基础小白入行软件测试保姆级学习路线
  • 初中级测试进阶高级测试全路线
  • Linux 测试环境精华文章

    • Linux 测试环境精华文章
    • 1. 测试面试常问 Linux 命令怎么准备
    • 2. 日志排查常用命令怎么用
    • 3. grep 查日志面试怎么讲
    • 4. Linux 进程和端口怎么排查
    • 5. 测试环境部署面试怎么讲
    • 6. Linux 文件权限怎么理解
    • 7. Docker 在测试环境中怎么用
    • 8. Docker 日志和容器问题怎么排查
    • 9. K8s 对测试工程师要掌握什么
    • 10. Linux 环境问题定位思路
⌕
🛒项目实战📦资料包🛠测试神器AIAI路线CV简历测评🧭入行测评🧪测开测评🎯训练营🏆案例❤赞赏我

9. K8s 对测试工程师要掌握什么

K8s,也就是 Kubernetes,是现在很多互联网公司用于容器编排和服务部署的平台。测试工程师不一定要像运维或 SRE 一样深入掌握 K8s 架构、调度器、网络插件、存储插件,但如果项目服务部署在 K8s 上,测试至少要知道 Pod、Deployment、Service、Namespace、日志、重启、扩缩容这些基础概念。否则测试环境出问题时,你可能连服务运行在哪、日志怎么看、容器为什么重启都不知道。

面试中问 K8s,通常不是考测试岗位的底层运维能力,而是看你是否适应现代测试环境。你要能讲清楚:K8s 在测试环境中管理容器服务;测试人员主要关注 Pod 状态、服务日志、镜像版本、配置、端口暴露、服务重启和环境隔离;遇到接口异常时,能通过基础命令初步判断问题是在应用、容器、配置、网络还是环境层。

一、测试为什么要懂 K8s

很多团队已经从传统服务器部署,发展到 Docker 容器部署,再到 K8s 管理容器。测试人员可能不负责搭建 K8s 集群,但会接触 K8s 环境下的服务验证和问题排查。

常见场景包括:

  • 测试环境服务部署在 K8s;
  • 接口失败需要查看 Pod 日志;
  • 服务重启导致测试不稳定;
  • 发布后需要确认镜像版本;
  • 多个测试环境用 Namespace 隔离;
  • 服务扩容后要观察多个 Pod 是否正常;
  • Pod CrashLoopBackOff 导致服务不可用;
  • 配置变更后需要确认是否生效。

如果你能看懂这些基础状态,和开发、运维沟通会更顺畅。

二、K8s 基础概念怎么理解

1. Pod

Pod 是 K8s 中最小的运行单元。可以简单理解为一个或多个容器的组合。测试排查服务时,经常先看 Pod 是否正常。

常用命令:

kubectl get pods

如果 Pod 状态不是 Running,就要看原因。

2. Deployment

Deployment 用来管理一组 Pod,负责发布、滚动更新、回滚、副本数量等。

测试可以简单理解为:Deployment 管理某个服务的多个实例。

kubectl get deployments

3. Service

Service 用来提供稳定访问入口。Pod 可能重启、IP 会变,但 Service 可以提供相对稳定的访问方式。

kubectl get svc

4. Namespace

Namespace 用来做环境隔离。比如:

  • dev;
  • test;
  • pre;
  • prod。

测试要确认自己查的是正确命名空间,否则可能看错环境。

kubectl get pods -n test

三、测试常用 kubectl 命令

1. 查看 Pod 状态

kubectl get pods -n test

重点看:

  • STATUS;
  • READY;
  • RESTARTS;
  • AGE。

如果状态是 Running,说明 Pod 正在运行;如果是 CrashLoopBackOff、Error、Pending,就需要排查。

2. 查看 Pod 详细信息

kubectl describe pod pod名称 -n test

可以看到事件、镜像、容器状态、重启原因、调度失败原因等。

3. 查看日志

kubectl logs pod名称 -n test

实时查看:

kubectl logs -f pod名称 -n test

如果 Pod 中有多个容器,需要指定容器名:

kubectl logs pod名称 -c 容器名 -n test

4. 进入 Pod

kubectl exec -it pod名称 -n test -- /bin/bash

如果没有 bash:

kubectl exec -it pod名称 -n test -- /bin/sh

进入后可以查看配置、环境变量、目录和部分运行状态。

四、Pod 状态怎么看

1. Running

Pod 正在运行,但不代表业务接口一定正常。还要看日志和接口冒烟结果。

2. Pending

Pod 还没被调度成功。可能是资源不足、镜像拉取问题、节点异常。

3. CrashLoopBackOff

容器启动后崩溃,然后被 K8s 反复重启。测试环境接口不稳定时,这个状态很常见。

4. ImagePullBackOff

镜像拉取失败。可能是镜像地址错、tag 不存在、仓库权限问题。

5. Error

容器运行异常退出。需要看日志和 describe 事件。

测试不用背所有状态,但要知道状态异常时先看 logs 和 describe。

五、K8s 日志排查怎么做

接口 500 时,如果服务在 K8s 上,可以这样做:

  1. 确认服务所在 Namespace;
  2. kubectl get pods -n test 找到对应 Pod;
  3. 看 Pod 是否 Running,是否有重启;
  4. kubectl logs --tail=200 pod名称 -n test 看最近日志;
  5. 搜索订单号、用户 ID、TraceId 或 ERROR;
  6. 如果 Pod 重启过,查看前一次日志;
  7. kubectl describe pod 看事件和重启原因;
  8. 结合接口响应和业务数据判断问题。

查看前一次容器日志:

kubectl logs pod名称 -n test --previous

这个在容器刚崩溃重启后很有用。

六、发布和版本怎么确认

测试环境发布后,要确认是否部署了正确版本。

可以检查:

  • Deployment 使用的镜像 tag;
  • Pod 创建时间;
  • 应用启动日志中的版本号;
  • 版本接口;
  • Jenkins 构建号;
  • Git commit 信息。

如果测试发现需求没生效,第一步不要急着提 Bug,先确认是不是版本没部署上。

七、扩缩容对测试有什么影响

K8s 可以让一个服务有多个 Pod 副本。比如订单服务有 3 个 Pod。

测试要注意:

  • 多副本是否都部署了新版本;
  • 是否只有某个 Pod 有异常;
  • 日志可能分散在多个 Pod;
  • 请求可能被负载均衡到不同 Pod;
  • 会话或缓存设计不当可能导致偶发问题。

如果问题偶现,要考虑是不是某个 Pod 异常。可以分别查看多个 Pod 日志。

八、配置和环境变量

K8s 中配置常通过 ConfigMap、Secret、环境变量管理。测试要关注:

  • 数据库地址是否是测试库;
  • Redis、MQ 是否是测试环境;
  • 第三方接口是否是测试地址;
  • 配置变更后 Pod 是否重启;
  • 多个 Pod 配置是否一致。

配置错可能导致服务启动成功但业务异常。

九、K8s 常见问题案例

案例 1:Pod CrashLoopBackOff

现象:接口访问失败,Pod 状态 CrashLoopBackOff。

排查:

  1. kubectl get pods -n test;
  2. kubectl logs pod名称 -n test --previous;
  3. 发现数据库连接失败;
  4. 查看配置发现数据库地址写错;
  5. 修复配置后重启发布;
  6. Pod Running,接口冒烟通过。

案例 2:发布后功能没生效

排查:

  1. 查看 Jenkins 构建是否成功;
  2. 查看 Deployment 镜像 tag;
  3. 查看 Pod 创建时间;
  4. 调用版本接口;
  5. 发现 Pod 仍是旧镜像;
  6. 重新发布后回归。

案例 3:接口偶发失败

排查:

  1. 查看服务有多个 Pod;
  2. 分别查看多个 Pod 日志;
  3. 发现其中一个 Pod 配置异常;
  4. 重启或重新发布该 Pod;
  5. 再次压测或多次请求验证。

十、面试回答模板

如果面试官问“K8s 对测试工程师要掌握什么”,可以这样回答:

测试工程师不一定要深入掌握 K8s 底层,但要知道常用概念和排查方法。比如 Pod 是服务运行的基本单元,Deployment 管理服务副本和发布,Service 提供访问入口,Namespace 用来隔离环境。测试中我会用 kubectl get pods 查看服务状态,用 kubectl logs 查看日志,用 kubectl describe pod 查看异常事件,用 kubectl exec 进入 Pod 排查配置。遇到接口异常时,会先确认环境和 Namespace,再看 Pod 是否 Running、是否有重启、日志是否有 ERROR、镜像版本是否正确,最后结合接口和业务数据判断问题。

十一、常见追问

追问:Pod Running 是否代表服务正常?

不一定。Running 只代表容器在运行,还要看应用日志、接口返回、依赖服务和业务冒烟结果。

追问:CrashLoopBackOff 怎么查?

用 kubectl logs --previous 看崩溃前日志,再用 kubectl describe pod 看事件和重启原因。

追问:怎么看是不是部署了新版本?

看镜像 tag、Pod 创建时间、启动日志版本号、版本接口、Jenkins 构建号或 Git commit。

追问:多 Pod 日志怎么看?

分别查看每个 Pod 的日志,尤其是偶发问题,可能只有某个 Pod 异常。

十二、练习清单

  1. 理解 Pod、Deployment、Service、Namespace;
  2. 用 kubectl get pods 查看状态;
  3. 用 kubectl logs 查看日志;
  4. 用 kubectl describe pod 查看事件;
  5. 用 kubectl exec 进入 Pod;
  6. 理解 CrashLoopBackOff;
  7. 理解 ImagePullBackOff;
  8. 确认镜像版本;
  9. 分析多 Pod 偶发问题;
  10. 准备 K8s 测试面试回答。

测试工程师学习 K8s,不是为了替代运维,而是为了能在容器化环境中看懂服务状态、找到日志、判断版本和定位基础环境问题。掌握这些就能应对大多数测试面试和项目排查场景。

配套刷题:

  • Linux测试环境面试题
相关推荐

下一步可以看这些

面试通关软件测试面试通关系列精华文章

把面试题、项目、简历和训练营串成一套求职准备路径。

入行路线零基础入行软件测试专题路径

从测评、学习路线、项目、简历到面试,按顺序入行。

进阶路线初中级测试进阶高级专题路径

接口自动化、性能测试、CI/CD、复杂业务质量保障进阶路线。

AI 方向AI 测试学习路线专题页

大模型评测、RAG 测试、Agent 测试和 AI 自动化路线。

求职结果Offer 案例 / 学员案例展示

看看真实学员 Offer 案例,判断目标和学习投入是否匹配。

资料 / 交流群添加小牛微信

备注:资料、简历、AI 或找工作,领取对应资料或进交流群。

添加小牛微信
Prev
8. Docker 日志和容器问题怎么排查
Next
10. Linux 环境问题定位思路