前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >容器内运行bcc-tools方法

容器内运行bcc-tools方法

原创
作者头像
cdh
修改2023-12-28 08:07:19
2590
修改2023-12-28 08:07:19
举报
文章被收录于专栏:笔记+笔记+

系统环境以TKE+tencentos3.1(TK4) 5.4 内核为例子说明。

1. 节点上先安装对应内核版本的kernel-devel rpm包

2. 下载安装nerdctl

wget https://github.com/containerd/nerdctl/releases/download/v1.7.0/nerdctl-1.7.0-linux-amd64.tar.gz

tar -zxvf nerdctl-1.7.0-linux-amd64.tar.gz

cp nerdctl /usr/local/bin/

# nerdctl version

3. 使用tencentos/tencentos_server31:latest镜像启动一个特权容器,并共享host的网络和pid等命名空间,

以及将节点的/lib/modules/和/usr/src/kernels/目录挂载到容器内解决内核头文件依赖(需要依赖/lib/modules/kernel_version/build -> /usr/src/kernels/kernel_version)

nerdctl run -it --privileged --network host --pid=host --ipc=host --uts=host --name bpf-debug -v /lib/modules/:/lib/modules/ -v /usr/src/kernels/:/usr/src/kernels/ tencentos/tencentos_server31:latest sleep 36000

注:如果不挂载节点的/lib/modules/和/usr/src/kernels/到容器内,也可以直接在容器里安装kernel-devel rpm包生成/usr/src/kernels/$kernel_version,然后创建软链接方式解决内核头文件依赖:

ln -s /usr/src/kernels/$kernel_version /lib/modules/$kernel_version/build

4. 登陆容器

nerdctl exec -ti bpf-debug bash

5. 手工挂载 debugfs

mount -t debugfs debugfs /sys/kernel/debug

6. 安装bcc-tools 以及上传编译好的libbpf-tools

yum install bcc-tools -y

7. 验证工具可运行:

运行bcc:

运行libbpf:

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com