首页 > 其他分享 >Kubernetes网络调试:进入容器网络命名空间(netns)的实用指南

Kubernetes网络调试:进入容器网络命名空间(netns)的实用指南

时间:2024-11-15 14:34:14浏览次数:1  
标签:容器 00 Kubernetes ip 网络 ff netns ID

在Kubernetes中,进入容器的网络命名空间(netns)是一个高级操作,通常用于网络调试和故障排除。

以下是一些实用的技巧和步骤,帮助进入容器的netns:


一、获取容器ID和进程ID(PID

首先,需要使用kubectl命令获取目标Pod中容器的ID,然后根据容器运行时(如containerd或dockerd)获取容器的主进程PID。

  • 使用kubectl获取容器ID:
kubectl -n <namespace> describe pod <pod-name>

在输出中找到类似Container ID: containerd://或Container ID: docker://的信息。


  • 使用crictl(针对containerd运行时)或docker(针对dockerd运行时)获取容器PID:
# For containerd
crictl inspect <container-id> | grep -i pid

# For dockerd
docker inspect <container-id> | grep -i pid

二、准备netns链接

在宿主机上,确保/var/run/netns目录存在,并创建一个到容器netns的符号链接。

mkdir -p /var/run/netns
ln -s /proc/<container-pid>/ns/net /var/run/netns/<container-pid>

三、进入容器的netns

使用nsenter或ip netns exec命令进入容器的netns。

  • 使用nsenter:
nsenter -n --target <container-pid>
  • 使用ip netns exec(需要先将netns链接到/var/run/netns):
ip netns exec <container-pid> ip addr

四、验证和调试

成功进入容器的netns后,可以使用宿主机上的网络工具进行调试。

例如,使用ip addr查看容器的IP地址,或使用tcpdump抓包。

[root@10-40-0-35 ~]# docker inspect dm.bp.acs|grep -Ei "PID"
            "Pid": 10160,
            "PidMode": "",
            "PidsLimit": null,

[root@10-40-0-35 ~]# nsenter -n --targe 10160

[root@10-40-0-35 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
80: eth0@if81: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1452 qdisc noqueue state UP group default 
    link/ether 02:42:ac:13:04:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 172.19.4.2/24 brd 172.19.4.255 scope global eth0
       valid_lft forever preferred_lft forever

[root@10-40-0-35 ~]# exit
logout

五、退出netns

完成调试后,可以通过输入exit命令或使用Ctrl + D组合键退出容器的netns。

标签:容器,00,Kubernetes,ip,网络,ff,netns,ID
From: https://www.cnblogs.com/linuxshare/p/18547891

相关文章

  • 2024四川省大学生网络安全技能大赛--crypto
    1、easyrsa题目n=23792583705374189545679156857755903878016250540127710246753745617274304389583344704113138589733408235780341088002610330172981310203101669419279485446903080470828101625401545395900167347886555843342450664942132024224786444135999300216368287......
  • 网络乒乓测试工具
    一、工具介绍采用shell脚本和c/c++开发,用于评估多台主机间任意2台主机间的网络性能使用网络socket接口,建立客户端和服务端tcp网络连接,进行网络收发包测试测试可以指定收发报文数量和告警阈值  二、测试标准收发10w次报文,如果千兆网,耗时一般在20~50秒,如果是万兆网,耗......
  • 衡量神经网络表征相似度
    目录1.中心核对齐技术(CKA)2.Hilbert-Schmidtindependencecriterion(HSIC)HSIC的计算步骤:HSIC的性质:应用:矩阵中心化操作对于单个数据集的中心化对于两个数据集的中心化(例如,用于HSIC)Python代码示例1.中心核对齐技术(CKA)    CKA通过计算两个表......
  • docker compose网络
    基本概念默认情况下,Compose会为我们的应用创建一个网络,服务的每个容器都会加入该网络中。这样,容器就可被该网络中的其他容器访问,不仅如此,该容器还能以服务名称作为hostname被其他容器访问。默认情况下,应用程序的网络名称基于Compose的工程名称,而项目名称基于docker-compose.yml......
  • 网络安全自学入门:(超详细)从入门到精通学习路线&规划,学完即可就业
      很多人上来就说想学习黑客,但是连方向都没搞清楚就开始学习,最终也只是会无疾而终!黑客是一个大的概念,里面包含了许多方向,不同的方向需要学习的内容也不一样。算上从学校开始学习,已经在网安这条路上走了10年了,无论是以前在学校做安全研究,还是毕业后在百度、360从事内核安全......
  • 蓝队基础:企业网络安全架构与防御策略
    声明学习视频来自B站up主**泷羽sec**有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,此文章为对视频内容稍加整理发布,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关,切勿触碰法律底线,否则后果自负!!!!有兴趣的小伙......
  • 【精品毕设推荐】基于微信小程序的网络小说小程序
    点击下载原文及代码,可辅助在本地配置运行......
  • Docker && Kubernetes
     Docker镜像与容器Docker中有两个重要概念。一个是容器(Container):容器特别像一个虚拟机,容器中运行着一个完整的操作系统。可以在容器中装Nodejs,可以执行npminstall,可以做一切你当前操作系统能做的事情另一个是镜像(Image):镜像是一个文件,它是用来创建容器的。如果你有装过......
  • 2024网络安全学习路线 非常详细 推荐学习
    关键词:网络安全入门、渗透测试学习、零基础学安全、网络安全学习路线首先咱们聊聊,学习网络安全方向通常会有哪些问题1、打基础时间太长学基础花费很长时间,光语言都有几门,有些人会倒在学习linux系统及命令的路上,更多的人会倒在学习语言上;2、知识点掌握程度不清楚对于网......
  • 【网络云计算】2024第46周周考-磁盘管理的基础知识-RAID篇
    文章目录1、画出各个RAID的结构图,6句话说明优点和缺点,以及磁盘可用率和坏盘数量,磁盘总的数量2、写出TCP五层模型以及对应的常用协议【网络云计算】2024第46周周考-磁盘管理的基础知识-RAID篇1、画出各个RAID的结构图,6句话说明优点和缺点,以及磁盘可用率和坏盘数量,磁......