研发工程师玩转Kubernetes——创建一个测试容器
测试容器并不是什么都没有的容器,只是它没有我们期望的常驻进程。我们常用它来做一些测试。
举个例子,在《研发工程师玩转Kubernetes——自动扩缩容》中我们使用本地wrk进行了压力测试。如果我们希望进入容器手工调用wrk,该怎么做呢?
错误的案例
虽然下面这个清单文件的镜像中包含了wrk程序,但是它没有启动一个常驻进程。导致运行这个Pod一直会报错“Back-off restarting failed container”,Reason是CrashLoopBackOff。
apiVersion: v1
kind: Pod
metadata:name: wrklabels:name: wrk
spec:containers:- name: wrk-containerimage: localhost:32000/wrk:v1
kubectl describe pod wrk
Name: wrk
Namespace: default
Priority: 0
Service Account: default
Node: fangliang-virtual-machine/192.168.137.248
Start Time: Mon, 29 May 2023 14:30:37 +0800
Labels: name=wrk
Annotations: cni.projectcalico.org/containerID: 75a18bfd3f3d83dd14b7bc9655343842d9bac20a4c52a7ee75932013be395e01cni.projectcalico.org/podIP: 10.1.62.178/32cni.projectcalico.org/podIPs: 10.1.62.178/32
Status: Running
IP: 10.1.62.178
IPs:IP: 10.1.62.178
Containers:wrk-container:Container ID: containerd://80d5186f701de4ccd861dc84078290250f3452a90ed226cb246a4f6b9aab5ef6Image: localhost:32000/wrk:v1Image ID: localhost:32000/wrk@sha256:3548119fa498e871ac75ab3cefb901bf5a069349dc4b1b92afab8db4653f6b25Port: <none>Host Port: <none>State: WaitingReason: CrashLoopBackOffLast State: TerminatedReason: CompletedExit Code: 0Started: Mon, 29 May 2023 14:31:17 +0800Finished: Mon, 29 May 2023 14:31:17 +0800Ready: FalseRestart Count: 3Environment: <none>Mounts:/var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-ld6j6 (ro)
Conditions:Type StatusInitialized True Ready False ContainersReady False PodScheduled True
Volumes:kube-api-access-ld6j6:Type: Projected (a volume that contains injected data from multiple sources)TokenExpirationSeconds: 3607ConfigMapName: kube-root-ca.crtConfigMapOptional: <nil>DownwardAPI: true
QoS Class: BestEffort
Node-Selectors: <none>
Tolerations: node.kubernetes.io/not-ready:NoExecute op=Exists for 300snode.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:Type Reason Age From Message---- ------ ---- ---- -------Normal Scheduled 54s default-scheduler Successfully assigned default/wrk to fangliang-virtual-machineNormal Pulled 14s (x4 over 53s) kubelet Container image "localhost:32000/wrk:v1" already present on machineNormal Created 14s (x4 over 53s) kubelet Created container wrk-containerNormal Started 14s (x4 over 53s) kubelet Started container wrk-containerWarning BackOff 2s (x6 over 52s) kubelet Back-off restarting failed container wrk-container in pod wrk_default(588fb4f3-d649-4570-b64c-a4eff748417d)
正确的案例
我们只要启动一个常驻进程就可以解决这个问题。
在linux系统中,/dev/null是一个非常特殊的文件,它会抛弃所有写入其中的数据。于是我们持续查看这个文件的写入,就可以制造一个常驻进程,而且没有其他额外的影响。
command: [“/bin/bash”, “-ce”, “tail -f /dev/null”]
即把清单文件改成如下
apiVersion: v1
kind: Pod
metadata:name: wrklabels:name: wrk
spec:containers:- name: wrk-containerimage: localhost:32000/wrk:v1command: ["/bin/bash", "-ce", "tail -f /dev/null"]
测试
创建Pod
kubectl create -f wrk_pod.yaml
pod/wrk created
登录容器
kubectl exec wrk -c wrk-container -it /bin/bash
执行指令
wrk -t10 -c10 -d10 http://192.168.137.248:30000

