[面试] 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 跨域常见报错 跨域请求被阻止 (…...
地震勘探——干扰波识别、井中地震时距曲线特点
目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波:可以用来解决所提出的地质任务的波;干扰波:所有妨碍辨认、追踪有效波的其他波。 地震勘探中,有效波和干扰波是相对的。例如,在反射波…...
MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例
一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...
2025年能源电力系统与流体力学国际会议 (EPSFD 2025)
2025年能源电力系统与流体力学国际会议(EPSFD 2025)将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会,EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...
基于数字孪生的水厂可视化平台建设:架构与实践
分享大纲: 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年,数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段,基于数字孪生的水厂可视化平台的…...
Keil 中设置 STM32 Flash 和 RAM 地址详解
文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...
Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!
一、引言 在数据驱动的背景下,知识图谱凭借其高效的信息组织能力,正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合,探讨知识图谱开发的实现细节,帮助读者掌握该技术栈在实际项目中的落地方法。 …...
12.找到字符串中所有字母异位词
🧠 题目解析 题目描述: 给定两个字符串 s 和 p,找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义: 若两个字符串包含的字符种类和出现次数完全相同,顺序无所谓,则互为…...
UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)
UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中,UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化…...
JAVA后端开发——多租户
数据隔离是多租户系统中的核心概念,确保一个租户(在这个系统中可能是一个公司或一个独立的客户)的数据对其他租户是不可见的。在 RuoYi 框架(您当前项目所使用的基础框架)中,这通常是通过在数据表中增加一个…...
Linux 中如何提取压缩文件 ?
Linux 是一种流行的开源操作系统,它提供了许多工具来管理、压缩和解压缩文件。压缩文件有助于节省存储空间,使数据传输更快。本指南将向您展示如何在 Linux 中提取不同类型的压缩文件。 1. Unpacking ZIP Files ZIP 文件是非常常见的,要在 …...
