DevOps面试题
K8S相关
- 描述下把服务改造成K8S方式部署,你都做了哪些工作?服务运行所使用到的K8S资源文件是用的K8S YAML还是Helm Chart?是如何管理这些资源文件的?改造过程中有遇到过哪些问题?
- 基础概念相关
- 描述下 k8s 中常见的资源类型及他们的使用场景?你之前工作中部署的应用使用到了哪些?
- 描述下k8s核心组件及作用
- StorageClass 是什么?用过哪些?
- 使用相关
- k8s 层面高可用如何实现?如何实现集群中单个 master 宕机不影响集群正常使用
- 如何迁移 PVC 中的数据
- Pod 排查
- K8S 中 Pod 无法跨节点通信,如何排查?
- K8S Pod 状态异常,可能的原因是什么?如何排查?如果Pod内容器使用的镜像不具备shell或不包含所需的排查工具,有什么方法?
- K8S 中Pod无法拉取镜像,可能是什么原因?
- Pod 处于 Pending 状态,可能是什么原因?如何排查?
- Pod 重启,如何查看 Pod 重启原因?
- 如何查看k8s集群中所有 Pod 使用的镜像?
- 在K8S中,需要让Pod访问某一个域名时解析到的IP是某个指定的IP(类似配置Linux中的hosts),应该如何操作
- 描述一下 Operator 和 CRD?用过哪些?
- 通过 ingress 对外暴露域名共外部用户访问,如何实现根据不同的url访问到不同的服务?如何配置https?
- 如果要对K8S中运行的服务做高可用部署,有什么方案?
- 是否了解过多集群管理方案?如果节点分布在不同的云厂商环境下,有什么方案?
- 是否独立编写、维护过 Helm Chart?如何查看一个 Helm Chart 中所有服务使用的镜像?执行
helm install命令安装 chart 报错时,如果遇到报错如何排查? - 描述下 K8S 中的探针、生命周期?有哪几种探针、哪几种探测方式?
startupProbe的使用场景? - 如何在一个无法访问互联网的环境中安装K8S?在这样的环境中安装K8S需要准备些什么?了解哪些离线部署K8S的工具?
- 如果需要对 K8S 集群中的节点做硬件维护,应该怎么做?
- 是否维护过 GPU 服务器,如何可以让 Pod 使用 GPU 资源?如何从0搭建一个可以调度使用 GPU 资源的 k8s 环境
- 如何提高服务部署效率?
- K8S 中 ETCD 的作用,etcd 集群节点异常如何恢复?
- dockerfile 中 ADD 与 COPY 的区别?
- 是否了解 Prometheus?
- 使用 prometheus-operator 搭建的 prom 如何添加监控对象、告警规则?
- 镜像相关
- 如何构建多架构的镜像?
- 如何将 dockerhub 等仓库的多架构的镜像同步到自建的 harbor?
CICD
- 描述下设计CICD流程时应该注意些什么?会选择使用什么工具?
- 流水线执行时间长,如何定位原因?如何优化?
- 对提高服务发布效率有什么建议?
- 上线过程中有许多需要手动操作的部分,比如需要手动改nacos配置、执行 sql等,有没有什么好的方法可以实现自动化
中间件
- 描述下常用数据库/中间件(MySQL、Redis、kafka等)的高可用部署方式,不同的高可用模式有什么优点和限制?
- 如果要对 MySQL 数据做备份,说一下备份方案
- 之前处理过哪些中间件方面的故障?描述下问题、做了什么操作、故障排查思路等
云服务
- 都用过哪些云产品?是否熟悉 ACK 等
- 在阿里云上有一台 ECS (操作系统是Linux),无法在自己电脑上连接到这台 ECS,描述下排查思路
- 需要对数据库做迁移,阿里云的哪个产品可以实现这个功能
- 阿里云与IDC或跨云厂商网络打通,有没有实践过或有什么方案
- 有没有自行使用云厂商产品搭建一些网站
Linux
- 服务器 CPU、内存使用率过高,如何排查定位,如何防范?
- 如果要管理多台服务器,有什么好的方式可以对这些服务器做批量维护操作
- 如何离线下载Linux安装包?缺依赖如何处理?
- 之前写过什么脚本,具备什么功能?shell脚本如何并行执行多条命令?
- 机房交付一台新的服务器后,初始化服务器会考虑哪些方面?
- 程序自动升级有什么隐患?如何禁止?
- GPU 服务器上有时候会出现查不到GPU显卡的情况,这可能是什么原因?
故障排查
- 描述下之前工作遇到过什么严重的线上故障?描述下如何发现、排查思路、如何避免
- 服务器CPU负载过高如何排查
项目经历
根据简历中写的项目问问题