Linux最全50 个你必须掌握的 Kubernetes 面试题(4),Linux运维开发面试技能介绍

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前在阿里

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上运维知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化的资料的朋友,可以点击这里获取!

Q4、Kube-apiserver 和 Kube-scheduler 的作用是什么?

Kube-apiserver 遵循横向扩展架构,是主节点控制面板的前端。这将公开 Kubernetes 主节点组件的所有 API,并负责在 Kubernetes 节点和 Kubernetes 主组件之间建立通信。

kube-scheduler 负责工作节点上工作负载的分配和管理。因此,它根据资源需求选择最合适的节点来运行未调度的 Pod,并跟踪资源利用率。它确保不在已满的节点上调度工作负载。

Q5、你能简要介绍一下 Kubernetes 控制管理器吗?

多个控制器进程在主节点上运行,但是一起编译为单个进程运行,即 Kubernetes 控制器管理器。因此,Controller Manager 是一个嵌入控制器并执行命名空间创建和垃圾收集的守护程序。它拥有与 API 服务器通信以管理端点的责任。

因此,主节点上运行的不同类型的控制器管理器是:

640?wx_fmt=png

Q6、什么是 Etcd?

Etcd 是用 Go 编程语言编写的一个分布式键值存储,用于协调分布式工作的软件。因此,Etcd 用来存储 Kubernetes 集群的配置数据,这些数据代表在任何给定时间点的集群状态。

Q7、Kubernetes 有哪些不同类型的服务?

以下是使用的不同类型的服务:

640?wx_fmt=png

Q8、你对 Kubernetes 的负载均衡器有什么了解?

负载均衡器是暴露服务的最常见和标准方式之一。

根据工作环境使用两种类型的负载均衡器,即内部负载均衡器或外部负载均衡器。内部负载均衡器自动平衡负载并使用所需配置分配容器,而外部负载均衡器将流量从外部负载引导至后端容器。

Q9、什么是 Ingress 网络,它是如何工作的?

Ingress 网络是一组规则,充当 Kubernetes 集群的入口点。

这允许入站连接,可以将其配置为通过可访问的 URL 负载平衡流量或通过提供基于名称的虚拟主机从外部提供服务。因此,Ingress 是一个API对象,通常通过 HTTP 管理集群中服务的外部访问,是暴露服务的最有效方式。

现在,让我以一个例子向您解释 Ingress 网络的工作。

有 2 个节点具有带有 Linux 桥接器的 Pod 和根网络命名空间。除此之外,还有一个名为 flannel0(网络插件)的新虚拟以太网设备被添加到根网络中。

现在,假设我们希望数据包从 Pod1 流向 Pod4。请参阅下图:

640?wx_fmt=png

  • 因此,数据包将 Pod1 的网络保留在 eth0,并进入 veth0 的根网络。
  • 然后它被传递给 cbr0,这使得 ARP 请求找到目的地,并且发现该节点上没有人具有目的地 IP 地址。
  • 因此,桥接器将数据包发送到 flannel0,因为节点的路由表配置了 flannel0。
  • 现在,flannel 守护程序与 Kubernetes 的 API 服务器通信,以了解所有 Pod IP 及其各自的节点,以创建 Pods IP 到节点 IP 的映射。
  • 网络插件将此数据包封装在 UDP 数据包中,其中额外的标头将源和目标 IP 更改为各自的节点,并通过 eth0 发送此数据包。
  • 现在,由于路由表已经知道如何在节点之间路由流量,因此它将数据包发送到目标节点2。
  • 数据包到达 node2 的 eth0 并返回到 flannel0 以解封装并在根网络命名空间中将其发回。
  • 同样,数据包被转发到 Linux 网桥以发出 ARP 请求以找出属于 veth1 的 IP。
  • 数据包最终穿过根网络并到达目标 Pod4。

Q10、您对云控制器管理器有何了解?

Cloud Controller Manager 负责持久存储、网络路由,从核心 Kubernetes 特定代码中抽象出特定于云的代码,以及管理与底层云服务的通信。

它可能会分成几个不同的容器,具体取决于您运行的是哪个云平台,然后它可以使云供应商和 Kubernetes 代码在没有任何相互依赖的情况下开发。因此,云供应商开发他们的代码并在运行 Kubernetes 时与 Kubernetes 云控制器管理器连接。

各种类型的云控制器管理器如下:

640?wx_fmt=png

Q11、什么是 Container 资源监控?

对于用户而言,了解应用程序的性能和所有不同抽象层的资源利用率非常重要,Kubernetes 通过在容器、Pod、服务和整个集群等不同级别创建抽象来考虑集群的管理。现在,可以监视每个级别,这只是容器资源监视。

各种容器资源监控工具如下:

640?wx_fmt=png

Q12、Replica Set 和 Replication Controller 之间有什么区别?

