- 博客(872)
- 资源 (7)
- 收藏
- 关注
原创 [问题已处理]-initcontainer容器提示端口已通,但是container启动时提示不通
导语:客户环境遇到一个相对奇怪的问题。一个job类型的sql,init container执行的时候提示数据库是通的,但是container运行的时候报连不上数据库。怀疑是container运行的时候,网络还有问题。于是修改启动命令如下,启动前先确认数据库端口。发现init容器通过,container刚启动时数据库端口确实不通。,再进入到容器手动执行是没问题的。
2025-07-03 11:46:27
184
原创 [问题已处理]-容器启动报错:tmp权限不足
,并调整相关/tmp文件夹权限为777(chmod 777 ./io.containerd.snapshotter.v1.overlayfs/snapshots/55/fs/tmp)(但是客户现场不行,我是把deployment缩容成0之后删除,后导入的。也许眼花看错了没删除成功)导语:今天遇到一个mysql和mongo启动失败的问题,都是容器内报在/tmp下创建文件失败。在故障及其上测试mongo服务,发现/tmp没有权限,且目录权限为755,与正常镜像不一致。删除pod后新启动的pod可正常启动。
2025-07-03 11:42:20
228
原创 [linux]-docker导出的镜像文件大小和ctr导出的不一致
结论:没有测试如果docker save的时候使用|gzip的效果,应该也是对目录进行了压缩。但是实际导入服务器后镜像大小是一样的。如果单个镜像需要导出传输,比较在乎镜像明面上的大小,可以使用nerdctl 或者ctr 导出。发现ctr和nerdctl的大小是一样的,docker save的镜像大比较多(如果save的时候带上|gzip 的话大小也是1.9G)。导语:记录一下docker save未经过压缩和通过nerdctl导出的镜像包大小的区别。可以通过命令解压查看。解压同一个镜像的目录结构不一样,
2025-07-03 11:39:09
213
原创 [kubernetes]-通过job类型在完成任务之后上传动图svg附件到oss和wiki
导语:希望在自动验证安装包的流程中,对最终服务的状态进行截图,方便通过钉钉查看并记录在wiki中、避免后续扯皮。1个wiki内网用于存档,一个oss地址,用于随时可在手机上查看。手动执行上传的shell命令如下。
2025-07-03 11:35:34
209
原创 [kubernetes]-k8s通过calico和虚拟网卡实现无网络配置安装服务
导语:由于有单机离线的需求,需要能够在不使用网线(没有配置网关)的情况下可以实现既能通过直连显示屏访问localhost,flannel似乎需要依赖网关才能正常启动所有服务,也能通过网线访问ipvs地址。测试下来使用calico绑定虚拟ip到dummy0网卡可以实现。flannel的host-gw+绑定虚拟ip到dummy0网卡暂时无法测试通过,也可能是测试不充分。kubelet需要增加node-ip。calico的ds主要增加2个配置。完整yaml文件如下。
2025-07-03 11:29:41
99
原创 [kubernetes]-k8s使用nerdctl构建containerd镜像
导语:希望在服务器上直接构建containerd的镜像并直接调试使用。采用nerdctl的好处,可以直接在服务器上构建并直接给k8s使用。nerdctl使用方式和docker基本一致,commit命令相对无脑可以给开发用。
2025-07-03 11:20:54
315
原创 [mac]-通过mac给tv盒子安装apk
导语:下载的apk文件放u盘里无法安装,断网也不可以。提示应用存在违规,禁止安装。使用mac连接同一wifi进行安装。需要先下载SDK 平台工具。1 在小米盒子一直点击设备信息,直到提示已经开启调试模式。2 进入安全设置 开启adb模式(1为前置条件)3 通过安卓手机或者pc或者mac进行安装。tv上需要手动确认授权下。
2025-07-03 11:19:01
298
原创 [kubernetes]-win11中通过docker desktop运行gpu容器
导语:在win11中docker desktop运行gpu容器。win11的话win版本肯定是符合的,win10的话有版本要求。
2025-07-03 11:17:49
397
原创 [问题已处理]-ctr下镜像时宕机导致重下时报错failed commit on ref
导语:用于处理镜像下一半机器宕机导致的镜像无法下载的问题。
2025-07-03 11:14:42
169
原创 [问题已处理]-k8s资源request一样的情况下占用百分比不一致
排查后发现是kubelet设置过给系统和kubelet预留过cpu。导致cpu资源被排除了。而另一台没有配置这个参数。导语:今天排查问题发现2台同为8c64g的服务,资源requests一样的情况下,百分比不一样,导致某个服务没起来。kubectl descirbe node查看信息,发现Allocatable下的cpu只有7300m。
2025-07-03 11:07:07
141
原创 [linux]-linux通过nvidia-smi禁用下线指定显卡
pci id为busid 后9位 0000:0D:00.0。导语:linux通过nvidia-smi禁用下线指定显卡。查看显卡pci id号。
2025-07-03 11:03:07
143
原创 [kubernetes]-k8s修改local-path-provisioner创建的pv名称
导语:local-path-provisioner提供的storage 创建的pv名称是比较难以识别的,希望进入pv还得确认一下。我希望能够更好辨识一些。最终的镜像测试直接替换yaml中的镜像就可以让最终的pv名称显示更友好了。local-path-provisioner的日志。修改controller.go,调整1417行为。pvc-${pcv_name}并切换到tag 0.0.23。再以新的Dockerfile构建。
2024-08-29 11:15:37
276
1
原创 [问题已处理]-k8s单节点容器间无法通讯排查
调整2台防火墙规则一致后,容器间依旧没法通讯,执行上面命令可以临时生效,但是重启后又会无法通讯。另一台正常的机器重启后依旧可以正常通讯。导语:2台服务器,一台机器单节点的k8s启动正常,另一台单节点k8s会crash,日志是pod之间无法通讯。安装过程中,执行下面命令时有异常,导致规则没有全部报错。后续发现是开机未执行命令。
2024-08-29 11:13:22
355
原创 [问题已处理]-k8s ingress启动报80被占用后续
导语:ingress nginx报错80端口无法被bind后续。目前遇到过3次,此次无论重启还是重置k8s均会提示80的问题。官方的error没打印。是listen失败,但上层调用时就是认为是 port already in use。使用root用户测试,或者可以尝试删除镜像重新导入。后续排查到官方的troubleshooting.md,猜测可能是权限掉了的问题。现场问题临时使用nodePort + nginx80的方式先提供了服务。经查使用nc -l 80 可以使用80,证明端口并未被占用。
2024-08-29 11:12:13
1439
3
原创 [问题已处理]-k8s设置了--fail-swap-on=false但是启动依旧报错不支持swap
验证是否为系统版本22.04.1 > 22.04.4和内核版本升级5.15.0-43-generic > 5.15.0-107-generic造成的。后续验证暂时排除对应原因。原因看着像是Environment里的配置无法被识别到,其他机器是没问题的。采用手动启动服务是不会报错swap的。导语:kubelet启动突然报错不支持swap了。看内核和系统版本有自动更新。
2024-08-29 11:10:34
337
原创 [问题已处理]-ufw加入新规则之后ufw reload报错ERROR initcaps
需要执行下面的命令重新添加防火墙规则。注意可能会导致ssh掉线,建议直连服务器操作。导语:ufw加入新规则之后ufw reload报错ERROR: initcaps。
2024-08-29 11:09:49
456
原创 [linux]-tar输出当前解压进度或解压中文件的进度
这条命令是一个复杂的 shell 命令,用于计算指定文件的打开百分比。对于镜像导入都不行。
2024-08-29 11:07:20
729
原创 [问题已处理]-麒麟V10SP2安装k8s初始化后coredns报错No such device or address
导语:银河麒麟高级服务器操作系统 V10 SP2 aarch64 安装k8s时coredns报错No such device or address。这回启动之后coredns日志一直报错still waiting kubernetes。最终调整docker配置和初始化参数,使用cgroupfs。试了官方sp1的方法。
2024-08-29 11:06:14
577
原创 [问题已处理]-ctr镜像导入报错failed to create snapshot- missing parent bucket- not found
导语:今天发现执行脚本版本升级的时候。原先存在的镜像导入报错failed to create snapshot: missing parent,但是镜像没有变更果。只需要执行下下面的命令就能正常了。排查之后发现,脚本修改了。
2024-08-27 16:18:16
656
原创 [问题已处理]-dpkg- error processing package mysql-server-5.7 --configure
导语:mysql5.7.2x升级到5.7.33的时候报错。直接在bash的下一行 增加。查看其实已经升级成功了。
2024-08-27 16:17:21
402
原创 [问题已处理]-通过shell创建wiki里的页面,并把日志文件的内容贴进去
贴一下上传安装和质检日志的shell,通过for循环导出日志,并替换掉其中的特殊字符避免提交出现500。并根据关键字对颜色进行调整。导语:希望通过shell创建wiki里的页面,并把日志文件的内容贴进去。通过脚本把文件123的内容更新到page中。目前version是写死的。Basic后面跟的是base64转码后的。shell命令实现如下。重复名称就会提示400。
2024-08-27 16:16:31
291
原创 [问题已处理]-k8s让job在重启后再执行
的时间来判断是否为开机。为了确保k8s正常运行,大致设置了15分钟。因为重启之前进行下载解压安装,肯定超过半小时。等reboot之后,job的策略会再次运行。并让其他job等待这个job执行完毕,来夯住整个流程。导语:希望设计一个job,首次重启后再执行。这个initcontainer。配合shutdown命令使用。
2024-08-27 16:14:40
388
原创 [linux]-shell不使用expcect实现简单的脚本交互
导语:希望实现脚本交互安装。但是又不喜欢用expcect。以下脚本适用于固定交互方式,切交互简单的。,交互依次输入1;以下是GPT给出的建议。
2024-08-27 16:13:44
185
原创 [kubernetes]-helm通过hook在upgrade前清理job
当我们使用before-hook-creation的时候,job资源会在存在的情况下先删除,再次创建。避免因为不能修改而中断。导语:当我们使用helm upgrade时,job资源会因为不能修改而中断。初次执行时job名称似乎没有显示,重复执行几次之后查看job名并无问题。yaml添加部分为annotations块。并未经详细验证和测试。
2024-08-27 16:12:02
369
原创 [kubernetes]-k8s使用velero备份恢复采用minio和oss
Velero 阿里云插件地址:https://github.com/AliyunContainerService/velero-plugin 4-5年前的了。确认已经开通oss功能,并创建bucket ,名为opes-velero-back https://oss.console.aliyun.com/overview 关闭阻止公共访问。Velero 项目地址:https://github.com/vmware-tanzu/velero。找了2台不同的服务器试了下 A备份去B恢复没问题。
2024-08-27 16:08:53
448
原创 [kubernetes]-k8s网络排查利器nsenter
验证是否已经进入容器网络。在nsenter中telnet localhost 2181是可以的。但是有缺陷,无法用service名称通讯。需要手动修改/etc/resolv.conf。导语:看到有用nsenter在docker运行时的情况下,排查网络问题的脚本。学习了一下顺便增加了一个containerd版本。containerd版本。
2024-08-27 16:06:54
389
原创 [问题已处理]-CVE-2024-6387漏洞修复
非滚动发行版都是 patch 支持的版本而不是直接升级到最新,比如 Debian (1:9.2p1-2+deb12**u2** -> 1:9.2p1-2+deb12**u3**) 和 Ubuntu (1:8.9p1-3 -> 1:8.9p1-3**ubuntu0.10**) 所以看版本号要看后缀,不是非得升级到 9.8p1。问题发现团队的公告最后有时间线: https://www.qualys.com/2024/07/01/cve-2024-6387/regresshion.txt。
2024-08-27 16:04:22
565
原创 [kubernetes]-pod启动报错too many open files
导语:ulimt已经设置过,但pod启动报错too many open files。记录一个容器内很方便查看inotify相关配置的脚本。执行脚本查看容器内外相关限制。最终调整调度的节点解决。
2024-08-27 16:02:02
411
原创 [问题已处理]-ubuntu22.04安装显卡驱动后桌面端卡在黑屏小白点一直闪进不去桌面
导语:笔记本带4080安装ubuntu22.04,桌面在未安装550显卡驱动前没问题。装了显卡驱动就会卡在黑屏,但命令行界面可用。把secure boot改成enable后可以进入桌面版,但是显卡用不了。一个小白点一直闪进不去桌面,但是终端可用,可以ssh,不影响其他功能。容器内的egl版本,这里是正常的由nvidia提供的。重装显卡驱动,重装桌面。更换其他版本驱动都未能解决。最终解决方法,修改显卡安装命令。查看物理机器的egl版本。
2024-08-27 15:57:14
1559
1
原创 [kubernetes]-使用k8tz来配置pod中的时区
导语:看到有用k8tz来配置pod中的时区的。来学习一下,这个用来统一namespace的时间很方便。先下载对应的文件https://github.com/k8tz/k8tz/tree/master。补充下调整namespace时区和宿主机一致的命令。进入chats目录后 使用helm安装。创建一个pod查看下时区。
2024-08-27 15:55:34
289
原创 [问题已处理]-containerd下snapshots文件夹占用磁盘特别大
需要在/etc/containerd/config.toml下添加snapshotter = “” ,重启containerd并删除/data1/containerd/snapshots。导语:containerd的containerd/snapshots占用磁盘非常大。感觉都是deployment的pod没必要做快照,可以直接关闭或者删除。看了下占用较大的都是gpu容器,像是同步了整个权重文件夹,导致会有60G的快照。总共有3000个左右。
2024-08-27 15:50:10
1593
原创 [kubernetes]-k8s定时备份单节点etcd及故障恢复
思路:通过cronjob类型去定时备份(cronjob备份可以确保每次备份的时候k8s状态是ok的),通过可执行文件在宿主机上进行恢复。导语:前场经常非法关机导致单机的etcd损坏。每次都重装k8s虽然比较简单,但是会相对耗时。把命令写到脚本里做了下测试,恢复成功。不用root去备份会报权限问题。cronjob.yaml如下。立即运行cronjob。
2024-04-28 11:32:24
425
1
原创 [问题已处理]-k8s无法通外网,无法通过svc的name通讯,但可以通过svc的ip通讯
导语:故障排查,k8s 无法通外网,无法通过svc的name通讯,但是可以通过svc的ip通讯。原/etc/iptables-rules如下。新/etc/iptables-rules如下。需要执行一下下面命令。
2024-04-28 11:31:50
422
原创 [问题已处理]-同个ovf恢复的虚拟机的容器无法调用egl
内部测试在suse15.5上用nvidia-container-toolkit 1.9也是可以调用egl的(1080Ti),在ubuntu22.04上用nvidia-container-toolkit 1.13.5-1也是可以调用egl的(1080Ti)导语:导出的suse虚拟机文件恢复的虚拟机上以及容器内,egl均可使用。但是客户方相同文件的虚拟机宿主机可以调用egl,但是容器内会报错。最终让客户的suse升级最新的1.15之后就可以调用egl了(A4000)。
2024-04-28 11:30:54
197
原创 [问题已处理]-断电后containerd无法启动并报错bbolt db.go
后续查看日志开头有etcd相关的报错,containerd为什么会需要etcd呢,后续发现是containerd存储数据也使用了.db文件,应该是使用了etcd存储数据那一套。我删除了卸载containred和docker并重新安装,并没有解决问题。docker和containerd都无法启动,启动夯住,系统日志报错如图。依旧不行则需要清理整个containerd文件夹,但是镜像需要重新导入。也不一定具体是哪个文件,有其他人遇到另外的db损坏的。率先尝试删除db文件,重启后会新生成。docker相关db。
2024-04-28 11:30:20
638
1
觅安教育zabbix4.0个人学习笔记.docx
2019-11-22
mysql的monyog工具,8.8.0版本
2019-03-26
bizhub2200P.zip
2020-07-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人