在k8s容器中运行dlv attach 报错try writing “0“ to /proc/sys/kernel/yama/ptrace_scope

这篇具有很好参考价值的文章主要介绍了在k8s容器中运行dlv attach 报错try writing “0“ to /proc/sys/kernel/yama/ptrace_scope。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

执行 dlv --listen=:2345 --headless=true --api-version=2 attach ${pid} 报错

Could not attach to pid 11: this could be caused by a kernel security setting, try writing "0" to /proc/sys/kernel/yama/ptrace_scope

查看容器中/etc/sysctl.d/10-ptrace.conf 文件发现kernel.yama.ptrace_scope = 1

需要改成kernel.yama.ptrace_scope = 1

sed -i 's/kernel.yama.ptrace_scope = 1/kernel.yama.ptrace_scope = 0/g' /etc/sysctl.d/10-ptrace.conf

在容器中修改后发现只在容器中修改不生效,原因是 宿主物理机上的  /etc/sysctl.d/10-ptrace.conf 是kernel.yama.ptrace_scope = 1 (这个很关键)

最后修复方案:

先在宿主物理机上修改 /etc/sysctl.d/10-ptrace.conf

sed -i 's/kernel.yama.ptrace_scope = 1/kernel.yama.ptrace_scope = 0/g' /etc/sysctl.d/10-ptrace.conf

然后执行更新命令

sudo sysctl --system -a -p|grep yama # 

在物理机执行 cat /proc/sys/kernel/yama/ptrace_scope 确认输出是0

重启容器,查看

在容器中

查看 cat /proc/sys/kernel/yama/ptrace_scope 确认输出是0

如果不行,在容器中再执行 sed -i 's/kernel.yama.ptrace_scope = 1/kernel.yama.ptrace_scope = 0/g' /etc/sysctl.d/10-ptrace.conf

另外还可能会遇到dlv二进制的问题

问题是动态编译dlv二进制文件。当您使用go install下载二进制文件时,默认情况下,它使用CGO_ENABLED=1下载(除非重写),这要求在运行时加载大多数运行时库(包括glibc)。这在某些容器映像中可能无法正常工作,因为其中不存在库(例如,从scratch/distro-less静态映像构建的映像)。

因此,为了避免与容器映像的依赖关系之间的依赖关系,请始终通过将上述标志设置为0来下载静态编译的依赖关系。在docker上下文中使用下载的二进制文件

CGO_ENABLED=0 go install github.com/go-delve/delve/cmd/dlv@latest

您还可以在dlv上观察静态编译版本和动态编译版本之间的ldd输出。前者不会列出需要动态加载的库,后者会列出它们。

https://www.5axxw.com/questions/content/3vuy73文章来源地址https://www.toymoban.com/news/detail-628011.html

