[面试] 15道最典型的k8s面试题
文章目录
- 在 Kubernetes 中,有以下常见的资源对象:
- 1.什么是 Kubernetes?它的主要特点是什么?
- 2. Kubernetes 中的 Pod 是什么?它的作用是什么?
- 3.Kubernetes 中的 Deployment 和 StatefulSet 有何区别?
- 4.什么是 Kubernetes 中的 Service?它的作用是什么?
- 5.请解释一下 Kubernetes 中的水平扩展(Horizontal Pod Autoscaling)是什么,以及它是如何工作的?
- 6. Kubernetes 中的 ConfigMap 和 Secret 有何区别,分别用于什么目的?
- 7.如何在 Kubernetes 中进行滚动更新(Rolling Update)?
- 8.什么是命名空间(Namespace),以及它在 Kubernetes 中的作用是什么?
- 9.如何在 Kubernetes 中使用存储卷(Volume)?
- 10.Kubernetes 中的调度器(Scheduler)负责什么任务?
- 11.解释一下 Kubernetes 中的亲和性调度(Affinity Scheduling)和反亲和性调度(Anti-Affinity Scheduling)。
- 12.什么是 DaemonSet?它在 Kubernetes 集群中的作用是什么?
- 13.Kubernetes 中的控制器(Controller)有哪些类型?请举例说明。
- 14.如何进行 Kubectl 命令行工具的安装和配置?
- 15.分享你在使用 Kubernetes 过程中遇到的一个挑战以及你如何解决它。
- 更多
在 Kubernetes 中,有以下常见的资源对象:
- Pod(Pod):容器的最小调度单位,可以包含一个或多个相关容器。
- Deployment(部署):用于控制 Pod 的创建、更新和删除,确保应用的稳定运行。
- Service(服务):为一组具有相同标签的 Pod 提供统一访问入口,并提供负载均衡能力。
- Ingress(入口):通过定义规则来管理从外部访问集群内 Service 的流量。
- ConfigMap(配置映射):存储应用程序的配置数据,以键值对的形式提供给容器。
- Secret(密钥):用于存储敏感数据,如密码、令牌等,并将其安全地传递给容器。
- Volume(卷):在容器之间共享和持久化数据的抽象概念。
- StatefulSet(有状态副本集):管理有状态应用程序的创建、更新和删除,确保每个 Pod 都有唯一的网络标识和稳定的持久化存储。
- DaemonSet(守护进程集):确保集群中的每个节点都运行一个 Pod 实例,用于在整个集群中运行系统级任务。
- Job(作业):用于创建一次性任务,会运行一个或多个 Pod 直到完成指定的工作。
- CronJob(定时作业):根据用户定义的时间表定期运行 Job。
- Namespace(命名空间):用于在集群内部分隔资源,实现多租户的隔离和资源管理。
- ServiceAccount(服务账户):与 Pod 关联的身份验证信息,并授予 Pod 访问其他资源的权限。
除了上述常见的资源对象之外,Kubernetes 还支持许多其他类型的资源对象,如 PersistentVolume、PersistentVolumeClaim、ReplicaSet、HorizontalPodAutoscaler 等。每个资源对象都有不同的用途和特点,可以根据实际需求选择适合的资源对象来管理和部署应用程序。
1.什么是 Kubernetes?它的主要特点是什么?
Kubernetes 是一个开源的容器编排系统,用于自动化部署、扩展和管理容器应用程序。它可以帮助我们更轻松地部署和管理容器化应用程序,并提供高可用性、弹性、自动化和安全性等特性。
2. Kubernetes 中的 Pod 是什么?它的作用是什么?
Pod 是 Kubernetes 最小的可部署单元,它可以包含一个或多个紧密耦合的容器。Pod 的主要作用是提供一个环境,让容器可以共享网络和存储资源,并且它还提供了容器间通信和生命周期管理等功能。
3.Kubernetes 中的 Deployment 和 StatefulSet 有何区别?
Deployment 用于部署无状态应用程序,而 StatefulSet 用于部署有状态应用程序。StatefulSet 可以保证应用程序的唯一性和顺序性,同时支持有状态服务的动态扩展和缩减等操作。
4.什么是 Kubernetes 中的 Service?它的作用是什么?
Service 是 Kubernetes 中的一种资源对象,它负责为 Pod 提供一个固定的 IP 地址和 DNS 记录,并将请求转发给相应的 Pod。Service 的主要作用是提供网络访问和负载均衡。
5.请解释一下 Kubernetes 中的水平扩展(Horizontal Pod Autoscaling)是什么,以及它是如何工作的?
水平扩展是一种根据应用程序的负载自动调整 Pod 数量的方法。Kubernetes 的 Horizontal Pod Autoscaling(HPA) 功能可以根据 CPU 利用率、内存利用率等指标自动调整 Pod 数量,从而实现负载均衡和避免资源浪费。
6. Kubernetes 中的 ConfigMap 和 Secret 有何区别,分别用于什么目的?
ConfigMap 和 Secret 都用于将配置信息注入到容器中。其中,ConfigMap 主要用于保存配置文件、环境变量等普通字符串类型的配置信息,而 Secret 则主要用于保存敏感信息如密码、证书等加密数据。
7.如何在 Kubernetes 中进行滚动更新(Rolling Update)?
使用 Rolling Update 可以在不中断服务的情况下逐步更新应用程序。在 Kubernetes 中,可以通过修改 Deployment 的版本号等方式来进行滚动更新。通过逐步替换旧的 Pod 实例来达到更新的效果。
8.什么是命名空间(Namespace),以及它在 Kubernetes 中的作用是什么?
命名空间是 Kubernetes 中用于隔离资源的一种机制。它可以将不同的资源组织到不同的命名空间中,以便更好地管理和隔离这些资源。命名空间还提供了一定的访问控制机制,可以限制用户和应用程序对资源的访问权限。
9.如何在 Kubernetes 中使用存储卷(Volume)?
在 Kubernetes 中,可以通过声明式方式或者命令式方式来定义和管理存储卷。通过存储卷,可以将数据持久化到某种外部存储设备中,如云盘、本地磁盘等。
10.Kubernetes 中的调度器(Scheduler)负责什么任务?
调度器是 Kubernetes 中的一个核心组件,它负责选择合适的节点来运行 Pod。调度器根据节点的资源利用率、节点标签、Pod 的要求等因素来做出决策,以便将 Pod 调度到最优的节点上运行。
11.解释一下 Kubernetes 中的亲和性调度(Affinity Scheduling)和反亲和性调度(Anti-Affinity Scheduling)。
亲和性调度和反亲和性调度是 Kubernetes 中常用的 Pod 调度策略。亲和性调度可以将 Pod 调度到拥有特定标签的节点上,反亲和性调度则可以避免将多个相似的 Pod 调度到同一个节点上,以确保高可用性和容错性。
12.什么是 DaemonSet?它在 Kubernetes 集群中的作用是什么?
DaemonSet 是一个特殊的控制器,它负责将 Pod 在集群中的每个节点上启动和管理。DaemonSet 的主要作用是在所有节点上部署后台服务或者特定的网络代理。
13.Kubernetes 中的控制器(Controller)有哪些类型?请举例说明。
在 Kubernetes 中,常见的控制器类型包括 Deployment、StatefulSet、DaemonSet、Job 等。Deployment 可以进行滚动更新、回滚等操作,StatefulSet 可以保证有状态应用程序的唯一性和顺序性,DaemonSet 负责管理每个节点上的 Pod,而 Job 则可以运行一次性任务。
14.如何进行 Kubectl 命令行工具的安装和配置?
Kubectl 是 Kubernetes 命令行工具,可以用于管理 Kubernetes 集群。可以通过下载二进制文件或者使用 apt 或 yum 包管理器来安装和配置 Kubectl。
15.分享你在使用 Kubernetes 过程中遇到的一个挑战以及你如何解决它。
k8s容器不断重启的可能原因和解决方案
-
资源不足:如果节点的资源(如 CPU、内存)不足以支持容器正常运行,容器可能会频繁重启。解决方案是检查节点资源使用情况,并确保节点上有足够的资源供容器使用。
-
配置错误:配置错误可能导致容器无法启动或崩溃,从而触发重启。解决方案是仔细检查容器的配置文件、环境变量和命令等,确保它们正确无误。
-
存储问题:如果容器依赖的存储卷出现问题,如挂载失败、权限问题等,容器可能无法正常运行而重启。解决方案是检查存储卷的状态,确保存储卷正常挂载,并正确配置权限。
-
镜像问题:容器使用的镜像可能存在问题,如权限错误、缺少依赖等,导致容器无法启动或崩溃。解决方案是确保容器镜像可用并符合要求,可以尝试使用其他版本的镜像或重新构建镜像。
-
网络问题:网络配置错误、端口冲突等问题可能导致容器无法正常通信,从而触发重启。解决方案是检查容器的网络配置,确保端口映射、IP 地址分配等正确配置,并避免网络冲突。
-
健康检查失败:容器的健康检查如果失败,将被 Kubernetes 识别为故障容器并自动重启。解决方案是检查健康检查配置,确保容器内的应用程序能够正常响应健康检查请求。
-
日志分析:通过查看容器的日志可以帮助定位问题,例如错误日志或异常堆栈信息。从日志中可以获取更多关于容器崩溃的线索,进而解决问题。
更多
2023高薪必备:K8S面试题

