Kubernetes 10 问,测测你对 k8s 的理解程度

news2024/11/17 22:10:46

Kubernetes 10 问

  1. 假设集群有 2 个 node 节点,其中一个有 pod,另一个则没有,那么新的 pod 会被调度到哪个节点上?

  2. 应用程序通过容器的形式运行,如果 OOM(Out-of-Memory)了,是容器重启还是所在的 Pod 被重建?

  3. 应用程序配置如环境变量或者 ConfigMap 可以不重建 Pod 实现动态更新吗?

  4. pod 被创建后是稳定的吗,即使用户不进行任何操作?

  5. 使用 ClusterIP 类型的 Service 能保证 TCP 流量的负载均衡吗?

  6. 应用日志要怎么采集,会不会有丢失的情况?

  7. 某个 HTTP Server Pod 的 livenessProbe 正常是否就一定没问题?

  8. 应用程序如何扩展以应对流量波动的情况?

  9. 当你执行 kubectl exec -it <pod> -- bash 之后是登录到了 pod 里吗?

  10. 如果 Pod 里的容器反复退出并重启,如何排查?

以上问题你是否能够快速回答,并注意到关键点。

解答

1. 假设集群有 2 个 node 节点,其中一个有 pod,另一个则没有,那么新的 pod 会被调度到哪个节点上?

调度过程需要经过一系列处理阶段:

各个阶段的配置、以及 Pod 的配置(强制调度、亲和性、污点容忍等等)可能都会影响调度的结果。

然而,在不考虑各种配置、节点资源也相同的情况下,默认插件 NodeResourcesFit 的评分策略会起到比较关键的作用,NodeResourcesFit 有三种评分策略:LeastAllocated(默认,优先选择资源使用率最低的节点)、MostAllocated(优先选择资源使用率较高的节点)和 RequestedToCapacityRatio(平衡节点的资源使用率)。这也就是说,在使用 MostAllocated 策略的时候,新的 pod 会被调度到已经有 pod 的节点上,而使用另外两种策略时,则调度到没有 pod 的节点。

2. 应用程序通过容器的形式运行,如果 OOM(Out-of-Memory)了,是容器重启还是所在的 Pod 被重建?

当容器 OOM 了,一般情况下根据 Pod 的 RestartPolicy 配置(默认是 Always),容器会被重启,Pod 不会被重建。但在特殊情况下,节点内存压力很大时,可能会触发 Pod 驱逐,从而导致 Pod 被重建。

3. 应用程序配置如环境变量或者 ConfigMap 可以不重建 Pod 实现动态更新吗?

环境变量无法动态更新,ConfigMap 通过挂载的方式可以动态更新,但要求挂载时不能使用 subPath,挂载的同步延时受 kubelet 的配置 syncFrequency(默认 1 分钟)和 configMapAndSecretChangeDetectionStrategy 影响。

4. Pod 被创建后是稳定的吗,即使用户不进行任何操作?

即使用户不操作,也可能发生节点资源不足或者网络异常导致 Pod 被驱逐。

5. 使用 ClusterIP 类型的 Service 能保证 TCP 流量的负载均衡吗?

ClusterIP 类型的 Service 不论使用的是 iptables 还是 ipvs,其都依赖于 Linux 内核的 Netfilter,而其内部的 connection tracking 机制会跟踪和记录每个连接的状态,进而让已经建立了 TCP 连接的双方一直使用这条连接。所以,针对长连接,是有可能出现负载不均衡的情况。

6. 应用日志要怎么采集,会不会有丢失的情况?

应用日志一般输出为 stdout/stderr,或者写入日志文件。针对前者,容器日志会被保存到节点上的特定位置,此时可以使用日志代理(如 FluentdFilebeat)并部署为 Daemonset 的方式进行采集,但是存在日志丢失的可能,因为一旦 pod 被删除,对应的容器日志文件也会被删除,而日志代理可能还未完成全部日志的采集。通过挂载持久化存储并写入日志文件的方式则可以避免丢失。

7. 某个 HTTP Server Pod 的 livenessProbe 正常是否就一定没问题?

站在应用的角度看,livenessProbe 只检查应用是否存活,无法验证其功能是否正常,例如应用可能进入了非健康但仍存活的状态。
站在网络的角度看,livenessProbe(假设配置的是 httpGet)是由本机的 kubelet 发起的请求,无法保证跨节点的网络是正常的。

8. 应用程序如何扩展以应对流量波动的情况?