Replica Set 和 Replication Controller 几乎完全相同。它们都确保在任何给定时间运行指定数量的 Pod 副本。不同之处在于复制 Pod 使用的选择器。Replica Set 使用基于集合的选择器,而 Replication Controller 使用基于权限的选择器。

  • Equity-Based 选择器:这种类型的选择器允许按标签键和值进行过滤。因此,在外行术语中,基于 Equity 的选择器将仅查找与标签具有完全相同短语的 Pod。示例:假设您的标签键表示 app = nginx,那么使用此选择器,您只能查找标签应用程序等于 nginx 的那些 Pod。
  • Selector-Based 选择器:此类型的选择器允许根据一组值过滤键。因此,换句话说,基于 Selector 的选择器将查找已在集合中提及其标签的 Pod。示例:假设您的标签键在(nginx、NPS、Apache)中显示应用程序。然后,使用此选择器,如果您的应用程序等于任何 nginx、NPS或 Apache,则选择器将其视为真实结果。

Q13、什么是 Headless Service?

Headless Service 类似于 “普通” 服务,但没有群集 IP。此服务使您可以直接访问 Pod,而无需通过代理访问它。

Q14、使用 Kubernetes 时可以采取哪些最佳安全措施?

以下是使用 Kubernetes 时可以遵循的最佳安全措施:

640?wx_fmt=png

Q15、什么是集群联邦?

在联邦集群的帮助下,可以将多个 Kubernetes 集群作为单个集群进行管理。因此,您可以在数据中心/云中创建多个 Kubernetes集群,并使用联邦来在一个位置控制/管理它们。

联邦集群可以通过执行以下两项操作来实现此目的。请参考下图。

640?wx_fmt=png

基于场景的面试问题

这部分问题将包含您在面试中可能遇到的各种基于场景的问题。

场景1

假设一家基于单一架构的公司处理众多产品。现在,随着公司在当今的扩展行业的扩展,他们的单一架构开始引发问题。

您如何看待公司从单一服务转向微服务并部署其服务容器?

解:由于公司的目标是从单一应用程序转向微服务,它们最终可以逐个构建,并行构建,只需在后台切换配置。然后他们可以将这些内置微服务放在 Kubernetes 平台上。因此,他们可以从一次或两次迁移服务开始,并监控它们以确保一切运行稳定。一旦他们觉得一切顺利,他们就可以将其余的应用程序迁移到他们的 Kubernetes 集群中。

场景2

考虑一家拥有分布式系统的跨国公司,拥有大量数据中心,虚拟机和许多从事各种任务的员工。

您认为这样的公司如何以 Kubernetes 一致的方式管理所有任务?

解:正如我们所有人都知道 IT 部门推出了数千个容器,其任务在分布式系统中遍布全球众多节点。在这种情况下,公司可以使用能够为基于云的应用程序提供敏捷性,横向扩展功能和 DevOps 实践的东西。因此,该公司可以使用 Kubernetes 来定制他们的调度架构并支持多种容器格式。这使得容器任务之间的亲和性成为可能,从而提供更高的效率,并为各种容器网络解决方案和容器存储提供广泛支持。

场景3

考虑一种情况,即公司希望通过维持最低成本来提高其效率和技术运营速度。您认为公司将如何实现这一目标?

解:公司可以通过构建 CI/CD 管道来实现 DevOps 方法,但是这里可能出现的一个问题是配置可能需要一段时间才能启动并运行。因此,在实施 CI/CD 管道之后,公司的下一步应该是在云环境中工作。一旦他们开始处理云环境,他们就可以在集群上安排容器,并可以在 Kubernetes 的帮助下进行协调。这种方法将有助于公司缩短部署时间,并在各种环境中加快速度。

场景4

假设一家公司想要修改它的部署方法,并希望建立一个更具可扩展性和响应性的平台。您如何看待这家公司能够实现这一目标以满足客户需求?

解:为了给数百万客户提供他们期望的数字体验,公司需要一个可扩展且响应迅速的平台,以便他们能够快速地将数据发送到客户网站。现在,要做到这一点,公司应该从他们的私有数据中心(如果他们使用任何)转移到任何云环境,如 AWS。不仅如此,他们还应该实现微服务架构,以便他们可以开始使用 Docker 容器。一旦他们准备好基础框架,他们就可以开始使用最好的编排平台,即 Kubernetes。这将使团队能够自主地构建应用程序并快速交付它们。

场景5

考虑一家拥有非常分散的系统的跨国公司,期待解决整体代码库问题。您认为公司如何解决他们的问题?

解:那么,为了解决这个问题,我们可以将他们的单片代码库转移到微服务设计,然后每个微服务都可以被视为一个容器。因此,所有这些容器都可以在 Kubernetes 的帮助下进行部署和协调。

场景6

我们所有人都知道,从单片到微服务的转变解决了开发方面的问题,但却增加了部署方面的问题。公司如何解决部署方面的问题?

解:团队可以试验容器编排平台,例如:Kubernetes,并在数据中心运行。因此,通过这种方式,公司可以生成模板化应用程序,在五分钟内部署它,并在此时将实际实例集中在暂存环境中。这种 Kubernetes 项目将有数十个并行运行的微服务,以提高生产率,即使节点出现故障,也可以立即重新安排,而不会影响性能。

