美文网首页
进入pod容器的netns

进入pod容器的netns

作者: wwq2020 | 来源:发表于2022-06-02 17:55 被阅读0次

    背景

    同事需要对pod的进出流量进行限速,
    因为容器和主机通信是通过veth pair的,所以思路就是对veth pair的两端进行限速

    进入pod容器的netns

    确保/var/run/netns存在

    mkdir -p /var/run/netns
    

    准备netns

    podName=yourpodname
    podNamespace=yournamespace
    containerID=`kubectl get pod -n $podNamespace $podName  -ojsonpath='{.status.containerStatuses[0].containerID}'`
    containerID="${containerID##*\/}"
    containerPID=`docker inspect --format='{{.State.Pid}}' $containerID`
    ln -s /proc/$containerPID/ns/net /var/run/netns/$containerPID
    
    

    实验

    ip netns exec $containerPID ip addr
    

    获取veth pair两端

    容器侧是eth0,所以只需要获取主机侧

    vethIndex=`ip netns exec $containerPID cat /sys/class/net/eth0/iflink`
    hostVeth=`ip addr|grep "${vethIndex}:" |awk '{print $2}'`
    hostVeth="${host_veth%@*}"
    

    相关文章

      网友评论

          本文标题:进入pod容器的netns

          本文链接:https://www.haomeiwen.com/subject/coiqmrtx.html