Top 55 Kubernetes Interview Questions and Answers (2025)
Kubernetes 面试题及答案(应届生)
1) 什么是 Kubernetes?
Kubernetes 是 Google 平台开发的容器管理系统。Kubernetes 的目的是在各种物理、虚拟和云环境中管理容器化应用程序。Google Kubernetes 是一个高度灵活的容器工具,可以一致地交付复杂的应用程序。应用程序运行在由数百到数千个独立服务器组成的集群上。
2) 定义 Kubernetes 中的节点
节点是最小的硬件单元。它定义了集群中的一台机器,这台机器可以是云提供商的虚拟机,也可以是数据中心的物理机。Kubernetes 集群中可用的每台机器都可以替换其他机器。
3) kube-scheduler 的作用是什么?
Kube-scheduler 是 Kubernetes 的默认调度器。它为新创建的 Pod 分配节点。
4) 定义 DaemonSets
DaemonSets 是一组运行在主机上的 Pod。它们用于主机层属性,如监控网络或简单的网络。
5) 定义 Kubernetes 中的 Heapster
Heapster 是一个用于收集由 Kublet 收集的数据的指标收集和性能监控系统。
6) Kubernetes 执行哪些任务?
Kubernetes 是用于分布式系统的 Linux 内核。它帮助您抽象化节点的底层硬件(服务器),并为消耗共享资源池的应用程序提供一致的接口。
7) 定义 Kubernetes Controller Manager
Controller Manager 是一个用于垃圾回收、核心控制循环和命名空间创建的守护进程。它允许在主节点上运行多个进程。
8) 为什么要使用 Kubernetes 的命名空间?
Kubernetes 中的命名空间用于在用户之间划分集群资源。它有助于在多个用户分布项目或团队的环境中提供资源范围。
9) 为什么要使用 Kubernetes?
使用 Kubernetes 是因为
- Kubernetes 可以在本地裸机、OpenStack、Google、Azure、AWS 等公共云上运行。
- 它可以帮助您避免供应商锁定问题,因为它可以使用除 Kubernetes 提供抽象(例如负载均衡器和存储)之外的任何供应商特定的 API 或服务。
- 它将使应用程序能够在不中断服务的情况下发布和更新。
- Kubernetes 允许您确保容器化应用程序在您想要的时间和地点运行,并帮助您找到您想要使用的资源和工具。
10) Kubernetes 的特点是什么?
Kubernetes 的特点是
- 自动化调度
- 自我修复能力
- 自动化发布与回滚
- 水平扩展与负载均衡
- 为开发、测试和生产提供环境一致性
- 基础设施与每个组件松散耦合,可以作为独立单元
- 提供更高的资源利用率
- 提供企业级功能
- 以应用为中心进行管理
- 自动扩展的基础设施
- 您可以创建可预测的基础设施
11) 提及控制器管理器的类型
控制器管理器的类型是:1) endpoints controller, 2) service accounts controller, 3) node controller, 4) namespace controller, 5) replication controller, 6) token controller。
12) 解释 Kubernetes 架构
- Master Node(主节点):主节点是第一个也是最重要的组件,负责管理 Kubernetes 集群。它是所有管理任务的入口点。集群中可能有一个以上的主节点来检查容错能力。
- API Server(API 服务器):API 服务器充当所有用于控制集群的 REST 命令的入口点。
- Scheduler(调度器):调度器将任务调度到从节点。它存储每个从节点的资源使用信息。它负责分发工作负载。
- Etcd:etcd 组件存储配置详细信息和值。它与大多数组件通信以接收命令并工作。它还管理网络规则和端口转发活动。
- Worker/Slave nodes(工作节点/从节点):工作节点是另一个重要组件,包含管理容器之间通信所需的所有服务,与主节点通信,允许您为调度容器分配资源。
- Kubelet:它从 API 服务器获取 Pod 的配置,并确保所描述的容器正在运行。
- Docker Container(Docker 容器):Docker 容器运行在每个工作节点上,运行配置的 Pod。
- Pods(Pod):Pod 是一个或多个容器的组合,它们在节点上逻辑上一起运行。
13) 列出 Kubernetes 中可用的各种服务
Kubernetes 中可用的各种服务是 1) Cluster IP service, 2) Load Balancer service, 3) Node Port service, 4) External Name Creation service。
14) 定义 Cluster IP
Cluster IP 是 Kubernetes 服务,它在集群内提供一个其他集群内的应用程序可以访问的服务。
15) 解释 Node Port
Node Port 服务是获得外部流量到您的服务的基本方式。它在所有节点上打开一个特定端口,并将发送到该端口的网络流量转发。
16) 定义 Kubelet
Kubelet 是一个服务代理,通过 Kubernetes 检查 Pod 规范来控制和维护 Pod 组。Kubelet 运行在每个节点上,并允许主节点和从节点之间的通信。
17) Kubernetes 有哪些缺点?
- Kubernetes Dashboard 不如预期有用。
- 安全性不是非常有效。
- 它非常复杂,可能会降低生产力。
- Kubernetes 比其替代品更昂贵。
18) 什么是 Kube-proxy?
Kube-proxy 是网络代理和负载均衡器的实现。它用于支持与其他网络操作一起使用的服务抽象。它负责根据 IP 和端口号将流量导向容器。
19) Kubernetes 和 Docker Swarm 有什么区别?
Kubernetes 和 Docker Swarm 的区别是
Kubernetes | Docker Swarm |
---|---|
Kubernetes 提供自动扩展功能。 | Docker Swarm 不提供自动扩展功能。 |
手动配置您的负载均衡设置。 | 执行自动负载均衡 |
安装复杂且耗时。 | 安装简单快捷。 |
提供 GUI。 | 不提供 GUI。 |
它提供内置的负载均衡技术。 | 进行进程调度以在更新期间维护服务。 |
20) 定义 Ingress Network
Ingress network 定义为允许连接到 Kubernetes 集群的规则集合。
21) Kubectl 用于什么?
Kubectl 是用于控制 Kubernetes 集群的软件。Ctl 表示控制,它是一个命令行接口,用于将命令传递给集群并管理 Kubernetes 组件。
22) 什么是 GKE?
GKE 或 Google Container Engine 是一个管理平台,支持在 Google 的公共云服务中运行的集群和 Docker 容器。
23) 为什么需要负载均衡器?
需要负载均衡器是因为它提供了一种标准的方式来将网络流量分发到后端运行的不同服务。
24) 如何在本地运行 Kubernetes?
可以使用 Minikube 工具在本地运行 Kubernetes。它在计算机的虚拟机(VM)中运行一个单节点集群。因此,它为刚开始学习 Kubernetes 的用户提供了理想的方式。
25) 用于容器监控的工具有哪些?
用于容器监控的工具有
- Heapster
- cAdvisor
- Prometheus
- InfluxDB
- Grafana
Kubernetes 面试题及答案(有经验者)
26) 列出 Kubernetes 的组件
Kubernetes 有三个组件,它们是
- Addons(插件)
- Node components(节点组件)
- Master Components(主节点组件)
27) 定义 Headless Service
Headless Service 定义为使用 IP 地址的服务,但它不进行负载均衡,而是返回关联的 Pod。
28) 节点状态的重要组件有哪些?
节点状态的重要组件是
- 条件
- 容量
- Info(信息)
- 地址
29) 什么是 Minikube?
Minikube 是一款帮助用户运行 Kubernetes 的软件。它运行在您计算机上 VM 中的单个节点上。此工具也由使用 Kubernetes 开发应用程序的程序员使用。
30) 提及 GKE 的用途
GKE(Google Kubernetes Engine)的用途是
- 可用于创建 Docker 容器集群
- 调整应用程序控制器的大小
- 更新和升级容器集群
- 调试容器集群。
- GKE 可用于创建复制控制器、作业、服务、容器 Pod 或负载均衡器。
31) 定义 Kubernetes 中的编排
Kubernetes 中的编排定义为一种自动化的方法,用于调度每个容器的工作。它用于集群内基于微服务的应用程序。
32) 解释 Kubernetes 中的 Prometheus
Prometheus 是一款用于监控和警报的应用程序。它可以被调用到您的系统,抓取实时指标,进行压缩,并正确地存储在数据库中。
33) 列出容器编排工具
容器编排的工具是 1) Docker swarm, 2) Apache Mesos, and 3) Kubernetes。
34) 提及 Kubernetes 对象列表?
Kubernetes 中使用的对象是:1) Pods, 2) Replication sets and controllers, 3) Jobs and cron jobs, 4) Daemon sets, 5) Distinctive identities, 6) Deployments, 7) and Stateful sets。
35) 定义 Kubernetes 中的 StatefulSets
StatefulSet 是一个工作负载 API 对象,用于管理有状态应用程序。它还可以用于管理 Pod 集合的部署和扩展。有状态 Pod 的状态信息和其他数据存储在与 StatefulSet 连接的磁盘存储中。
36) 为什么要使用 DaemonSets?
使用 DaemonSets 是因为
- 它允许在每个节点上运行存储平台,如 ceph 和 glusterd。
- DaemonSets 在每个节点上运行日志收集,如 filebeat 或 fluentd。
- 它在每个节点上执行节点监控。
37) 解释 ReplicaSet
ReplicaSet 用于保持 Pod 副本的稳定。它允许我们指定相同 Pod 的可用数量。这可以被认为是 replication.controller 的替代品。
38) 列出一些重要的 Kubectl 命令
重要的 Kubectl 命令是
- kubectl annotate
- kubectl cluster-info
- kubectl attach
- kubectl apply
- kubectl config
- kubectl autoscale
- kubectl config current-context
- kubectl config set。
39) 为什么使用 Kube-apiserver?
Kube-apiserver 是 Kubernetes 的 API 服务器,用于配置和验证 API 对象,包括服务、控制器等。它为集群的共享区域提供了前端,组件通过该前端相互交互。
40) 解释 Kubernetes Pod 的类型
Kubernetes 中有两种类型的 Pod
- Single Container Pod(单容器 Pod):可以使用 run 命令创建。
- Multicontainer pods(多容器 Pod):可以使用 Kubernetes 中的“create”命令创建。
41) Kubernetes 中的标签是什么?
标签是包含某些值的键的集合。键值与 Pod、复制控制器和关联的服务相关联。通常,标签在创建时添加到某个对象。用户可以在运行时修改它们。
42) 复制控制器的目标是什么?
复制控制器的目标是
- 它负责控制和管理 Pod 的生命周期。
- 它监控和验证是否正在运行允许数量的副本。
- 复制控制器帮助用户检查 Pod 状态。
- 它允许修改 Pod。用户可以根据需要拖动其位置。
43) 什么是持久卷?
持久卷是由管理员控制的存储单元。它用于管理集群中的单个 Pod。
44) Kubernetes 中的 Secret 是什么?
Secret 是敏感信息,如用户的登录凭据。它们是 Kubernetes 中的对象,在执行加密后存储敏感信息,如用户名和密码。
45) 什么是 Sematext Docker Agent?
Sematext Docker agent 是一个带有事件和指标的日志收集代理。它作为小型容器运行在每个 Docker 主机上。这些代理收集所有集群节点和容器的指标、事件和日志。
46) 定义 OpenShift
OpenShift 是由 Red Hat 开发的公共云应用程序开发和托管平台。它提供自动化管理,以便开发人员可以专注于编写代码。
47) 定义 K8s
K8s (K-八字符-S) 是 Kubernetes 的术语。它是一个开源的容器化应用程序编排框架。
48) 什么是联邦集群?
联邦集群是作为单个集群管理的多个集群。
49) 提及 Docker 卷和 Kubernetes 卷之间的区别
Kubernetes Volumes | Docker Volumes |
---|---|
卷不限于任何容器。 | 卷限于容器中的 Pod。 |
Kubernetes 卷支持 Kubernetes Pod 中部署的所有容器。 | Docker 卷不支持 Docker 中部署的所有容器。 |
50) 为 Kubernetes 提供 API 安全的方式有哪些?
为 Kubernetes 提供 API 安全的方式是
- 使用正确的认证模式与 API 服务器认证模式=Node。
- 使用 webhook 保护其 API 的 kubeless。
- 确保 kube-dashboard 使用严格的 RBAC(基于角色的访问控制)策略。
51) 什么是 ContainerCreating Pod?
ContainerCreating Pod 是可以调度到节点但无法正常启动的 Pod。
52) Kubernetes 卷的类型有哪些?
Kubernetes 卷的类型是
- EmptyDir
- GCE persistent disk
- Flocker
- HostPath
- NFS
- ISCSI
- rbd
- PersistentVolumeClaim
- downwardAPI
53) 解释 PVC
PVC 的全称是 Persistent Volume Claim。它是 Kubernetes 为 Pod 请求的存储。用户无需了解底层配置。此声明应在与 Pod 相同的命名空间中创建。
54) 什么是 Kubernetes 网络策略?
网络策略定义了同一命名空间中的 Pod 如何相互以及与网络端点通信。
55) 什么是 Kubernetes 代理服务?
Kubernetes 代理服务是一种运行在节点上并帮助使其可供外部主机访问的服务。
这些面试问题也将有助于您的口试