Kubernetes 提供了水平扩展(HPA)和垂直扩展(VPA)两种机制,由于 VPA 不是原地资源扩展,会删除 Pod 再创建,使用场景往往受限,所以使用更多是 HPA,可以根据指标(如 CPU 使用率、请求速率、其它自定义指标)动态调整 Pod 数量。
当然,也可以在外部监测指标然后向 kube-apiserver 发起请求扩展 Pod 的数量。

9. 当你执行 kubectl exec -it <pod> -- bash 之后是登录到了 pod 里吗?

首先,使用 kubectl exec 需要指定容器,当 Pod 只有一个容器时则可以忽略。其次,Pod 是一组独立的 Linux 命名空间,容器本质上是一个进程,Pod 内容器共享 Network、IPC、UTS namespace,而每个容器的 PID、Mount namespace 则是独立的。"登录"的说法并不准确,kubectl exec -it <pod> -- bash 既不是进入了 Pod,也不是进入了容器,而是在目标容器的隔离环境中创建了一个新的 bash 进程。

10. 如果 Pod 里的容器反复退出并重启,如何排查?

如果 Pod 里的容器反复退出并重启,是无法使用 kubectl exec 的。此时,除了检查节点或容器状态和日志之外,还可以使用 kubectl debug 的方式在 Pod 上启动一个临时容器,用于检查环境和依赖。


(我是凌虚,关注我,无广告,专注技术,不煽动情绪,欢迎与我交流)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2242432.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java项目实战II基于微信小程序的课堂助手(开发文档+数据库+源码)

目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发&#xff0c;CSDN平台Java领域新星创作者&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 在数字化教…

高光谱深度学习调研

综述 高光谱深度学习只有小综述&#xff0c;没有大综述。小综述里面场景分类、目标检测的综述比较多。 Wang C, Liu B, Liu L, et al. A review of deep learning used in the hyperspectral image analysis for agriculture[J]. Artificial Intelligence Review, 2021, 54(7)…

抖音热门素材去哪找?优质抖音视频素材网站推荐!

是不是和我一样&#xff0c;刷抖音刷到停不下来&#xff1f;越来越多的朋友希望在抖音上创作出爆款视频&#xff0c;但苦于没有好素材。今天就来推荐几个超级实用的抖音视频素材网站&#xff0c;让你的视频内容立刻变得高大上&#xff01;这篇满是干货&#xff0c;直接上重点&a…

人工智能之数学基础:数学在人工智能领域中的地位

人工智能&#xff08;AI&#xff09;是一种新兴的技术&#xff0c;它的目标是构建能够像人类一样思考、学习、推理和解决问题的智能机器。AI已经成为了许多行业的重要组成部分&#xff0c;包括医疗、金融、交通、教育等。而数学则是AI领域中不可或缺的基础学科。本文将阐述数学…

高翔【自动驾驶与机器人中的SLAM技术】学习笔记(十三)图优化SLAM的本质

一、直白解释slam与图优化的结合 我从b站上学习理解的这个概念。 视频的大概位置是1个小时以后&#xff0c;在第75min到80min之间。图优化SLAM是怎么一回事。 slam本身是有运动方程的&#xff0c;也就是运动状态递推方程&#xff0c;也就是预测过程。通过t1时刻&#xff0c…

STM32单片机设计防儿童人员误锁/滞留车内警报系统

目录 目录 前言 一、本设计主要实现哪些很“开门”功能&#xff1f; 二、电路设计原理图 1.电路图采用Altium Designer进行设计&#xff1a; 2.实物展示图片 三、程序源代码设计 四、获取资料内容 前言 近年来在车辆逐渐普及的情况下&#xff0c;由于家长的疏忽&#xff0c;将…

stm32——通用定时器时钟知识点

&#xff08;该图来自小破站 铁头山羊老师的stm32标准库教学&#xff09;

GPIO相关的寄存器(重要)

目录 一、GPIO相关寄存器概述 二、整体介绍 三、详细介绍 1、端口配置低寄存器&#xff08;GPIOx_CRL&#xff09;&#xff08;xA...E&#xff09; 2、端口配置高寄存器&#xff08;GPIOx_CRH&#xff09;&#xff08;xA...E&#xff09; 3、端口输入数据寄存器&#xff…

CSS基础也要进行模电实验

盒子阴影 圆角边框已经介绍过哩&#xff0c;现在先介绍一下盒子阴影的效果如何实现 CSS3中新增了盒子阴影&#xff0c;可以使用box-shadow属性为盒子添加阴影 这是固定的语法&#xff1a; text-shadow: h-shadow v-shadow blur color; 它有这些可选的值&#xff1a; 哦。 …

