研发工程师玩转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更新)
阿里云服务器收费标准分为包年包月和按量付费两种模式,包年包月是一种先付费后使用的计费方式,按量付费是一种先使用后付费的计费方式。选择包年包月的收费模式,用户可以提前预留资源,同时享受更大的价格优惠,帮您更大…...
打造梦幻岛屿的5个秘诀:免费在线规划工具完整指南
打造梦幻岛屿的5个秘诀:免费在线规划工具完整指南 【免费下载链接】HappyIslandDesigner "Happy Island Designer (Alpha)",是一个在线工具,它允许用户设计和定制自己的岛屿。这个工具是受游戏《动物森友会》(Animal Crossing)启发…...
别再手搓流程图了!用WPF从零封装一个可拖拽、可连接的业务节点控件(附完整源码)
WPF业务流程图控件开发实战:从零构建可拖拽节点系统 在当今企业级应用开发中,可视化业务流程配置已成为提升用户体验的关键要素。无论是审批流程引擎、ETL数据处理管道,还是自动化任务编排系统,都需要直观的节点连接界面。本文将深…...
超聚变冲刺创业板:年营收582亿,净利10亿 拟募资80亿,估值超400亿
雷递网 雷建平 5月22日超聚变数字技术股份有限公司(简称:“超聚变”)日前递交招股书,准备在深交所创业板上市。超聚变计划募资80亿。其中,40.8亿用于新一代算力基础设施研发及产业化项目,20.3亿用于超聚变智…...
基于Rust和Axum的高性能静态文件服务器架构设计与实现
基于Rust和Axum的高性能静态文件服务器架构设计与实现 【免费下载链接】simple-http-server Simple http server in Rust (Windows/Mac/Linux) 项目地址: https://gitcode.com/gh_mirrors/si/simple-http-server 在现代化开发工作流中,高效的文件共享与静态资…...
终极SSDTTime指南:快速免费的系统硬件优化神器
终极SSDTTime指南:快速免费的系统硬件优化神器 【免费下载链接】SSDTTime SSDT/DSDT hotpatch attempts. 项目地址: https://gitcode.com/gh_mirrors/ss/SSDTTime 在计算机硬件优化领域,SSDTTime是一款革命性的跨平台工具,专为简化SSD…...
FModel实战指南:UE4/5游戏pak资源提取与3D模型导出
1. 为什么是FModel?——当UE4/5游戏资源提取变成“开箱即用”的工程问题你刚下载完《堡垒之夜》最新赛季的离线安装包,或者拿到一份《黑神话:悟空》的测试版本地资源目录,双击打开后只看到一堆命名像WindowsNoEditor.pak、Content…...
告别移植烦恼:用STM32CubeMX和ENV工具5分钟搞定RT-Thread BSP适配(以STM32F103ZE为例)
5分钟极速适配RT-Thread:STM32CubeMX与ENV工具链实战指南 当拿到一块全新的STM32开发板时,许多嵌入式开发者都会面临相同的困境:如何在最短时间内验证RT-Thread实时操作系统的运行?传统手动移植BSP的方式往往需要数小时甚至更长时…...
机房动环监控系统是什么?其主要功能及智能运用方向有哪些?
机房动环监控系统的重要性 为信息技术的稳健运行提供了保障,尤其是在现代社会日益依赖数据和信息的背景下。利用实时监测电力、温度、湿度环境参数发生,还大幅度降低了因停机带来的经济损失。以大榕树科技为例,他们采用先进的监控系统&#x…...
免费德州扑克GTO求解器终极指南:如何用Desktop Postflop提升你的扑克技术
免费德州扑克GTO求解器终极指南:如何用Desktop Postflop提升你的扑克技术 【免费下载链接】desktop-postflop [Development suspended] Advanced open-source Texas Holdem GTO solver with optimized performance 项目地址: https://gitcode.com/gh_mirrors/de/d…...
Vue-Tree-List:轻松构建优雅树形结构的Vue组件指南
Vue-Tree-List:轻松构建优雅树形结构的Vue组件指南 【免费下载链接】vue-tree-list 🌲A vue component for tree structure 项目地址: https://gitcode.com/gh_mirrors/vu/vue-tree-list 你是否曾为在Vue项目中实现复杂的树形结构而感到头疼&…...