可见,我们已经可以在这个测试容器中执行我们想执行的指令了。
参考资料
- https://blog.csdn.net/yztezhl/article/details/125421316
- https://linuxhint.com/what_is_dev_null/
相关文章:
研发工程师玩转Kubernetes——创建一个测试容器
测试容器并不是什么都没有的容器,只是它没有我们期望的常驻进程。我们常用它来做一些测试。 举个例子,在《研发工程师玩转Kubernetes——自动扩缩容》中我们使用本地wrk进行了压力测试。如果我们希望进入容器手工调用wrk,该怎么做呢ÿ…...
FPGA - 7系列 FPGA内部结构之CLB -03- CLB相关原语以及应用
前言 本文节选UG474的第二章,进行整理翻译。CLB资源被FPGA综合工具自动有效地使用,不需要任何特殊的FPGA专用编码。一些HDL编码建议和技术可以帮助优化设计以获得最大效率。 设计检查清单 这些指南是为有效使用7系列CLB的设计建议提供的快速核对表。7…...
什么是日志关联
什么是日志关联 日志关联是一种分析来自不同源的日志数据以识别事件模式的技术。它用于更好地了解网络的活动,从而有效地保护网络免受漏洞和威胁。 日志关联是日志管理过程的关键部分。收集和存储日志后,集中式日志服务器将执行分析以检测特定事件。日…...
打家劫舍问题 Python题解
✅作者简介:人工智能专业本科在读,喜欢计算机与编程,写博客记录自己的学习历程。 🍎个人主页:小嗷犬的个人主页 🍊个人网站:小嗷犬的技术小站 🥭个人信条:为天地立心&…...
【JavaSE】Java基础语法(十八):接口
文章目录 1. 接口的概述2. 接口的特点3. 接口的成员特点4. 类和接口的关系5. 抽象类和接口的关系 1. 接口的概述 接口就是一种公共的规范标准,只要符合规范标准,大家都可以通用。Java中接口存在的两个意义 用来定义规范用来做功能的拓展 2. 接口的特点…...
SVD求解两组多维点之间的欧式变换矩阵,及halcon代码实现
之前研究了二维点的仿射变换,用解矩阵的方式求解了两组二维点之间的变换矩阵。 学习了下SVD,看到可以用SVD求解两组多维点之间的欧式变换矩阵,当然也是个最优化问题。 这里的变换只有平移和旋转,没有缩放。 一、先说结论&#…...
常用监控方案 Prometheus + Grafana 简单使用小结
文章目录 前言一、概念1.1 发展1.2 时序数据1.3 Metric 二、Prometheus2.1 架构2.2 配置2.3 查询语言PromQL2.4 Exporter 三、Grafana3.1 数据源3.2 权限3.3 面板可视化3.4 仪表盘 四、实战4.1 监控 Windows/Linux4.2 监控 JVM4.3 监控 MySQL4.4 监控 Springboot API 参考 前言…...
基于长短期神经网络LSTM的飞行轨迹跟踪预测,基于长短期神经网络LSTM的三维路径预测
目录 背影 摘要 LSTM的基本定义 LSTM实现的步骤 基于长短期神经网络LSTM的飞行轨迹跟踪 完整代码: https://download.csdn.net/download/abc991835105/87705046 效果图 结果分析 展望 参考论文 背影 路径追踪预测,对实现自动飞行驾驶拥有重要意义,长短期神经网络是一种改进…...
计算机组成原理-指令系统-指令格式及寻址方式
目录 一、指令的定义 1.1 扩展操作码指令格式 二、指令寻址方式 2.1 顺序寻址 2.2 跳跃寻址 三、 数据寻址 3.1 直接寻址 3.2 间接寻址 3.3 寄存器寻址 3.4 寄存器间接寻址 3.5 隐含寻址 3.6 立即寻址 3.7 偏移地址 3.7.1 基址寻址 3.7.2 变址寻址 3.7.3 相对寻址…...
【满分】【华为OD机试真题2023B卷 JAVAJS】经典屏保
华为OD2023(B卷)机试题库全覆盖,刷题指南点这里 经典屏保 知识点循环迭代编程基础 时间限制:1s 空间限制:256MB 限定语言:不限 题目描述: DVD机在视频输出时,为了保护电视显像管,在待机状态会显示“屏保动画”,如下图所示,DVD Logo在屏幕内来回运动,碰到边缘会反弹…...
Apache 网页与安全优化
目录 一:Apache网页优化概述 1、概述 2、优化内容 3、gzip介绍 4、Apache的压缩模块 5、mod_ gzip 模块与mod_ deflate 模块 二: 网页压缩 1.检查是否安装 mod_deflate 模块 2. 如果没有安装mod_deflate 模块,重新编译安装 Apache 添…...
Unity的IFilterBuildAssemblies:深入解析与实用案例
Unity IFilterBuildAssemblies Unity IFilterBuildAssemblies是Unity引擎中的一个非常有用的功能,它可以让开发者在构建项目时自定义哪些程序集需要被包含在构建中,哪些程序集需要被排除在建之外。这个功能可以帮助开发者更好地控制项目的构建过程&…...
分片架构,Redis Cluster 分析
分片架构解决的问题 通过堆机器,提升读写性能,与存储性能 分片架构设计要点 分片规则 选择Cardinality大的作为分片键,尽可能保证数据分布均匀 常见分片键: 基于主键(业务型数据),基于时间…...
Linux-0.11 文件系统bitmap.c详解
Linux-0.11 文件系统bitmap.c详解 模块简介 该模块包含了两对函数,第一对是和i节点相关的free_inode()和new_inode()。第二对是和逻辑块相关的free_block()和new_block()。 函数详解 free_block void free_block(int dev, int block)该函数的作用是释放设备dev…...
【Linux】基本指令,拥抱Linux的第一步
[Linux]常见指令 Linux基本指令指令的本质ls指令pwd指令cd指令touch指令mkdir指令(重要)rmdir&&rm指令(重要)man指令(重要)cp指令(重要)mv指令(重要)重定向cat指令more指令less指令(重要…...
CTF 2015: Search Engine-fastbin_dup_into_stack
参考: [1]https://gsgx.me/posts/9447-ctf-2015-search-engine-writeup/ [2]https://blog.csdn.net/weixin_38419913/article/details/103238963(掌握利用点,省略各种逆向细节) [3]https://bbs.kanxue.com/thread-267876.htm(逆向调试详解&am…...
DRF之全局异常处理
一、REST framework 提供了异常处理,我们可以自定义异常处理函数 使用方式: from rest_framewoork.views import exception_handerdef custom_exception_handler(exc,context):# 先调用REST framework默认的异常处理方法获得标准错误响应对象response …...
AI创作工具的使用体验报告
下面是AI创作工具的使用体验报告,围绕以下三点展开: 一、工具的使用体验如何? CSDN博客AI创作工具是一款非常易用的工具,操作简单,可以很快地开始创建内容。在使用过程中,我发现它的语言模型很智能&#…...
C++算法模板(转自acwing)
快速排序算法模板 —— 模板题 AcWing 785. 快速排序 void quick_sort(int q[], int l, int r) {if (l > r) return;int i l - 1, j r 1, x q[l r >> 1];while (i < j){do i ; while (q[i] < x);do j -- ; while (q[j] > x);if (i < j) swap(q[i],…...
阿里云服务器最新优惠价格及最新收费标准(2023更新)
阿里云服务器收费标准分为包年包月和按量付费两种模式,包年包月是一种先付费后使用的计费方式,按量付费是一种先使用后付费的计费方式。选择包年包月的收费模式,用户可以提前预留资源,同时享受更大的价格优惠,帮您更大…...
FRCRN语音降噪工具实战教程:单麦16k音频一键去噪保姆级指南
FRCRN语音降噪工具实战教程:单麦16k音频一键去噪保姆级指南 1. 快速了解FRCRN语音降噪 你是不是经常遇到这样的困扰:录制的语音通话背景噪音太大,播客内容被环境声干扰,或者重要的会议录音听不清楚人声?FRCRN语音降噪…...
Multisim仿真NE555驱动MOS管总报错?手把手教你调整收敛参数搞定它
Multisim仿真中NE555驱动MOS管报错的深度解决方案 在电子电路仿真领域,Multisim作为一款功能强大的工具,被广泛应用于教学和工程实践中。然而,当涉及到非线性元件如MOSFET与NE555定时器结合使用时,许多工程师和学生都会遇到一个令…...
PaddleOCR模型选型避坑指南:从‘轻量级模型缺失文件’到‘通用模型实战’
PaddleOCR模型选型避坑指南:从轻量级到通用模型的实战解析 第一次接触PaddleOCR时,面对琳琅满目的模型选择,很多开发者都会陷入困惑:轻量级模型和通用模型到底有什么区别?为什么下载的轻量级模型总是提示缺少文件&…...
Qwen3-ASR-1.7B在软件测试中的语音指令自动化实践
Qwen3-ASR-1.7B在软件测试中的语音指令自动化实践 1. 引言 想象一下这样的场景:测试工程师小王正在执行复杂的软件测试流程,双手忙着操作多个设备,眼睛盯着屏幕上的测试结果,突然需要暂停当前测试、切换到另一个测试用例。传统方…...
效率翻倍!LiuJuan Z-Image多图批量生成攻略,一次产出N张创意作品
效率翻倍!LiuJuan Z-Image多图批量生成攻略,一次产出N张创意作品 在AI图片生成领域,最令人头疼的莫过于反复调整参数、等待单张图片生成的低效流程。今天,我将分享如何利用LiuJuan Z-Image Generator的批量生成功能,一…...
Janus-Pro-7B播客制作:音频波形图识别+内容摘要与章节标记生成
Janus-Pro-7B播客制作:音频波形图识别内容摘要与章节标记生成 1. 引言:播客制作的新思路 播客制作通常需要大量的人工工作:听完整期节目、标记关键章节、撰写内容摘要、制作时间轴标记。这个过程耗时耗力,特别是对于长篇播客内容…...
如何用PeerDB构建企业级数据管道:从配置到监控的完整教程
如何用PeerDB构建企业级数据管道:从配置到监控的完整教程 【免费下载链接】peerdb Fast, Simple and a cost effective tool to replicate data from Postgres to Data Warehouses, Queues and Storage 项目地址: https://gitcode.com/gh_mirrors/pe/peerdb …...
BRV下拉刷新与上拉加载:SmartRefreshLayout集成完整教程
BRV下拉刷新与上拉加载:SmartRefreshLayout集成完整教程 【免费下载链接】BRV [永久维护] Android 快速构建 RecyclerView, 比 BRVAH 更简单强大 项目地址: https://gitcode.com/gh_mirrors/br/BRV BRV(Android 快速构建 RecyclerView)…...
海南自由贸易港借助“.CN”域名塑造线上专属品牌形象
自海南自由贸易港全岛封关运作以来,市场主体加速集聚,数字化转型需求持续释放,“.CN”域名逐步融入自贸港园区与入驻企业的线上品牌构建场景,成为其彰显数字化身份的重要标识。作为政策落地与产业集聚的核心平台,海南自…...
OpenClaw安全防护方案:Phi-3-mini-128k-instruct任务执行边界控制
OpenClaw安全防护方案:Phi-3-mini-128k-instruct任务执行边界控制 1. 为什么需要安全防护 当我第一次让OpenClaw接管本地电脑操作权限时,那种既兴奋又忐忑的心情至今记忆犹新。看着AI自动整理文件、发送邮件、执行脚本的同时,一个挥之不去的…...
