首页
学习
活动
专区
工具
TVP
发布
您找到你想要的搜索结果了吗?
是的
没有找到

【内核模块auth_rpcgss】netns引用计数泄露导致容器弹性网卡残留

的内核数据结构是struct net,其中的count字段表示引用计数,只有当netns的引用计数归零之后才能执行销毁动作: struct net { refcount_t passive;...是谁导致了netns引用计数泄露? 由于弹性网卡残留现象只出现在privileged容器,那么加不加privileged有什么区别呢?...对比发现,privileged容器里多了很多后台服务,怀疑是其中某个服务导致了netns引用计数泄露。我们一个一个依次排除,最终找到了直接导致netns泄露的后台服务是:gssproxy。...可是,容器终止后,在gssproxy后台进程也消失的情况下,netns引用计数仍然不能归零,这就很难解释了,因为用户态进程退出之后应该会释放它占用的所有资源,不应该影响内核,说明问题没那么简单,很可能内核有...我的patch是把它放进nsfs_evict()中,当netns被卸载的时候,nsfs_evict()会被调用,在这个时刻调用rpcsec_gss_exit_net()比较合理。

2.7K71

5张图诠释了容器网络

创建网络命名空间的一种方法是 ip 工具,它是 iproute2 的一部分: $ sudo ip netns add netns0 $ ip netns netns0 如何使用刚才创建的命名空间呢...将 netns0 命名空间连接到 root 命名空间,需要将一个设备留在 root 命名空间,另一个挪到 netns0 里: $ sudo ip link set ceth0 netns netns0...netns1 可以连通,但是 netns0 就不行了。 如果我们为 netns1 选择其他的网段,应该就都可以连通。但是,多个容器在同一个 IP 网段上应该是合理的使用场景。...删除网络命名空间: $ sudo ip netns delete netns0 $ sudo ip netns delete netns1 $ sudo ip link delete veth0...ip link set veth1 up $ sudo ip link set ceth1 netns netns1 $ sudo nsenter --net=/var/run/netns/netns1

94920
领券