到了这里,关于在k8s容器中运行dlv attach 报错try writing “0“ to /proc/sys/kernel/yama/ptrace_scope的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • K8S容器运行时从Docker切换为Containerd

    K8S从1.24版本起不再支持docker容器引擎,可选的替代品有 containerd 、 cri-o 、 podman 。下面演示将单个node节点的容器引擎从docker切换为containerd的过程。 检查是否已经加载内核模块 overlay 和 br_netfilter 。 如果没有,手动加载内核模块: 检查系统内核参数: 如果没有开启,手动调

    2024年02月09日
    浏览(90)
  • k8s 1.27集群部署 容器运行时为containerd

    1.1.1 主机操作系统说明 序号 操作系统及版本 备注 1 CentOS7u9 1.1.2 主机硬件配置说明 需求 CPU 内存 硬盘 角色 主机名 值 8C 8G 1024GB master k8s-master01 值 8C 16G 1024GB worker(node) k8s-worker01 值 8C 16G 1024GB worker(node) k8s-worker02 1.1.3 主机配置 1.1.3.1 主机名配置 由于本次使用3台主机完成kubern

    2024年02月03日
    浏览(71)
  • KylinOSv10安装K8S时Coredns容器报错

    KylinOSv10安装K8S时Coredns容器报错。使用同一套利用kubeadm工具的安装脚本,相同的参数变量,在操作系统版本不同的两组服务器上安装K8S后,其中一组出现coredns容器持续重启的问题。(报错:applying cgroup configuration for process caused “No such device or address”) coredns容器的具体报错

    2024年02月04日
    浏览(50)
  • 基于containerd容器运行时,kubeadmin部署k8s 1.28集群

    centos7u9 序号 主机名 ip地址 CPU 内存 硬盘 1 k8s-master1 192.168.1.200 2C 2G 100G 2 k8s-worker1 192.168.1.201 2C 2G 100G 3 k8s-worker2 192.168.1.202 2C 2G 100G 1.3.1主机名配置 vi /etc/sysconfig/network-scripts/ifcfg-ens33 1.3.3主机名与IP地址解析(hosts) vi /etc/hosts 1.3.4防火墙配置 关闭防火墙firewalld 1.3.5SELINUX配置 修改

    2024年02月01日
    浏览(67)
  • 安装 k8s集群的问题:默认容器运行时从 Docker 改为 Containerd

    💖The Begin💖点点关注,收藏不迷路💖 从 Kuberetes 1.20 版本开始,Kuberetes官方 已经将默认的容器运行时从Docker改为Containerd。 因此,从 Kubernetes 1.20 开始,Kuberetes官方将支持使用 Docker和Containerd 作为容器运时,也意味着Kubemetes从Docker的依赖中解耦了出来。 在 Kubernetes1.24 及之后

    2024年04月14日
    浏览(63)
  • K8s:一文认知 CRI,OCI,容器运行时,Pod 之间的关系

    博文内容整体结构为结合 华为云云原生课程 整理而来,部分内容做了补充 课程是免费的,有华为云账户就可以看,适合理论认知,感觉很不错。 有需要的小伙伴可以看看,链接在文末 理解不足小伙伴帮忙指正 对每个人而言,真正的职责只有一个:找到自我。然后在心中坚守

    2024年02月09日
    浏览(43)
  • 【云原生 | Kubernetes 系列】— 部署K8S 1.28版本集群部署(基于Containerd容器运行)

    主机名 IP地址 备注 k8s-master01 192.168.0.109 master k8s-node1 192.168.0.108 node1 k8s-node2 192.168.0.107 node1 k8s-node3 192.168.0.105 node1 1、主机配置 2、升级内核 3、配置内核转发以及过滤 4、安装ipset ipvsadm,IPVS(IP Virtual Server)是一个用于负载均衡的 Linux 内核模块,它可以用来替代 kube-proxy 默认的

    2024年02月20日
    浏览(85)
  • k8s除了可以直接运行docker镜像之外,还可以运行什么? springboot项目打包成的压缩包可以直接运行在docker容器中吗?

    Kubernetes(k8s)主要设计用于自动部署、扩展和管理容器化应用程序。虽然它与Docker容器最为密切相关,Kubernetes实际上是与容器运行时技术无关的,这意味着它不仅仅能够管理Docker容器。Kubernetes支持多种容器运行时,包括但不限于: Docker :最为人熟知的容器平台,Kubernetes最

    2024年02月21日
    浏览(57)
  • k8s部署es, 容器一直重启, 报错提示“Back-off restarting failed container“

    最近学习k8s, 在win10的minikube上部署ES, 容器一直在重启, 报错提示只有\\\"Back-off restarting failed container\\\", 现将定位过程记录以备日后查阅 es容器一直重启, event报错提示只有一句\\\"Back-off restarting failed container\\\" 网上查到\\\"Back-off restarting failed container\\\"的报错, 一般是容器的启动命令异常退

    2024年02月16日
    浏览(63)
  • 【C站首发】全网最新Kubernetes(K8s)1.28版本探秘及部署 基于Containerd容器运行时(100年证书kubeadm)

    序号 操作系统及版本 备注 1 CentOS7u9 需求 CPU 内存 硬盘 角色 主机名 值 8C 8G 1024GB master k8s-master01 值 8C 16G 1024GB worker(node) k8s-worker01 值 8C 16G 1024GB worker(node) k8s-worker02 1.3.1 主机名配置 由于本次使用3台主机完成kubernetes集群部署,其中1台为master节点,名称为k8s-master01;其中2台为wor

    2024年02月08日
    浏览(67)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包