目录[隐藏][展示]
- 1. 什么是 Kubernetes?
- 2. Kubernetes中的容器是什么意思?
- 3. Kubernetes的主要组件有哪些?
- 4. kubernetes 中的编排是什么意思?
- 5. 什么是 Kubernetes 集群?
- 6. Kubernetes如何让容器化部署变得更简单?
- 7. Kubernetes 和 Docker Swarm 之间存在哪些根本区别?
- 8. 什么是 Kubernetes 中的命名空间?
- 9. Kubernetes etcd master组件到底是什么?
- 10. Kubernetes上的API安全有哪些解决方案?
- 11.部署在宿主机和容器上的应用有什么区别?
- 12. 你所说的 Minikube 到底是什么意思?
- 13、Kubernetes集群如何监控?
- 14. Kubernetes节点有什么作用?
- 15. 详细描述潮人。
- 16.描述Kubernetes主节点的运行。
- 17. Container 和 Pod 有什么区别?
- 18. 你对 Kubernetes 中的负载均衡器的理解是什么?
- 19. Kube-API server 有什么作用?
- 20. Kubernetes 的stateful sets 是什么意思?
- 21. 你如何检查 pod 的中央日志?
- 22. ClusterIP:它是什么?
- 23. 告诉我有关复制控制器的信息?
- 24. Ingress 网络是如何运作的,它是什么?
- 25. Kubernetes 中的 Prometheus:它有什么用?
- 26.什么是无头服务?
- 27. 要在本地运行 Kubernetes 架构,我需要什么?
- 28. 你对Stateful set的理解是什么?
- 29. 在Kubernetes中,minions是什么意思?
- 30. 服务在 Kubernetes 组件中执行哪些功能?
- 31.Helm到底是什么?
- 32.解释PVC
- 结论
谷歌最初于 2014 年创建了开源容器编排技术 Kubernetes。容器化应用程序的部署、扩展和管理都旨在实现自动化。
随着时间的推移,Kubernetes 已成为业界事实上的容器编排标准,并被各种规模的企业广泛用于管理容器中的工作负载。
Kubernetes 在现代世界的重要性在于它能够提供一种一致的方法来大规模管理容器化应用程序,跨越各种集群和云环境。 因此,企业可以管理、扩展和 部署他们的应用程序 快速有效。
Kubernetes 广泛的功能集(包括自我修复、自动扩展和滚动升级)进一步简化了容器化应用程序的维护。
随着越来越多的企业使用容器化和微服务来加速他们的应用程序开发和部署过程,Kubernetes 的范围预计将在未来不断扩大。
云原生技术的采用以及向多云和混合云系统的普遍迁移都将在很大程度上依赖于 Kubernetes。 随着越来越多的设备连接到互联网,Kubernetes 也将越来越多地用于 边缘计算 和物联网。
我假设您已经了解这些细节,因为您正在阅读这篇关于 Kubernetes 面试问题的帖子,它将告诉您最常被问到的面试问题。 让我们开始。
1. 什么是 Kubernetes?
Kubernetes 是一个 开源框架 用于容器化应用程序编排和管理。 它使一致且有效地部署、扩展和维护容器化应用程序成为可能。
Kubernetes 提供了一种用于大规模管理容器化应用程序的单一方法,旨在跨各种集群和云环境运行。
自我修复、自动扩展和滚动升级只是使管理容器化应用程序变得更加容易的部分功能。
2. Kubernetes中的容器是什么意思?
容器是一种可移植、轻量级且自给自足的打包和运行软件的方法。 使用容器在 Kubernetes 中一致有效地完成应用程序打包和部署。
为了使自己与其他容器和宿主机保持距离,每个容器只执行一个进程。 应用程序的依赖项、库和配置文件都包含在用作容器定义的容器映像中。
由于 Kubernetes 使用容器编排来管理和扩展容器,因此容器的预期数量的副本始终在运行。 这使开发人员可以轻松地跨多个集群和云环境管理和部署他们的应用程序。
3. Kubernetes的主要组件有哪些?
以下是 kubeneters 的主要组件:
- Kubernetes master:该组件还包括controller manager和scheduler、etcd(分布式key-value store)、API server等组件,负责管理整个集群。
- 节点:这些是执行容器化程序的工作站。 kubelet 与 master 交互以维护集群的预期状态,与容器运行时(例如 Docker)一起在每个节点上执行。
- Pod:Kubernetes 对象模型中最小和最基本的元素是 Pod,它充当一个或多个容器的宿主。
- 服务:服务为 pod 提供一致的端点并启用负载平衡和服务发现。
- 复制控制器:它们保证所需数量的 Pod 副本始终在运行。
- Secrets 和 ConfigMaps:这些资源用于维护 Pod 和其他集群对象的配置数据和机密。
4. kubernetes 中的编排是什么意思?
在 Kubernetes 中,术语“编排”是指容器及其连接的资源的自动化管理和协调。 它涉及的活动包括网络、可扩展性、部署和自我修复。 Kubernetes 使用 pod、服务和复制控制器等对象来编排应用程序。
可容纳一个或多个容器的 Pod 是最小的可部署单元。 服务管理 负载均衡 和服务发现并为 pod 提供可靠的端点。 由于复制控制器,pod 的副本始终以所需数量的副本运行。
5. 什么是 Kubernetes 集群?
一组跨不同环境和机器(基于云、物理、虚拟和本地)运行容器化应用程序的节点构成了 Kubernetes 集群。 它促进了应用程序的简单管理和迁移以及它们的创建。
6. Kubernetes如何让容器化部署变得更简单?
由于典型的应用程序会在许多主机上的容器集群中运行,因此所有这些容器都需要相互通信。
因此,为了实现这一点,需要一个可以扩展、负载平衡和监控容器的大型系统。 您必须使用 Kubernetes 来简化容器化部署,因为它与云无关并且可以在任何公共或私有提供商上运行。
7. Kubernetes 和 Docker Swarm 之间存在哪些根本区别?
使用 Docker Swarm 调度和集群 Docker 容器,Docker Swarm 是 Docker 的原生开源容器编排工具。 以下特征使 Swarm 有别于 Kubernetes:
- 虽然 Kubernetes 和 Docker Swarm 都缺乏自动缩放功能,但 Docker 的缩放速度是 Kubernetes 的五倍。
- Kubernetes 以仪表板的形式提供了 GUI,但 Docker Swarm 没有。
- 相对于Kubernetes更难架设但提供强大集群保障,Docker Swarm更易于安装但没有稳定的集群。
- 虽然 Kubernetes 包含用于日志记录和监控的内置功能,但 Docker 需要外部工具,如 ELK 堆栈。
- 可以通过 Docker 部署滚动更新,但不能自动回滚; 可以使用 Kubernetes 部署滚动更新和自动回滚。
8. 什么是 Kubernetes 中的命名空间?
Kubernetes 命名空间用于有多个用户在广阔的地理区域从事多个项目的环境。 命名空间将集群资源划分给多个用户。
9. Kubernetes etcd master组件到底是什么?
Etcd 是 Kubernetes 主服务器的重要组成部分。 此外,它还充当 Kubernetes 集群的中心,其中项目存储在分布式键值存储中。
复制技术与算法结合使用,以在服务器之间保存保存在 etcd 中的数据。 在 etcd 服务器之间比较和交换数据时,乐观货币用于最小化锁定情况并提高服务器速度。
10. Kubernetes上的API安全有哪些解决方案?
可以通过以下方式提供 API 安全性:
- 通过API认证方式
- 为API服务器认证模式选择合适的认证模式=Node、RBAC
- 跟踪 RBAC 错误
- 确保使用 TLS 来保护流量
- 使用 authorization-mode=Webhook 确保 Kubeless 保护其 API
- 消除默认服务帐户权限
- 使用 kube 的最新版本
- 确保 kube-dashboard 遵循严格的 RBAC 策略
- 实施 pod 安全策略以限制容器访问并保护节点
11.部署在宿主机和容器上的应用有什么区别?
操作系统和架构构成了已部署的应用程序。 操作系统将有一个内核,其中包含应用程序所需的多个库。
运行进程容器的机器称为容器主机。 由于此类软件不同于其他程序,因此应用程序必须包含必要的库。 二进制文件不能侵犯任何其他软件的权利,因为它们与系统的其余部分是分开的。
12. 你所说的 Minikube 到底是什么意思?
借助 Minikube,Kubernetes 可以轻松地在本地运行。 这允许虚拟机托管具有单个节点的 Kubernetes 集群。
13、Kubernetes集群如何监控?
可以使用多种方法跟踪在 Kubernetes 下运行的容器的运行和状态。 Prometheus 是最常用的乐器之一,包含许多部件,这些部件在下面的部分中进行了细分。
- Prometheus 服务器收集和存储时间序列数据。
- 它包括有助于检测应用程序代码的客户端库。
- 它具有一个可以支持临时工作的推送网关。
- 有些导出器具有针对各种容器服务的专门功能,例如 StatsD、HAProxy、Graphite 等。
- 此外,您将收到一个警报管理器来处理各种支持系统上的通知。
14. Kubernetes节点有什么作用?
对于 pod 的运行,Node 提供了至关重要的功能。 Nods,也称为 minions,可以根据集群在任何真实或虚拟计算机上运行。
在 Kubernetes 中,节点是主要的工作计算机,而主组件单独监督每个节点。
15. 详细描述潮人。
Heapster 结合了在每个节点上执行的 Kubelet 生成的整个集群中的数据。 这个容器管理工具由这个 Kubernetes 集群原生支持,它像集群中的任何其他 pod 一样作为一个 pod 运行。
基本上,这需要定位集群中的每个节点并利用机器上的 Kubernetes 代理从集群的 Kubernetes 节点查询数据。
16.描述Kubernetes主节点的运行。
主节点提升工作节点的统治和控制节点。 这类似于 Kubernetes 集群。 这些节点负责集群管理以及用于配置和管理集合资源的 API。 由于专用 Pod 的优势,Kubernetes 主节点可以与 Kubernetes 本身一起运行。
17. Container 和 Pod 有什么区别?
作为复制单元,Kubernetes 使用 pod,它是一组容器。 容器是应用程序的 pod 应创建的代码集合。 在同一个 pod 中,容器可以相互通信。
18. 你对 Kubernetes 中的负载均衡器的理解是什么?
最普遍和接受的服务公开方法之一是负载平衡器。 根据工作环境的不同,负载均衡器可以是内部负载均衡器,也可以是外部负载均衡器。
当外部负载均衡器将流量从外部负载路由到后端 pod 时,内部负载均衡器会自动平衡负载并为 pod 分配必要的配置。
19. Kube-API server 有什么作用?
对于 API 对象,此类型验证并提供配置信息。 它由复制控制器、服务和 Pod 组成。 此外,它还提供 REST 操作和集群的接口。 所有其他组件都通过这种通用的前端集群状态相互通信。
20. Kubernetes 的stateful sets 是什么意思?
称为有状态集的工作负载 API 对象用于管理有状态应用程序。 它用于扩展 pod 集和管理部署。 在链接到有状态集的磁盘存储中,有状态 Pod 的状态信息和其他弹性数据被保存并保持最新。
21. 你如何检查 pod 的中央日志?
要从 pod 中检索中央日志,您可以使用两种日志记录方式之一。
- 在节点级别使用日志代理。
- 流中的边车容器
- 将日志记录代理与边车容器一起使用。
- 直接从程序导出日志
22. ClusterIP:它是什么?
默认的 Kubernetes 服务 ClusterIP 提供集群中的其他应用程序可以访问的内部集群服务(没有外部访问)。
23. 告诉我有关复制控制器的信息?
对于所有长时间运行的 pod,复制控制器充当主管。 它保证在任何时刻所需数量的 pod 处于活动状态,并且每个 pod 或 pod 组具有一致的结构。
如果 pod 的数量多于预期数量,则多余的 pod 将被终止。 此外,控制器将立即更换任何有故障的吊舱。
24. Ingress 网络是如何运作的,它是什么?
由于名为入口的项目,用户可以从 Kubernetes 集群外部访问您的 Kubernetes 服务。 通过建立指定哪些入站连接到达特定服务的规则,用户可以配置访问。
这个 API 对象提供了控制 Kubernetes 集群中的服务如何被集群外部的访问者通过 HTTPS/HTTP 访问所需的路由规则。 有了这个,用户可以快速有效地建立流量路由规则,而无需制作多个负载均衡器或将每个服务暴露给节点。
25. Kubernetes 中的 Prometheus:它有什么用?
一个名为 Prometheus 的开源工具包用于根据指标监控应用程序并发出警告。 它提供数据模式和查询语言,并能够提供指标信息和操作。 它使语言能够用于许多工具性目的。
除了 Alertmanager 和 Grafana,Prometheus operator 还提供对部署和 K8s 服务的简单监控。
26.什么是无头服务?
无头服务是一种使用 IP 地址但提供有关已连接 Pod 的信息而不是负载平衡的服务。
27. 要在本地运行 Kubernetes 架构,我需要什么?
对于 Kubernetes 集成,一些本地基础设施已经进行了重构。 需要高级专业知识才能将存储、服务器和网络集成到一个无缝系统中。
选择合适的网络和存储硬件对于 Kubernetes 至关重要,因为它可以与存储资源、负载均衡器等进行交互。自动化网络和存储组件是 Kubernetes 价值主张的关键组成部分。
28. 你对Stateful set的理解是什么?
称为有状态集的工作负载 API 项用于管理有状态应用程序。 它还可用于扩展 pod 集和管理部署。 连接到有状态集的磁盘存储包含有状态 Pod 的状态信息和其他数据。
29. 在Kubernetes中,minions是什么意思?
在 Kubernetes 中,节点被称为工作机器; 以前,它被称为 minion。 基于集群,可以是虚拟机,也可以是真机。
每个节点都由 Kubernetes 主组件管理,并包含操作 pod 所需的服务。 容器运行时、kubelet 和 Kube-proxy 包含在节点提供的服务中。
30. 服务在 Kubernetes 组件中执行哪些功能?
通过提供虚拟 IP 地址,服务作为 Pod 的抽象。 虚拟 IP 地址有助于用户连接到在 pod 内运行的容器。 它是一个组件,用于确定容器在 pod 中的排列方式。
31.Helm到底是什么?
CNF 维护的 Helm 应用程序包管理注册表可用于 Kubernetes。 预配置 掌舵图 可以下载并部署在您的 Kubernetes 系统中。 这是 Kubernetes 环境中最受欢迎的包管理解决方案之一。 DevOps 团队可以将应用程序部署到生产和开发环境中,对它们进行版本控制,并使用现有图表跟踪它们的进度。
32.解释PVC
PVC 是 Persistent Volume Claim 的缩写。 它是 Kubernetes 为 Pod 请求的存储。 用户无需了解底层供应。 形成 pod 的名称空间和应该进行此声明的位置应该匹配。
结论
Kubernetes 面试题及答案完整。
毫无疑问,关于 Kubernetes 的知识还有很多,这项尖端技术使管理和运行数以千计的容器成为可能,但这是一个坚实的起点。 如需面试准备方面的帮助,请参阅 Hashdork的采访系列.
发表评论