在我的职业生涯中,我有时机参加许屡次面试,也进行过许屡次面试。这种独特的方位让我对招聘进程有了更深化的了解,尤其是在DevOps范畴。在这篇文章中,我巴望经过概述一些关键的面试问题,分享我堆集的见解和常识,这些问题关于致力于推进职业生涯的DevOps工程师来说可能非常名贵,无论您是预备进入就业市场仍是期望进步面试技巧。

译自20 DevOps Interview Questions Every Engineer Should Know,作者 Alex M.。

别的,假如您在答复上存在困难或需求进一步辅导,请随时与我联络

  1. 解说流量怎么抵达Kubernetes中的Pod?

尽管这个问题看似简单直接,但它供给了一个展现您在网络、云渠道和Kubernetes架构方面专业常识深度的时机。

理想情况下,您应该包含从客户端恳求到负载均衡器、ingress controller、k8s服务最终到pod的整个事情链。

您可能需求解说流量怎么从负载均衡器路由到Kubernetes节点,一旦它抵达方针VNET,CNI插件怎么经过overlay网络将流量路由到方针容器。

  1. Liveness、Readiness和Startup探测器之间的区别是什么?

谈谈它们的运用时机和方式。说到诸如initialDelaySeconds、periodSeconds等探测器选项,并阅览有关装备非抵触探测器的内容。

  1. 您偏好的 CI/CD 流程是什么以及为什么?

面试官期望了解您对继续集成/继续交给流程的了解程度以及您参加其间的深度。您是编写流水线,装备和集成 CI/CD 体系,仍是两者都参加。

理想情况下,您应该了解保管和自管了解决计划,了解云原生 CI/CD 体系的工作原理以及身份拜访管理人物和事情怎么习惯云原生方法。您可能会被问及保管标识的运用以及保管与自管理 CI/CD 工具(如 GitLab)的优势。

  1. 您将怎么在 AWS/Azure/Google Cloud/内部网络上规划一个云原生的音讯消费和剖析服务?

最初,您可能会被要求供给高级概述架构,然后具体查看其间的特定组件。了解工作流程的每个阶段相关的悉数产品和服务非常重要——从音讯输入、音讯存储、数据处理和转化,到数据剖析和可视化,最终是监控——在您专业的云渠道内。

  1. 您将怎么在云基础设施与咱们的内部数据库/服务器/应用程序等之间建立衔接?

这是一个经常被运营混合网络的公司询问的问题,凸显了了解公共和私有衔接选项的重要性。深化探讨这两种方法是必不可少的。关于公共衔接,优先考虑安全因素,保证跨网络的数据传输安全。相反,在探索专用衔接时,解说动态路由,特别是运用鸿沟网关协议(BGP),变得至关重要。这种两层关注保证全面掌握面向混合环境的网络战略。

  1. 假如您有基于 API 的体系,您将怎么赶快设置监控?

要有用解决这个问题,有必要深化了解监控和盯梢战略,特别是在 API 调用级别。运用云服务供给的云原生工具,比方 AWS X-Ray、Google Trace 或 Azure Monitor Application Insights,能够直接盯梢 API 调用。但是,假如挑选自管理工具,您可能要考虑与 Jaeger 等解决计划的集成和装备进程。此外,完成服务网格能够作为一个全面的代替计划,它供给会集的盯梢功用,以及相互 TLS 加密的额定优势,以增强安全性。

  1. 关于包含有状态和无状态组件的分布式应用架构,请描绘怎么规划负载均衡战略,运用第4层(L4)和第7层(L7)负载均衡器以及直通负载均衡器。具体而言,请解说怎么装备这些负载均衡器以优化性能、保证高可用性以及维护有状态组件的会话一致性。别的,具体阐明怎么集成一起需求直接 TCP 衔接和 HTTP/HTTPS 流量的后端服务,根据恳求的内容和对 SSL 终止的需求,保证安全高效的恳求路由。考虑 SSL 卸载的影响,以及怎么处理运行状况查看和毛病搬运机制以最大限度地削减停机时刻。

要自傲地答复这个问题,您应该了解 L4 和 L7 负载均衡器之间的操作差异、SSL 卸载和直通的概念,以及有状态服务的会话亲和性管理。了解怎么在分布式应用环境中装备运行状况查看和毛病搬运战略也是必不可少的。

  1. 关于为全球用户供给服务的应用程序,需求分布式网络架构来满意低推迟要求,您将为前端组件完成什么基础设施?