i春秋-登陆(sql盲注爆字段,.git缓存利用)

练习平台地址 竞赛中心 题目描述 先登陆再说 题目内容 就是一个登录框 测试登录 用户名&#xff1a;admin or 11# 密码&#xff1a;随便输 返回密码错误 用户名&#xff1a;随便输 密码&#xff1a;随便输 返回用户名不存在 这里就可以确定时一个bool盲注了 这里提供一个lik…

探索KubeVirt:如何利用InfiniBand提升虚拟机性能

在高性能计算&#xff08;HPC&#xff09;中&#xff0c;网络性能对于集群效率起着至关重要的作用。为了支持大规模并行计算&#xff0c;HPC集群通常依赖高带宽、低延迟的网络&#xff0c;而InfiniBand&#xff08;IB&#xff09;正是其中的首选技术。它能够提供超过100Gbps的带…

基于树莓派的边缘端 AI 目标检测、目标跟踪、姿态估计 视频分析推理 加速方案:Hailo with ultralytics YOLOv8 YOLOv11

文件大纲 加速原理硬件安装软件安装基本设置系统升级docker 方案Demo 测试目标检测姿态估计视频分析参考文献前序树莓派文章hailo加速原理 Hailo 发布的 Raspberry Pi AI kit 加速原理,有几篇文章介绍的不错 https://ubuntu.com/blog/hackers-guide-to-the-raspberry-pi-ai-ki…

小白进!QMK 键盘新手入门指南

经常玩键盘的伙伴应该都知道&#xff0c;现在的键盘市场可谓是百花齐放&#xff0c;已经不是之前的单一功能产品化时代。我们可以看到很多诸如&#xff1a;机械轴键盘、磁轴键盘、光轴键盘、电感轴键盘&#xff0c;以及可能会上市的光磁轴键盘&#xff0c;更有支持屏幕的、带旋…

《操作系统 - 清华大学》3 -3:连续内存分配:内存碎片与分区的动态分配

文章目录 0. 概述1. 内存碎片问题2. 动态分配3. 首次适配算法4. 最优适配算法5. 最差适配算法 0. 概述 内存分配是操作系统管理过程中很重要的环节&#xff0c;首先需要考虑的是一块连续区域分配的过程&#xff0c;这个过程中会有很多问题&#xff0c;首先比较关注的一个问题是…

vue内置指令和自定义指令

常见的指令&#xff1a; v-bind : 单向绑定解析表达式, 可简写为 :xxx v-model : 双向数据绑定 v-for : 遍历数组/对象/字符串 v-on : 绑定事件监听, 可简…

蓝桥杯备赛(持续更新)

16届蓝桥杯算法类知识图谱.pdf 1. 格式打印 %03d&#xff1a;如果是两位数&#xff0c;将会在前面添上一位0 %.2f&#xff1a;会保留两位小数 如果是long&#xff0c;必须在数字后面加上L。 2. 进制转化 2.1. 十进制转任意进制&#xff1a; 十进制转任意进制时&#xff…

vue 项目使用 nginx 部署

前言 记录下使用element-admin-template 改造项目踩过的坑及打包部署过程 一、根据权限增加动态路由不生效 原因是Sidebar中路由取的 this.$router.options.routes,需要在计算路由 permission.js 增加如下代码 // generate accessible routes map based on roles const acce…

TensorFlow 2.0 环境配置

官方文档&#xff1a;CUDA Installation Guide for Windows 官方文档有坑&#xff0c;windows的安装指南直接复制了linux的指南内容&#xff1a;忽略这些离谱的信息即可。 可以从官方文档知悉&#xff0c;cuda依赖特定版本的C编译器。但是我懒得为了一个编译器就下载整个visua…

【计算机网络】【传输层】【习题】

计算机网络-传输层-习题 文章目录 10. 图 5-29 给出了 TCP 连接建立的三次握手与连接释放的四次握手过程。根据 TCP 协议的工作原理&#xff0c;请填写图 5-29 中 ①~⑧ 位置的序号值。答案技巧 注&#xff1a;本文基于《计算机网络》&#xff08;第5版&#xff09;吴功宜、吴英…

HarmonyOS本地存储-Preferences(用户首选项)的使用

一&#xff0c;用户首选项简述 ohos.data.preferences (用户首选项) 用户首选项为应用提供Key-Value键值型的数据处理能力&#xff0c;支持应用持久化轻量级数据&#xff0c;并对其修改和查询。 数据存储形式为键值对&#xff0c;键的类型为字符串型&#xff0c;值的存储数据…