Kubernetes 面试题2025年3月17日 | 阅读 15 分钟 以下是关于 Kubernetes 最常被问到的面试题及其最佳答案 1) 什么是 Kubernetes?/ 你对 Kubernetes 有什么理解?Kubernetes 是一个开源的容器编排工具或系统,用于自动化诸如容器化应用程序的管理、监控、扩展和部署等任务。 2) Kubernetes 的用途是什么?Kubernetes 主要用于轻松管理多个容器(因为它能够处理容器分组),这提供了可发现和可管理的逻辑单元。 3) 谁是 Kubernetes 的发明者?Kubernetes 最初由 Google 设计和开发,现在由 Cloud Native Computing Foundation (CNCF) 维护。 4) K8s 是什么?K8s 只是 Kubernetes 的另一个称呼。 5) Kubernetes 开发的初衷是什么?Kubernetes 开发的初衷是提供一个“用于跨主机集群自动化部署、扩展和操作应用程序容器的平台”。 6) 在软件和 DevOps 中,“编排”一词是什么意思?编排一词是指集成多个服务,使它们能够自动化进程或在特定的时间序列中同步信息。 例如,假设一个应用程序运行需要六七个微服务,如果你将它们放在单独的容器中,这不可避免地会给通信带来障碍。使用编排,我们可以快速实现,使单个容器中的所有服务无缝工作以完成一个目标。 7) Docker 和 Kubernetes 的关系是什么?Docker 是一个用于处理软件开发的开源平台。它主要用于将软件/应用程序运行所需的设置和依赖项打包到容器中,从而实现可移植性和许多其他优势。另一方面,Kubernetes 用于手动链接和编排由 Docker 创建的、运行在多个主机上的多个容器。 8) Docker Swarm 和 Kubernetes 的主要区别是什么?Docker Swarm 是一个开源的容器编排平台,用于对 Docker 容器进行集群和调度。它是 Docker 的原生产品。以下是 Docker Swarm 和 Kubernetes 之间的主要区别列表:
9) Kubernetes 中的节点 (node) 是什么意思?在 Kubernetes 中,节点是最小的硬件单元。它用于定义集群中的单个机器,该机器可以作为云提供商的虚拟机或数据中心的物理机。Kubernetes 集群的每台机器都可以替代其他机器。 10) Kubernetes Kube-scheduler 的用途是什么?Kube-scheduler 是 Kubernetes 的默认调度器。它用于为新创建的 Pod 分配节点。 11) Kubernetes 中的 Daemon Sets 是什么意思?Daemon Sets 是运行在主机上的一组 Pod,用于主机层面的属性,如监控网络或简单的网络。 12) Kubernetes 中的 Heapster 是什么?Heapster 是一个用于收集由 Kublet 收集的数据的指标收集和性能监控系统。 13) 使用 Kubernetes 的主要原因是什么?使用 Kubernetes 的主要原因如下:
14) Kubernetes 中的节点状态包含什么?在 Kubernetes 中,节点状态的主要组件是地址 (Address)、条件 (Condition)、容量 (Capacity) 和信息 (Info)。 15) 什么是 Kubernetes Network Policy?在 Kubernetes 中,Network Policy 指定了同一命名空间中的 Pod 如何相互通信以及与网络端点通信。 16) 在 Kubernetes Master Node 上运行的进程是什么?Kube-api server 进程运行在 Kubernetes Master Node 上。它用于扩展更多实例的部署。 17) 哪些类型的系统使用 Kubernetes?Kubernetes 是用于分布式系统的 Linux 内核。它为使用共享资源池的应用程序提供了一个一致的接口。 18) Kubernetes controller manager 是什么意思?Kubernetes controller manager 是一个守护进程,用于垃圾回收、核心控制循环和命名空间创建。它还允许在主节点上运行多个进程。 19) Kubernetes 中命名空间 (namespace) 的用途是什么?在 Kubernetes 中,命名空间用于在用户之间划分集群资源。它也有助于多个用户分散项目或团队,并提供资源的作用域。 20) Pod 在 Kubernetes 中是什么?在 Kubernetes 中,容器不直接运行,因此 Pod 是用于包装一个或多个容器以使其能够运行的高级结构。同一 Pod 中的容器共享本地网络和相同的资源。因此,它们可以轻松地与其他 Pod 中的容器进行通信。这样,它们就在同一台机器上运行,同时保持一定的隔离度。 21) Kube-scheduler 在 Kubernetes 中的作用是什么?在 Kubernetes 中,Kube-scheduler 用于为新创建的 Pod 分配节点。 22) Kubernetes 中的容器集群 (cluster of containers) 是什么意思?容器集群只不过是一组机器元素或节点。集群指定特定路由,以便在节点上运行的容器可以相互通信。在 Kubernetes 中,容器引擎还为主 API 服务器提供托管。 23) 有哪些不同类型的控制器管理器?以下是不同类型的控制器管理器列表:
24) 什么是 Google Container Engine?它的用途是什么?Google Container Engine 是一个开源管理平台,专为 Docker 容器和集群量身定制。它用于支持运行在 Google 公共云服务中的集群。 25) Kubernetes 最大的缺点是什么?Kubernetes 的最大缺点如下:
26) Kubernetes 中的 kubelet 是什么?在 Kubernetes 中,kubelet 是一个服务代理,用于通过检查 Pod 规范来控制和维护一组 Pod。kubelet 运行在每个节点上,使其能够与主节点和从节点之间进行通信。 27) Node port service 是什么意思?Node port service 是一种将外部流量引入服务的方式。它用于在所有节点上打开一个特定端口,并将网络流量转发到该端口。 28) Kubernetes 中的 Cluster IP 是什么?在 Kubernetes 中,Cluster IP 是集群内的服务,允许集群内的其他应用程序被访问。 29) Kubernetes 中有哪些可用的服务?以下是 Kubernetes 中可用的各种服务列表:
30) Ingress Network 是什么意思?Ingress network 是一组规则,允许进入 Kubernetes 集群的连接。 31) 用图解解释 Kubernetes 的架构?架构图 ![]() 图中关键组件的解释 Master Node(主节点):主节点是 Kubernetes 架构中第一个也是最重要的组件。它用于管理 Kubernetes 集群。它是所有管理任务的入口点。 集群中可能有一个以上的主节点以实现容错。 API Server(API 服务器):API 服务器是所有 REST 命令的入口点。它用于控制集群。 Scheduler(调度器):调度器用于将任务调度到从节点并分发工作负载。它还存储每个从节点的使用情况信息。 Etcd:etcd 组件用于存储配置详细信息和良好值。它与大多数组件通信并接收命令和工作。它还负责管理网络规则和端口转发活动。 Worker/Slave nodes(工作节点/从节点):工作节点或从节点是另一个重要组件,包含管理容器之间网络通信、与主节点通信所需的所有服务,允许您将资源分配给计划的容器。 Kubelet:它从 API 服务器获取 Pod 的配置,并确保描述的容器已启动并正在运行。 Docker Container(Docker 容器):Docker 容器运行在每个工作节点上,并运行配置好的 Pod。 Pods(Pod):Pod 被定义为逻辑上在节点上运行的单个或多个容器的组合。 32) Kubernetes 中的 Kube-proxy 是什么意思?在 Kubernetes 中,Kube-proxy 是网络代理和负载均衡器的实现。它用于支持具有其他网络操作的服务抽象,并负责根据 IP 和端口号将流量定向到容器。 33) Kubernetes 中的 Kubectl 是什么意思?它的用途是什么?在 Kubernetes 中,Kubectl 是用于控制 Kubernetes 集群的软件。“Kubectl” 中的 ctl 代表控制,是一个命令行界面,用于将命令传递给集群并管理 Kubernetes 组件。 34) GKE 的全称是什么?它的用途是什么?GKE 的全称是 Google Container Engine。它是一个管理平台,支持在 Google 的公共云服务中运行的集群和 Docker 容器。 35) Daemon set、Deployment 和 Replication controller 之间有什么区别?以下是 Daemon set、Deployment 和 Replication controller 之间的区别: Daemon set:Daemon set 用于确保您选择的所有节点都恰好运行一个 Pod 副本。 ![]() Deployment:Deployment 是 Kubernetes 中的一个资源对象。它用于提供应用程序的声明式更新。它还管理 Pod 的调度和生命周期。它提供了许多用于管理 Pod 的关键功能,例如 Pod 健康检查、Pod 的滚动更新、回滚和快速水平扩展 Pod 的能力。 Replication Controller:Replication controller 用于指定集群中应运行多少个 Pod 的精确副本。它与 Deployment 的区别在于它不提供 Pod 健康检查,并且滚动更新过程不如 Deployment 健壮。 36) Kubernetes 中负载均衡器的用途是什么?Kubernetes 中的负载均衡器用于以标准方式在后端运行的各种服务之间分发网络流量。 37) 如何在本地运行 Kubernetes?我们可以使用 Minikube 工具在本地运行 Kubernetes。它在计算机上的虚拟机 (VM) 中运行一个单节点集群。因此,它最适合刚开始学习 Kubernetes 的用户。 38) Sidecar 容器是什么?它的用途是什么?Sidecar 容器是一种辅助容器,用于支持 Pod 中的主容器。我们可以将 Sidecar 容器与一个或多个主容器配对,并增强这些主容器的功能。它主要用于监控或系统日志记录。 39) Headless Service 是什么意思?Headless Service 是一种特殊的服务,它使用 IP 地址,但不是进行负载均衡,而是返回关联的 Pod。 40) Kubernetes 中使用的主要对象是什么?以下是 Kubernetes 中使用的对象列表:
41) Kubernetes 中有哪些不同类型的 Pod?Kubernetes 中主要有两种类型的 Pod:
42) Kubernetes 中的 Prometheus 是什么意思?Prometheus 是一款用于监控和告警的应用。我们可以调用 Prometheus 来访问我们的系统,抓取实时指标,压缩它,并将其正确地存储在数据库中。 43) Replica set 和 Replication controller 之间有什么区别?Replica set 和 Replication Controller 两者都用于做几乎相同的事情。它们都确保在任何给定时间都有指定数量的 Pod 副本在运行。 它们之间的区别在于选择器的使用,用于复制 Pod。Replica Set 使用基于集合的选择器 (Set-Based selectors),而 Replication Controllers 使用基于相等性的选择器 (Equity-Based selectors)。 44) 基于相等性的选择器 (Equity-Based Selectors) 和基于集合的选择器 (Selector-Based Selectors) 之间有什么区别?查看基于相等性的选择器和基于集合的选择器之间的区别: Equity-Based Selectors(基于相等性的选择器):基于相等性的选择器是一种允许按标签键和值进行过滤的选择器。此选择器只会查找具有与标签相同的短语的 Pod。例如,如果你的标签键是 app=nginx,那么使用此选择器,你只能查找标签 app 等于 Nginx 的 Pod。 Selector-Based Selectors(基于集合的选择器):基于集合的选择器用于允许根据一组值过滤键。你可以说,这些选择器查找标签在集合中列出的 Pod。例如,如果你的标签键是 app in (Nginx, NPS, Apache)。使用此选择器,如果你的 app 等于 Nginx、NPS 或 Apache 中的任何一个,那么选择器将返回 true。 45) Kubernetes 推荐的安全措施有哪些?以下是一些 Kubernetes 推荐的安全措施的示例:
46) 如何为 Kubernetes 负载均衡器获取静态 IP?通过更改 DNS 记录,我们可以为 Kubernetes 负载均衡器获得静态 IP,因为 Kubernetes Master 可以分配一个新的静态 IP 地址。 47) kube-apiserver 和 kube-scheduler 的作用是什么?kube-apiserver 是主节点控制面板的前端,并遵循横向扩展架构。它用于暴露 Kubernetes Master 节点组件的所有 API。它负责建立 Kubernetes Node 和 Kubernetes Master 组件之间的通信。 kube-scheduler 用于在工作节点上分发和管理工作负载。它根据资源需求选择最适合运行未计划 Pod 的节点,并跟踪资源利用率。它确保工作负载不会被调度到已经满载的节点上。 48) Kubernetes 中的 minikube 是什么意思?Minikube 是一个方便用户运行 Kubernetes 的软件。它在你的计算机上的 VM 中运行在单个节点上。这个工具也被使用 Kubernetes 开发应用程序的程序员使用。 49) 最重要的 Kubectl 命令有哪些?以下是一些重要的 Kubectl 命令列表:
50) Kubernetes 中的标签 (labels) 是什么意思?标签是一组包含某些值的键。键值与 Pod、Replica controller 和相关服务相关联。通常,标签在对象创建时添加到对象中。我们可以在运行时轻松修改它们。 51) Replication controller 的主要目标是什么?以下是 Replication controller 的主要目标:
52) Sematext Docker Agent 是什么意思?Sematext Docker Agent 是一个日志收集代理,包含事件和指标,它作为一个小容器在每个 Docker 主机上运行。这些代理负责收集所有集群节点和容器的指标、事件和日志。 53) Kubernetes 中的持久卷 (persistent volume) 是什么意思?在 Kubernetes 中,持久卷是管理员控制的存储单元。它用于管理集群中的单个 Pod。 54) 集群中的所有节点大小都一样吗?不,集群中的所有节点大小不都一样。Kubernetes 组件,如 kubelet,会占用节点上的资源,你还需要额外的容量让节点执行任何任务。在较大的集群中,始终优选创建不同实例大小的混合。这样,Kubernetes 就可以轻松地将需要大量内存的 Pod 与计算密集型工作负载一起调度到大型节点上,而小型节点可以处理较小的 Pod。 55) Kubernetes 中的 ContainerCreating Pod 是什么?ContainerCreating Pod 是一种调度到节点但无法正常启动的特定类型的 Pod。 56) Kubernetes 有哪些不同类型的 Volume?以下是 Kubernetes Volume 的不同类型:
57) Kubernetes 中的 Secrets 是什么?Secrets 是 Kubernetes 中的对象,它们在执行加密后存储敏感信息,如用户名和密码。 58) Kubernetes 中的 OpenShift 是什么意思?OpenShift 是由 Red Hat 开发的一个公共云应用程序开发和托管平台。它用于提供管理自动化,以便开发人员可以轻松编写代码。 59) Kubernetes 中的 K8s 是什么意思?K8s (K-eight characters-S) 是用于 Kubernetes 的术语。它是一个用于容器化应用程序的开源编排框架。 60) Federated clusters 是什么意思?Federated clusters 是一组由多个集群组成的集合,它们被当作一个单一集群进行管理。 61) Kubernetes Volumes 和 Docker volumes 之间有什么区别?Kubernetes Volumes 和 Docker volumes 之间的主要区别是:
62) 提供 Kubernetes API 安全有哪些方法?有以下几种方法可以提供 Kubernetes API 安全:
63) PVC 是什么意思?它的全称是什么?PVC 的全称是 Persistent Volume Claim。它是 Kubernetes 为 Pod 请求的存储。在 PVC 中,不需要知道底层的配置。你可以在 Pod 创建的同一命名空间中创建该声明。 64) Container resource monitoring 是什么意思?用户需要了解应用程序在所有不同抽象层上的性能和资源利用率。Kubernetes 在不同的级别(如容器、Pod、服务和整个集群)创建抽象以便对其进行良好监控。这个过程称为容器资源监控。 以下是一些容器资源监控工具列表:
|
我们请求您订阅我们的新闻通讯以获取最新更新。