您需求描绘内容分发网络(CDN)、DNS 负载均衡和 Anycast IP 的工作原理以及各自在解决此问题方面的优势。

  1. 具体阐明客户端与服务器之间建立传输层安全性(TLS)会话的进程,具体阐明公钥基础设施(PKI)、证书颁布机构(CA)的作用,以及加密套件的重要性。

此外,评论 TLS 握手进程存在的潜在漏洞,以及证书固定和运用扩展验证(EV)证书怎么缓解这些风险。

  1. 幻想您正在装备一台具有两个网络接口的 Linux 服务器:eth0 用于内部网络衔接,eth1 用于外部互联网拜访。内部网络在子网 192.168.1.0/24 上,该服务器在此网络上的 IP 为 192.168.1.100。外部网络接口 eth1 衔接到具有网关 10.0.0.1 的网络。您需求保证服务器能够在内部网络中进行通信,并能够拜访互联网进行更新和外部服务。- 您将怎么运用 ip 指令装备 eth0 和 eth1 的 IP 地址?- 您将怎么经过 eth1 增加默许网关以进行互联网拜访?- 最终,为了保证安全性和正确的网络分割,您将怎么增加一个静态路由,以便到另一个内部子网 192.168.2.0/24(经过内部路由器 192.168.1.1 可达)的流量经过 eth0 正确路由?”

sudo ip addr add 192.168.1.100/24 dev eth0 sudo ip addr add <外部 IP 地址>/24 dev eth1 sudo ip route add default via 10.0.0.1 dev eth1 sudo ip route add 192.168.2.0/24 via 192.168.1.1 dev eth0

  1. Dockerfile 中 ENTRYPOINT 和 CMD 指令有什么区别,当两者都指定时,它们怎么交互?

  2. 编写一个 Bash 脚本,遍历作为指令行参数供给的文件名列表。对每个文件,运用循环来处理其内容。在循环内,运用 sed 将所有 “http” 实例替换为 “https”,然后运用 awk 打印出包含 “error” 这个词的每一行。假定所有文件都是文本文件,位于当前目录中。

  3. 运用 Terraform,创建一个装备,从名为 ingress_rules 的列表变量中动态生成 AWS 安全组入站规矩。每个规矩应指定描绘、from_port、to_port、protocol 和 cidr_blocks。包含变量定义和带有动态块的安全组资源用于规矩。

  4. 您能够怎么从秘要管理工具(例如 HashiCorp Vault、AWS Secrets Manager 或 Azure Key Vault)安全地向 Kubernetes Pod 注入秘要?请描绘从秘要存储中检索秘要并使 Pod 可用的步骤,包含任何必要的 Kubernetes 资源装备?

  5. 描绘当流量从应用程序经过 OSI 模型各层(应用层、传输层、网络层和数据链路层)发送时产生的事情链,包含它怎么经过网络接口传递,由网络地址转化(NAT)转化,最终抵达互联网。对每个步骤进行具体的解说,包含每个层的协议人物(例如应用层的 HTTP/S,传输层的 TCP/UDP,网络层的 IP),以及数据包怎么被封装并处理到数据链路层才被传输到物理介质。

  6. 关于因为对产品和会话数据的很多读需求而导致峰值时段页面加载缓慢的高流量电子商务渠道,您会引荐什么数据库解决计划来进步速度、保证数据持久性、支持复制以完成高可用性并削减推迟?在传统 SQL 数据库、NoSQL 和 Redis 等缓存解决计划中进行挑选,并根据渠道对快速拜访和可靠性的需求来证明您的挑选。

提示:阅览有关缓存数据库的内容。

  1. Git 中 git fetch 和 git pull 指令有什么区别,在什么情况下会运用每个指令?

  2. 您怎么在 AWS/Azure/GCP 中设置出站流量过滤体系,以阻止虚拟机拜访某些网站,保证所有外部恳求都由防火墙评估和过滤?

提示:阅览有关虚拟私有云(VPC)路由表的内容。

  1. 您怎么在不依赖技能账户或服务主体的情况下,使 Kubernetes Pod 与 AWS/Azure/GCP 云服务进行交互?

提示:阅览关于人物、服务账户和身份的内容。

  1. Kubernetes 怎么运用其证书颁布机构(CA)生成的证书来保护其组件之间的通信(例如 kubelet 到 API 服务器),以及怎么手动轮换 Kubernetes 集群的这些证书?

本文在云云众生yylives.cc/)首发,欢迎大家拜访。