自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 qemu + busybox + gdb 构建linux内核调试环境

调试环境主要涉及以下工具,及对应版本号qemu 4.2.0。

2023-12-25 10:11:26 985

原创 vmware + ubuntu 20.04 构建内核代码编译环境

最近一段时间,一直在做sdn内核转发面相关的工作,所以开始和内核模块、内核源码打交道,包括内核模块的编译,内核源码的走读等。对于之前一直在做用户态开发的我来说还是有一些难度。光编译环境就费了我一些时间,记录一下整个流程。

2023-12-25 10:10:54 523

原创 virt-customize构建zstack qcow2镜像

由于当前使用centos7.9镜像里面的cloud-init版本低,导致在zstack上指定root密码创建虚机时,密码错误。所以就想尝试将原来镜像里的cloud-init升到最新版本。还好公司大佬在github仓库里记录了定制镜像的步骤,一步步照着做就能实现。

2023-12-25 10:09:43 486

原创 kubernetes源码阅读:准备windows编译环境

完成配置后,打开goland内的终端,执行go mod tidy下载依赖。goland2021.3.4之前的版本,在打开wsl里的golang项目,针对这个项目配置goroot和gopath时,无法配置wsl里的goroot,goland会报不是有效的sdk错误。使用goland打开项目,在打开项目的对话框中,选择\wsl开头的目录,这样就能进入wsl的文件系统,从而选择到刚刚下载到的代码。如果你的goland是正版的,升级到2021.3.4版本,支持直接选择wsl里的sdk,一劳永逸。

2023-12-25 10:07:38 479

原创 通过设置内核参数rp_filter解决linux第二块网卡无法跨网络访问的问题

当test-single-lan2 ping 192.168.30.22时,tcpdump icmp包看了一下,发现只有请求的包,test-dual-vpc没有给响应。问题差不多明了了,当test-single-lan2 ping 192.168.30.22时,接收请求的网卡是eth1,而根据默认路由需要经过eth0发响应报文。从上面的配置直观来看,test-single-lan2这台虚机无论与test-dual-vpc的任意一块网卡交互,应该都是联通的。同在30网段的机器,就是通过eth1发出去的。

2023-12-25 10:06:41 1076

原创 调查Tomcat容器CPU占用过高的问题

直到现在没有找到具体的原因,起了三个pod,另外两个tomcat pod是正常的,只有这一个有异常。因为自己对java不是很熟,通过这一次debug,熟悉了一下java性能调优的工具。通常出现cpu过高的问题时,我们会使用top命令查看具体时哪个进程对cpu资源占用过高。但是top命令查看的pid进程id。在容器内执行ps -ef查看java服务进程号,一般pid都是1。将上一步得到的堆栈信息,copy到输入框内,点击Analyze。第一列为pid进程id,第二列为容器id,第三列为容器名。

2023-12-25 10:05:54 791

原创 记一次由于系统时间不同步导致的Pod启动失败问题

测试的同学使用我们的k8s集群部署脚本,部署完成后发现一个pod的状态是"CreateContainerError",而且一直卡在这个状态,pod也不进行重启。kubectl describe pod,显示错误信息大意是pod创建的容器与已存在的容器重名。查看kubelet log,也有相似的内容如下。

2023-12-25 10:05:11 426

原创 理解Linux Bridge、Tun/Tap、Veth Pair

最近在学习openstack neutron的相关知识,neutron的二层网络实现使用了linux网络虚拟化相关的技术。之前看kubernetes cni的时候,也使用过类似的技术。这一次整理一下这些内容,加深自己的理解。

2023-12-25 10:03:01 1265

原创 tcpdump能抓到被iptables drop掉的包吗?

上一篇文章,在调查跨节点访问pod的时候用到了tcpdump和iptables两个工具。地址如下在调查的过程中,也引发了我的思考。iptables明明已经把一些包给drop丢弃掉了,tcpdump为什么还能抓到包?tcpdump与iptables相比谁离的网卡驱动更近一些?

2023-12-25 10:01:43 535

原创 记一次kubernetes Pod跨节点访问不通的调查过程

环境部署成功后,出现了一个问题,在node上ping经由volcano创建调度的pod时,如果pod在本节点上,可以ping通,如果跨界点ping不通。客户现场的同事反馈说CNI使用的是calico,原来在测试环境使用的是flannel,读到这里有经验的读者可能已经知道大概是什么原因了。这里先卖个关子,其实问题很简单,但是恰逢周末,另外客户现场网络涉密也不能远程链接,所有的沟通都靠同事拍照回传,所以脑子混乱,一直到第二天周一使用了最麻烦的debug方式才找到问题所在。

2023-12-25 09:57:25 887

原创 是谁杀死了kube-apiserver

SIGKILL信号的特点是无法被进程捕获,进程无法做善后的操作就退出了,执行kill -9就是发送的SIGKILL信号。在https://stackoverflow.com/questions/26285133/who-sends-a-sigkill-to-my-process-mysteriously-on-ubuntu-server中,提到了简单的方法来找到发出信号的进程,那就是使用audit。可以看到,信号的目标进程是一个python程序,pid是24067,启动该进程的用户的id是3010。

2023-12-25 09:52:53 362

原创 kube-apiserver内存溢出问题调查及go tool pprof工具的使用

kube-apiserver已经无法正常的提供服务了。因为默认kube-apiserver的静态pod是没有设置memeory limit的,最终api-server会吃光机器的所有内存,导致master机器运行异常。出现问题后,没有找到问题根源,所以先修改了kube-apiserver的静态pod yaml文件,位于/etc/kubernetes/manifests/kube-apiserver.yaml,添加resources.limits.memory 为32g(本机内存为64g)。

2023-12-25 09:45:19 1099

原创 system call

mit s6.081 lab system call

2022-10-25 07:47:54 187 1

原创 Xv6 and Unix utilities

MIT 6.S081 lab

2022-10-20 11:27:19 368

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除