场景7

假设一家公司希望通过采用新技术来优化其工作负载的分配。公司如何有效地实现这种资源分配?

解:这个问题的解决方案就是 Kubernetes。Kubernetes 确保资源得到有效优化,并且只使用特定应用程序所需的那些资源。因此,通过使用最佳容器编排工具,公司可以有效地实现资源分配。

场景8

考虑一家拼车公司希望通过同时扩展其平台来增加服务器数量。您认为公司如何处理服务器及其安装?

解:公司可以采用集装箱化的概念。一旦他们将所有应用程序部署到容器中,他们就可以使用 Kubernetes 进行编排,并使用像 Prometheus 这样的容器监视工具来监视容器中的操作。因此,利用容器的这种使用,在数据中心中为它们提供更好的容量规划,因为它们现在将受到更少的限制,因为服务和它们运行的硬件之间存在抽象。

场景9

考虑一种情况,公司希望向具有各种环境的客户提供所有必需的分发。您认为他们如何以动态的方式实现这一关键目标?

解:该公司可以使用 Docker环境,组建一个横截面团队,使用 Kubernetes 构建 Web 应用程序。这种框架将帮助公司实现在最短的时间内将所需产品投入生产的目标。因此,在这样的机器运行的情况下,公司可以向所有具有各种环境的客户发放电子邮件。

场景10

假设公司希望在不同的云基础架构上运行各种工作负载,从裸机到公共云。公司将如何在不同界面的存在下实现这一目标?

解:该公司可以将其基础设施分解为微服务,然后采用 Kubernetes。这将使公司在不同的云基础架构上运行各种工作负载。

多项选择面试问题

这部分问题将包括多项选择面试问题,这些问题在面试中经常被问到。

Q1、什么是 Kubernetes 集群中的 minions?

  1. 它们是主节点的组件。
  2. 它们是集群的工作节点。[答案]
  3. 他们正在监控 Kubernetes 中广泛使用的引擎。
  4. 他们是 Docker 容器服务。

Q2、Kubernetes 集群数据存储在以下哪个位置?

  1. KUBE-API服务器
  2. Kubelet
  3. ETCD [答案]
  4. 以上都不是

Q3、哪个是 Kubernetes 控制器?

  1. ReplicaSet
  2. Deployment
  3. Rolling Updates
  4. ReplicaSet和Deployment [答案]

Q4、以下哪个是核心 Kubernetes 对象?

  1. Pods
  2. Services
  3. Volumes
  4. 以上所有[答案]

Q5、Kubernetes Network 代理在哪个节点上运行?

  1. Master Node
  2. Worker Node
  3. 所有节点[答案]
  4. 以上都不是

Q6、节点控制器的职责是什么?

  1. 将 CIDR 块分配给节点
  2. 维护节点列表
  3. 监视节点的运行状况
  4. 以上所有[答案]

Q7、Replication Controller 的职责是什么?

  1. 使用单个命令更新或删除多个 Pod
  2. 有助于达到理想状态
  3. 如果现有 Pod 崩溃,则创建新 Pod
  4. 以上所有[答案]

Q8、如何在没有选择器的情况下定义服务?

  1. 指定外部名称[答案]
  2. 指定具有 IP 地址和端口的端点
  3. 只需指定 IP 地址即可
  4. 指定标签和 API 版本

Q9、1.8 版本的 Kubernetes 引入了什么?

  1. Taints and Tolerations [答案]
  2. Cluster level Logging
  3. Secrets
  4. Federated Clusters

Q10、Kubelet 调用的处理检查容器的 IP 地址是否打开的程序是?

  1. HTTPGetAction
  2. ExecAction
  3. TCPSocketAction [答案]
  4. 以上都不是

译者注

这篇文章不仅仅适合相关的面试者,也非常推荐 Kubernetes 的初学者或者想要了解 Kubernetes 技术的产品或管理者阅读。但是这里面还存在几点不足,例如覆盖的内容较浅显,没有非常具体的技术点,缺少大规模的经验和技术点考察等,有机会后面的文章会补充下!

来源:知乎

原文:http://t.cn/Ailr1R3L

译文:http://t.cn/Ailr1BxT

题图:来自谷歌图片搜索

版权:本文版权归原作者所有

投稿:*欢迎投稿,邮箱:*editor@hi-linux.com

640?wx_fmt=gif

最后的话

最近很多小伙伴找我要Linux学习资料,于是我翻箱倒柜,整理了一些优质资源,涵盖视频、电子书、PPT等共享给大家!

资料预览

给大家整理的视频资料:

给大家整理的电子书资料:

如果本文对你有帮助,欢迎点赞、收藏、转发给朋友,让我有持续创作的动力!

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以点击这里获取!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

预览

给大家整理的视频资料:

[外链图片转存中…(img-ZcNNH4Se-1714924646558)]

给大家整理的电子书资料:

[外链图片转存中…(img-jcMtj70E-1714924646559)]

如果本文对你有帮助,欢迎点赞、收藏、转发给朋友,让我有持续创作的动力!

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以点击这里获取!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值