Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【番外篇】pipework和openvSwitch学习

【番外篇】pipework和openvSwitch学习

原创
作者头像
Librant
修改于 2019-01-20 09:53:44
修改于 2019-01-20 09:53:44
7730
举报
文章被收录于专栏:跟我一起学 K8s跟我一起学 K8s

Pipework允许您在任意复杂的场景中将容器连接在一起。Pipework使用cgroups和namespace,并使用“普通”LXC容器(用它创建lxc-start)和令人敬畏的Docker。

github.com代码路径:https://github.com/jpetazzo/pipework

1、下载代码:

https://github.com/jpetazzo/pipework.git

创建目录jpetazzo

librant@ubuntu:~/gowork/src/github.com$ mkdir jpetazzo

进入到jpetazzo中,下载pipework代码:

librant@ubuntu:~/gowork/src/github.com/jpetazzo$ git clone https://github.com/jpetazzo/pipework.git

2、使用介绍

https://www.aliyun.com/jiaocheng/1381773.html

pipework语法:

pipework <hostinterface> [-i containerinterface] [-l localinterfacename] [-a addressfamily] <guest> <ipaddr>/<subnet>

pipework --wait [-i containerinterface]: 这条命令用于等待指定接口真正创建完成。

-i containerinterface: 参数指定要等待的接口名称; 如果没有指定-i参数,则默认等待名为eth1的接口创建完成。

pipework tc <guest> <tc_command>:用于在指定容器内执行tc流量控制命令

这条命令用于在<guest>指定的容器名所在的网络命名空间中执行流量控制命令<tc_command>

脚本会查找<guest>容器的pid,并在/var/run/netns下建立相应网络命名空间的符号链接,然后通过ip netns exec在指定网络命名空间中执行tc命令。

pipework rule <guest> <rule_command>:用于在指定容器内执行ip rule命令。和上面tc的原理类似。

pipework route <guest> <route_command>:用于在指定容器内执行ip route命令,和上面一条命令原理类似

pipework [--direct-phys] <hostinterface> [-i containerinterface] [-l localinterfacename] [-a addressfamily] <guest> <ipaddr>/<subnet>[@default_gateway] [macaddr][@vlan]

pipework [--direct-phys] <hostinterface> [-i containerinterface] [-l localinterfacename] <guest> dhcp [macaddr][@vlan]

用于为指定的<guest>容器创建网卡,并桥接到<hostinterface>指定的宿主设备。

linux bridge不支持创建vlan,如果要创建vlan只能使用openvswitch或者物理网卡。

3、脚本学习

