矩阵起源 运维实习 面经

运维实习生一面(25年9月)

面试流程

自我介绍与背景

向面试官介绍了自己是某高校计算机专业的应届毕业生,技术方向是自动化运维。

在之前的实习中,我主要负责:

  1. 使用Shell脚本来管理本地的KVM虚拟环境。
  2. 通过Python调用主流云厂商的API,将云资源成本和配置信息汇总并写入数据库。
  3. 主导开发了针对GitLab Merge Request的代码质量自动检测工具。
技术知识考察

面试官在听完我的介绍后,开始对我进行技术知识的考察,问题由浅入深,覆盖了Linux、Docker和Kubernetes。

Linux基础

  • :你用过哪些Linux发行版?
    • :实习时主要用CentOS系,自己平时用的是Debian。
  • :如何查看系统内核版本?
    • uname -a
  • :如何查看CPU信息?
    • :可以通过cat /proc/cpuinfo查看,也可以用lscpu命令。
  • :怎么查看网络端口的监听情况?
    • :可以用lsof或者ss命令。
  • :如何修改文件权限?
    • :使用chmod命令,例如chmod +x filename来添加执行权限。
  • :如何统计一个文件的行数?
    • :当时有点忘了,回答说可以用vim打开文件然后看行号。面试官追问文件很大的情况,我意识到这个方法不妥。(正确答案应为 wc -l)。

Docker

  • :Docker和虚拟机的区别是什么?
    • :主要区别在于内核共享。Docker通过Cgroups和Namespace实现资源隔离,与宿主机共享内核,启动快、开销小。而像KVM这样的传统虚拟机,则是通过Hypervisor创建包含独立内核的完整虚拟硬件,隔离性更强,但更重。
  • :如何构建一个Docker镜像?
    • :编写Dockerfile,在其中定义基础镜像、拷贝文件、执行命令等步骤,然后使用docker build命令来构建。
  • ENTRYPOINTCMD的区别?
    • :这里我回答得不太准确。后来查了一下,ENTRYPOINT定义了容器启动时要执行的命令,而CMDENTRYPOINT提供默认参数,并且可以被docker run后面的参数覆盖。
  • :如何从宿主机进入容器内部?
    • :使用docker exec -it <container_id> /bin/bash

Kubernetes (K8s)

这部分因为我提到自己玩过K8s,所以面试官问得比较多,但我的实践经验主要来自个人项目,实习接触不多,有些问题答得比较吃力。

  • :K8s的核心组件有哪些,作用是什么?
      • API Server: 集群的统一入口,提供RESTful API。
      • etcd: 键值数据库,存储集群的所有状态数据。
      • Scheduler: 调度器,负责将Pod分配到合适的Node上。
      • Kubelet: 运行在每个Node上的代理,负责管理Pod的生命周期。
      • Kube-proxy: 负责实现Service的网络通信。
  • DeploymentStatefulSet的区别?
    • StatefulSet主要用于有状态服务,比如数据库。它能保证Pod拥有稳定、唯一的网络标识和持久化存储。Deployment则适用于无状态应用。
  • :K8s中最小的调度单元是什么?
    • :Pod。
  • DaemonSet的作用是什么?
    • :确保在每个(或部分)Node上都运行一个Pod副本,常用于部署日志采集、监控等系统级服务。
  • Service有哪些类型?
    • :这个问题我回答不上来,只知道它是提供网络访问的。面试官提示了NodePort,我表示只是听说过。
  • :如何将本地端口转发到Pod上?
    • :我回答说用Ingress Controller,但面试官似乎想问的是kubectl port-forward这个调试命令。
  • :分享一个你解决过的K8s问题。
    • :我分享了之前遇到的一个镜像拉取问题。在拉取镜像时,发现拉到最后一层(通常是很多小文件)时速度特别慢。经过排查,怀疑是MTU值设置问题。最终发现是云厂商的负载均衡MTU和K8s容器网络的MTU不一致导致的,统一后问题解决。

其他技术

  • 数据库:了解MongoDBPostgreSQL
  • Ansible:实习时用过,通过SSH批量扫描机器上的配置,知道它底层是Python,但具体原理不清楚。
  • Helm:了解,但没有实际用过。
实习意向与个人情况
  • 工作地点:我表示可以接受北京,如果深圳有岗位会更倾向于深圳。面试官告知深圳南山科技园有办公室。
  • 实习时间:我说明自己课程不忙,可以长期全职实习,并且毕业设计不需要在公司完成。
  • 职业规划:确认了自己希望从事运维和技术支持方向的工作。
反问与面试建议
  • 我的提问
    1. 深圳分部的具体位置?(某科技园)
    2. 面试结果多久会通知?(节后)
  • 面试官的建议
    • 公司的业务对K8s依赖较深,建议我加强这方面的知识学习。
    • 介绍了公司运维岗位偶尔需要短期出差(toB技术支持),确认我是否可以接受。

总结

整体比较轻松,不过后面说只能北京,就算能开300一天也只能婉拒了,

#运维##发面经攒人品#
全部评论

相关推荐

肥罗且玫瑰:没啥用,没人看这个,这个公司比较离谱查看图片
点赞 评论 收藏
分享
评论
1
3
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务