相关文章:
[面试] 15道最典型的k8s面试题
文章目录 在 Kubernetes 中,有以下常见的资源对象:1.什么是 Kubernetes?它的主要特点是什么?2. Kubernetes 中的 Pod 是什么?它的作用是什么?3.Kubernetes 中的 Deployment 和 StatefulSet 有何区别&#x…...
lintcode 552 · 创建最大数 【算法 数组 贪心 hard】
题目 https://www.lintcode.com/problem/552/description 描述 给出两个长度分别是m和n的数组来表示两个大整数,数组的每个元素都是数字0-9。从这两个数组当中选出k个数字来创建一个最大数,其中k满足k < m n。选出来的数字在创建的最大数里面的位置…...
ModbusTCP服务端
1在Device下,添加设备net: 公交车。 2在net下添加 ModbusTCP...
Middleware ❀ Hadoop功能与使用详解(HDFS+YARN)
文章目录 1、服务概述1.1 HDFS1.1.1 架构解析1.1.1.1 Block 数据块1.1.1.2 NameNode 名称节点1.1.1.3 Secondary NameNode 第二名称节点1.1.1.4 DataNode 数据节点1.1.1.5 Block Caching 块缓存1.1.1.6 HDFS Federation 联邦1.1.1.7 Rack Awareness 机架感知 1.1.2 读写操作与可…...
Matlab图像处理-从RGB转换为HSV
从RGB转换为HSV HSV彩色系统基于圆柱坐标系。从RGB转换为HSV需要开发将(笛卡儿坐标系中的)RGB值映射到圆柱坐标系的公式。多数计算机图形学教材中已详细推导了这一公式,故此处从略。 从RGB转换为HSV的MATLAB函数是rgb2hsv,其语法为: hsv_imag…...
iOS Error Domain=PHPhotosErrorDomain Code=3300
AVCapturePhoto的数据保存到 PHPhotoLibrary的时候报错Error DomainPHPhotosErrorDomain Code3300解决代码(也可以使用addResourceWithType:data:options:来添加数据到request,JEPG的实测可以,raw的不确定): [PHPhoto…...
LeetCode(力扣)435. 无重叠区间Python
LeetCode435. 无重叠区间 题目链接代码 题目链接 https://leetcode.cn/problems/non-overlapping-intervals/ 代码 class Solution:def eraseOverlapIntervals(self, intervals: List[List[int]]) -> int:if not intervals:return 0intervals.sort(keylambda x: x[0])co…...
opencv c++实现鼠标框选区域并显示选择的图片区域
OpenCV可以使用setMouseCallback设置鼠标事件的回调函数,从而然后根据需要进行处理。 setMouseCallback原型为: void cv::setMouseCallback(const cv::String& windowName, MouseCallback onMouse, void* userData = 0); 其中,参数说明如下:windowName:窗口名称 onMo…...
Python实现自主售卖机
1 问题 在python中我们常常使用到条件判断,if语句时常见的条件判断语句之一。那么如何使用if语句实现根据情况自动选择商品进行售卖呢? 2 方法 根据if语句执行时从上往下执行的特点,使用if语句、dict和list来实现整个流程。 代码清单 1 drink…...
任务复杂度与人机
任务复杂度计算是指根据任务的难易程度和需要的资源投入来评估任务的复杂程度。一般来说,任务复杂度计算会考虑以下几个因素: 难度程度:任务的难度程度是指完成任务所需要的知识、技能和经验等的要求。较高的难度程度会增加任务的复杂度。任务…...
Windows关闭zookeeper、rocketmq日志输出以及修改rocketmq的JVM内存占用大小
JDK-1.8zookeeper-3.4.14rocketmq-3.2.6 zookeeper 进入到zookeeper的conf目录 清空配置文件,只保留下面这一行。zookeeper关闭日志输出相对简单。 log4j.rootLoggerOFFrocketmq 进入到rocketmq的conf目录 logback_broker.xml <?xml version"1.0&q…...
Convai:让虚拟游戏角色更智能的对话AI人工智能平台
【产品介绍】 名称 Convai 具体描述 Convai是一款专为虚拟世界而设计的对话人工智能平台,它可以让你为你的游戏或应用中的角色 赋予人类般的对话能力。Convai利用了最先进的生成式对话人工智能技术,让你的角色可以…...
【送书活动】大模型赛道如何实现华丽的弯道超车
文章目录 导读前言AI/ML 模型训练任务对数据平台的需求01 具备对海量小文件的频繁数据访问的 I/O 效率02 提高 GPU 利用率,降低成本并提高投资回报率03 支持各种存储系统的原生接口04 支持单云、混合云和多云部署 核心密码01 通过数据抽象化统一数据孤岛02 通过分布…...
opencv dnn模块 示例(16) 目标检测 object_detection 之 yolov4
博客【opencv dnn模块 示例(3) 目标检测 object_detection (2) YOLO object detection】 测试了yolov3 及之前系列的模型,有在博客【opencv dnn模块 示例(15) opencv4.2版本dnn支持cuda加速(vs2015异常解决)】 说明了如何使用dnn模块进行cuda…...
Python提取JSON数据中的键值对并保存为.csv文件
本文介绍基于Python,读取JSON文件数据,并将JSON文件中指定的键值对数据转换为.csv格式文件的方法。 在之前的文章Python提取JSON文件中的指定数据并保存在CSV或Excel表格文件内(https://blog.csdn.net/zhebushibiaoshifu/article/details/132…...
使用IDEA开发Servlet
一、新建工程 二、填写新工程的基本信息 javaee8的项目可以运行在tomcat9 三、配置tomcat 1、编辑server信息 “On frame deactivation”的意思是idea窗口发生切换时。 2、编辑部署信息 war exploded方式,这种方式是以文件夹方式部署的,支持热加载。 …...
腾讯mini项目-【指标监控服务重构】2023-07-21
今日已办 当在Docker容器中运行程序时,可能会遇到使用os.Getpid()函数时出现异常的情况。这是因为Docker容器中的进程隔离机制与宿主机器不同,容器内部的进程可能无法访问宿主机器的进程信息。 要解决这个问题,可以尝试: 使用do…...
Spring MVC里的DispatchServlet(结合Spring官网翻译)
Spring MVC里的DispatchServlet 前言1.Spring Web MVC1.1 DispatcherServlet(中央调度器)1.1.1 Context Hierarchy(上下文层次结构)1.1.2 Special Bean Types(特定的bean类型)1.1.3 Web MVC Config1.1.4 Se…...
数据分享|R语言武汉流动人口趋势预测:灰色模型GM(1,1)、ARIMA时间序列、logistic逻辑回归模型...
全文链接:http://tecdat.cn/?p32496 人口流动与迁移,作为人类产生以来就存在的一种社会现象,伴随着人类文明的不断进步从未间断(点击文末“阅读原文”获取完整代码数据)。 相关视频 人力资源是社会文明进步、人民富裕…...
解决 Axios 跨域问题,轻松实现接口调用
跨域是指访问另外一个域的资源,由于浏览器的同源策略,默认情况下使用 XMLHttpRequest 和 Fetch 请求时是不允许跨域的。跨域的根本原因是浏览器的同源策略,这是由浏览器对 JavaScript 施加的安全限制。 Axios 跨域常见报错 跨域请求被阻止 (…...
Oracle查询表空间大小
1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...
3.3.1_1 检错编码(奇偶校验码)
从这节课开始,我们会探讨数据链路层的差错控制功能,差错控制功能的主要目标是要发现并且解决一个帧内部的位错误,我们需要使用特殊的编码技术去发现帧内部的位错误,当我们发现位错误之后,通常来说有两种解决方案。第一…...
iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版分享
平时用 iPhone 的时候,难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵,或者买了二手 iPhone 却被原来的 iCloud 账号锁住,这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...
蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练
前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1):从基础到实战的深度解析-CSDN博客,但实际面试中,企业更关注候选人对复杂场景的应对能力(如多设备并发扫描、低功耗与高发现率的平衡)和前沿技术的…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序
一、开发准备 环境搭建: 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 项目创建: File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...
MODBUS TCP转CANopen 技术赋能高效协同作业
在现代工业自动化领域,MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步,这两种通讯协议也正在被逐步融合,形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...
OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 在 GPU 上对图像执行 均值漂移滤波(Mean Shift Filtering),用于图像分割或平滑处理。 该函数将输入图像中的…...
Device Mapper 机制
Device Mapper 机制详解 Device Mapper(简称 DM)是 Linux 内核中的一套通用块设备映射框架,为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程,并配以详细的…...
Redis的发布订阅模式与专业的 MQ(如 Kafka, RabbitMQ)相比,优缺点是什么?适用于哪些场景?
Redis 的发布订阅(Pub/Sub)模式与专业的 MQ(Message Queue)如 Kafka、RabbitMQ 进行比较,核心的权衡点在于:简单与速度 vs. 可靠与功能。 下面我们详细展开对比。 Redis Pub/Sub 的核心特点 它是一个发后…...
使用Matplotlib创建炫酷的3D散点图:数据可视化的新维度
文章目录 基础实现代码代码解析进阶技巧1. 自定义点的大小和颜色2. 添加图例和样式美化3. 真实数据应用示例实用技巧与注意事项完整示例(带样式)应用场景在数据科学和可视化领域,三维图形能为我们提供更丰富的数据洞察。本文将手把手教你如何使用Python的Matplotlib库创建引…...