pipework使用shell脚本编写,整个文件大约460行代码,很适合学习网络相关的知识。

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

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
研究pipework
很早以前就听说过pipework,据说面对一些复杂的网络配置场景,docker自带的网络模式就有些力不从心了,很多人都在用pipework。今天终于能够抽出时间研究一下它。 docker默认支持的网络模式 除了overlay网络外,docker默认支持4种网络模式,如下: host模式,使用–net=host指定,容器和宿主机共用一个Network Namespace。 container模式,使用–net=container:NAME_or_ID指定,容器和已经存在的一个容器共享一个Network Nam
jeremyxu
2018/05/10
1.6K0
清除k8s使用underlay网络的障碍
上一篇说到在k8s里使用underlay网络有一个弊端,使用了underlay网络的pod无法访问serviceIP,这一点可能通过修改修改业务应用的chart来解决,主要解决方法是:
jeremyxu
2019/07/03
1.9K10
清除k8s使用underlay网络的障碍
彻底理解kubernetes CNI
CNI接口很简单,特别一些新手一定有克服恐惧心里,和我一探究竟,本文结合原理与实践,认真读下来一定会对原理理解非常透彻。
sealyun
2019/08/05
1.8K0
Docker容器学习梳理--基础知识(2)
之前已经总结了Docker容器学习梳理--基础知识(1),但是不够详细,下面再完整补充下Docker学习的一些基础。 Docker是个什么东西 Docker是一个程序运行、测试、交付的开放平台,Docker被设计为能够使你快速地交付应用。 在Docker中,你可以将你的程序分为不同的基础部分,对于每一个基础部分都可以当做一个应用程序来管理。 Docker能够帮助你快速地测试、快速地编码、快速地交付,并且缩短你从编码到运行应用的周期。 Docker使用轻量级的容器虚拟化平台,并且结合工作流和工具,来帮助你管
洗尽了浮华
2018/01/23
2.1K0
Docker容器学习梳理--基础知识(2)
SDNLAB技术分享(十五):容器网络大观
一、容器网络概述 容器这一两年火的不行,可以说是独领IT风骚,一时风光无二。相比于虚拟机来说,容器更轻,一台服务器上可以运行成百上千的容器,这意味着更为密集的计算资源,因此基于容器运行工作负载的模式深受云服务提供商们的青睐。 然而对于云管理员来说,管理容器确是一件相当头疼的事情,容器的生命周期更短了,容器的数量更多了,容器间的关系更复杂了。为了简化大规模容器集群的运维,各路容器管理与编排平台应运而生,Docker社区开发了Swarm+Machine+Compose的集群管理套件,Twitter主推Apach
SDNLAB
2018/04/02
1.4K0
SDNLAB技术分享(十五):容器网络大观
Docker部署Hadoop集群
前几天写了文章“Hadoop 集群搭建”之后,一个朋友留言说希望介绍下如何使用Docker部署,这个建议很好,Docker不仅在生产环境威力巨大,对于我们在自己电脑中搭建学习实验环境更是非常便利 搭建一个集群环境时需要多台服务器,对于我们个人,这通常是个门槛,需要使用虚拟机,安装操作系统,然后运行起来多个虚机 安装操作系统是个不太轻松的任务,并且运行多个虚机对个人电脑性能也有一定要求,这些门槛影响了很多小伙伴的实践积极性 使用Docker的话就简单了,不用安装操作系统,直接下载一个镜像,如centos,这样
dys
2018/04/04
6K1
Docker容器学习梳理--容器间网络通信设置(Pipework和Open vSwitch)
自从Docker容器出现以来,容器的网络通信就一直是被关注的焦点,也是生产环境的迫切需求。容器的网络通信又可以分为两大方面:单主机容器上的相互通信,和跨主机的容器相互通信。下面将分别针对这两方面,对容器的通信原理进行简单的分析,帮助大家更好地使用docker。前面已经在Docker容器学习梳理--基础知识(2)这一篇中详细介绍了Docker的网络配置以及pipework工具。 docker单主机容器通信 基于对net namespace的控制,docker可以为在容器创建隔离的网络环境,在隔离的网络环境下,
洗尽了浮华
2018/01/23
3.6K0
Docker容器学习梳理--容器间网络通信设置(Pipework和Open vSwitch)
说说linux容器的隔离
说到docker,大家都懂。但是LXC可能就比较陌生。Docker的起源于LXC。LXC的英文全称是Linux Container,相比较其他虚拟机而言,是一种轻量级虚拟化技术,它介于Chroot(linux的一个改变根目录挂载点的机制)和完整开发的虚拟机之间。LXC不使用单独的内核资源,但是可以创建一个类似的Linux操作系统环境。
mariolu
2020/02/13
3.2K0
Ubuntu下Docker固定IP配置及桥接
一、Docker的四种网络模式 Docker在创建容器时有四种网络模式,bridge为默认不需要用--net去指定,其他三种模式需要在创建容器时使用--net去指定。
星哥玩云
2022/07/04
2K0
Ubuntu下Docker固定IP配置及桥接
史上讲解最好的 Docker 教程,从入门到精通(建议收藏的教程)
docker不是一个值得投入的领域,它解决的问题是Unix系统最初设计的一个疏忽。从一个不会用docker的小白,自己一步一步的摸索,中间也踩过许多坑。但任然,坚持从哪里跌倒就从哪里爬起来。不求感动自己,但求人生无悔。
周辰晨
2021/10/08
74.8K4
史上讲解最好的 Docker 教程,从入门到精通(建议收藏的教程)
扩展 Kubernetes 之 CNI
> 扩展 kubernetes 分为三种模式 webhook,binary 二进制,controller
王磊-字节跳动
2020/02/02
3.4K1
Docker容器技术
Docker介绍 什么是容器 Linux容器是与系统其他部分隔离开的一系列进程,从另一个系统镜像运行,并由该镜像提供支持进程所需的全部文件。 容器镜像包含了应用的所有依赖项,因而在从开发到测试再到生产的整个过程中,它都具有可移植性和一致性。 来源:https://www.redhat.com/zh/topics/containers/whats-a-linux-container 容器就是虚拟化吗? 虚拟化使得许多操作系统可同时在单个系统上运行。 容器只能共享操作系统内核,将应用进程与系统其他部分,隔离开。
863987322
2018/03/29
3.5K0
Docker容器技术
CentOS 7下为Docker容器分配固定IP
  我们在使用docker run创建Docker容器时,可以用–net选项指定容器的网络模式,Docker有以下4种网络模式:
会长君
2023/04/26
5640
【重识云原生】第六章容器6.1.4节——Docker核心技术LXC
        LXC(Linux Containers),即Linux容器,是一种操作系统层级的虚拟化技术,为Linux内核容器功能的一个用户空间接口。它将应用软件系统打包成一个软件容器(Container),内含应用软件本身的代码,以及所需要的操作系统核心和库。通过统一的命名空间(Namespace)和共享API来分配不同软件容器的可用硬件资源,创造出应用程序的独立沙箱运行环境,使得Linux用户可以容易的创建和管理系统或应用容器。
江中散人_Jun
2022/09/27
2.4K1
【重识云原生】第六章容器6.1.4节——Docker核心技术LXC
Docker容器虚拟化(三)—网络管理 原
首先使用centos镜像新建一个容器,然后在该容器中安装httpd服务,并启动 ,再把该容器导成一个新的镜像(centos-httpd),然后再使用新镜像创建容器,并指定端口映射:
阿dai学长
2019/04/03
1.2K0
Tungsten Fabric知识库丨这里有18个TF补丁程序,建议收藏
静态scheduler:用于svc-monitor logic选择可用的vRouter
Tungsten Fabric
2020/09/24
3970
Tungsten Fabric知识库丨这里有18个TF补丁程序,建议收藏
6.docker的网络通讯
1. 每台机器上都有一个网卡,有的甚至有两个网卡 , ETHD 10.1.1.10/8就表示一个网卡
用户7798898
2020/09/27
1.1K0
6.docker的网络通讯
走进Docker的世界--(库存学习笔记)
介绍docker的前世今生,了解docker的实现原理,以Django项目为例,带大家如何编写最佳的Dockerfile构建镜像。通过本章的学习,大家会知道docker的概念及基本操作,并学会构建自己的业务镜像,并通过抓包的方式掌握Docker最常用的bridge网络模式的通信。
误入歧途
2024/05/08
2330
Docker 网络
git clone https://github.com/jpetazzo/pipework cp ./pipework/pipework /usr/local/bin/
用户5760343
2019/10/30
6130
Docker 网络
docker_基础_3
   docker目前采用的是标准的C/S架构,client和service即可以运行在一台机器上,也可以在不同机器上通过socker和RESTful API来进行通信。
py3study
2020/01/08
6630
相关推荐
研究pipework
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档