首页/新闻资讯/正文详情

k8s pod故障调试

发布时间:2026/9/24 18:55:10 来源:云帆数科 栏目:资讯中心
k8s pod故障调试
自从有了AI以后我已经很久不写博客了但是今天被小米的MiMo-V2.6-Pro指导的太好了还是写写笔记吧。故障现象一个研发环境的k8s pod有jvm启动参数要加载一个单独的许可证文件配置了pvc卷看deployment 卷挂载路径也对但是程序就是读不到然后这个pod就循环崩溃起不来你想进Pod调试也不行它起不来不给你机会进去调试。解决方案 编辑deployment覆盖启动命令不启动java程序改成下面这样spec: containers: - name: app image: your-app-image command: [sh, -c, sleep 3600] # 覆盖原始启动命令也就是在原有的image下面额外添加一行command: [sh, -c, sleep 3600] 去覆盖掉原来的java程序启动让pod先正常跑起来这样才有机会连上去验证文件路径挂载是否正确执行kubectl -n namespace edit deployment 你的svc名称 然后 kubectl -n namespace exec --it pod实例名称 -- /bin/bash进Pod以后查看挂载及许可证文件路径一点问题也没有那就试试在pod里面手动启动Java程序能不能起来java -Dinforsuite.license-path/data/license.infor -jar /path/to/app.jar测试以后发现可以正常启动也就是挂载和许可文件没问题问题出在原来的docker启动命令上面了查看原来的Dockerfile启动命令是# 启动应用 ENTRYPOINT [sh,-c,java $JVMOPTIONS -jar $APP_HOME/$APP_NAME.jar $PARAMS]我本来也是配置的这个JVMOPTIONS变量在流水线里面配置的是没毛病啊路径正确那就是这个环境变量在真实的pod里面没生效在pod实例里面执行echo [$JVMOPTIONS]输出[] 最终破案是环境变量值没有传递过来在k8s的svc配置里面增加spec: containers: - name: project-name-placeholder-container image: harbor-placeholder/library-placeholder/project-name-placeholder:version-placeholder imagePullPolicy: Always ports: - containerPort: http-port-placeholder env: - name: JVMOPTIONS value: -Dinforsuite.license-path/data/license.infor也就是在env里面增加JVMOPTIONS这个环境变量及配置正确的值问题解决。最后删除之前手动加的那个command还挺费事需要这样移除掉kubectl -n 你的namespace patch deployment xxxxx-deploy \ --typejson \ -p[{op:remove,path:/spec/template/spec/containers/0/command}]

相关推荐

Git入门笔记:从零开始,一个下午跑通基本流程
Git入门笔记:从零开始,一个下午跑通基本流程

作为一个刚毕业的QA,之前对Git一知半解,今天花了一个下午从零开始学,把基本流程跑通了。整理成笔记,给同样是小白的同学参考。 一、Git和GitHub是什么关系? 很多人(包括之前的我)搞不清这两个… · 2026/9/24 18:55:10

用Python+Jupyter Notebook实现CNN手势识别:从数据采集到模型部署
用Python+Jupyter Notebook实现CNN手势识别:从数据采集到模型部署

简介:面向手势识别与神经网络入门学习者,这套基于Python和Jupyter Notebook的实战资源,覆盖图像预处理、CNN建模、训练评估与部署优化等关键环节,呈现了一个手势识别项目从零到一的完整路径。压缩包共32个文件,以6个分… · 2026/9/24 18:55:03

Mac上Docker安装后的完整验证指南:从CLI到容器网络
Mac上Docker安装后的完整验证指南:从CLI到容器网络

咱们直接说正事:Docker 装完之后,到底怎么确认它是真的能用了?很多人在 Mac 上装完 Docker Desktop,看到小鲸鱼图标起来了,就以为万事大吉。但“装完”和“能用”之间,还隔着一整套验证流程。我自己见过太多… · 2026/9/24 18:55:03

面向对象编程进阶:多态、抽象类与接口的实战选择
面向对象编程进阶:多态、抽象类与接口的实战选择

“面向对象编程(05)”这个标题看着简单,但放在整个系列里,它就是一座分水岭。前几讲把类与对象、属性方法、封装继承都过了一遍,到了这一讲,主题开始从“怎么写一个类”转向“怎么组织一堆类”。很多人在这… · 2026/9/24 19:35:30

性价比高的桌面小五轴系统生产厂家
性价比高的桌面小五轴系统生产厂家

近年随着职校数控实训普及、精密五金小批量打样需求攀升,桌面级小五轴系统成为工业自动化领域的细分热点。数据表明,2023年国内桌面小五轴市场规模同比增长47%,其中82%的采购方为中小加工厂、职业院校、创客团队,这类用户的核心诉… · 2026/9/24 19:35:30

PS去AI水印实战指南:内容识别与仿制图章的核心技巧
PS去AI水印实战指南:内容识别与仿制图章的核心技巧

做设计这行的人,几乎每天都要跟"水印"打交道。最近这一年,AI出图工具越来越普及,我身边不少朋友的工作流都变成了"先生成、再精修"。可AI工具出图时,常常会在角落压一个小logo,在画面中间铺一层版… · 2026/9/24 19:35:30

Flet DragTargetLeaveEvent 详解:拖放目标离开事件的载荷结构与实战用法
Flet DragTargetLeaveEvent 详解:拖放目标离开事件的载荷结构与实战用法

前端跨平台桌面应用移动开发 【免费下载链接】flet Build realtime web, mobile and desktop apps in Python only. No frontend experience required. 项目地址: https://gitcode.com/gh_mirrors/fl/flet 点击查看 免费下载 flet.DragTargetLeaveEvent 是 Flet 拖… · 2026/9/24 19:35:30

模式与模式匹配:现代语言如何用数据形状替代if-else
模式与模式匹配:现代语言如何用数据形状替代if-else

教材里那一章往往被放在书的后半部分,甚至有人直接跳过——“模式与模式匹配”,听起来像是给编译器作者准备的内容。但这两年你会发现,C# 9 的 switch 表达式、Java 21 的 switch 模式匹配、Python 3.10 的 match-case,全都在往这… · 2026/9/24 19:35:24

模式匹配详解:Rust match语法、解构与多语言对比
模式匹配详解:Rust match语法、解构与多语言对比

“模式匹配”这四个字,我第一次看到的时候,以为是某种高大上的设计模式或者架构方案。后来在写 Rust 和 Kotlin 的过程中,才意识到这是一套完全不同的思维工具。它不只是语法糖,更是一种对数据结构的“拆解能力”——让你能用一种… · 2026/9/24 19:35:24

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程
基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为… · 2026/9/24 0:00:13

1D-CNN时间序列建模实战:从Conv1d原理到工业落地
1D-CNN时间序列建模实战:从Conv1d原理到工业落地

简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26

柔软的L:汉语语流中被忽视的舌肌张力控制
柔软的L:汉语语流中被忽视的舌肌张力控制

1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码