Macvlan路由规则

对macvlan 不熟悉的同学,可以先看下这篇macvlan virtual network简介 默认情况下Linux kernel会阻止(drop)宿主机(host eth0)虚拟出来的 macvlan network(bridge mode) 和宿主机host eth0)之间网络数据包。 调试了一段时间后,我们发现了可以通过路由表来绕过这个限制。 具体实施的方法如下: 在host network namesapces下新增 一个macvlan device,然后添加路由规则即可。 通信的两个方向简单解释如下: eth0(host) -> pod(macvlan) 宿主机host eth0 通过break0 设备 和route table的路由规则 可以访问到pod(在macvlan中) shell调试脚本如下: 1 2 3 4 5 6 ip link add break0 link eth0 type macvlan mode bridge # NOTE: if use /24 CIDR will auto add a route rule # (100.75.30.0/24 dev break0 proto kernel scope link src 100.75.30.1) # which we don't need ifconfig break0 100.75.30.7/32 up ip r a 100.75.30.71 dev break0 # 100.75.30.71 is a pod ip for test 因为kuryr是用python配置网络的,所以也提供对应的python脚本如下: ...

March 11, 2019 · datewu

子目录父目录

最近开发的遇到一个需求是在判断 两个目录是否相互包含。 想着用正则表达式或者递归去解决,捣鼓一段时间后发现总有些edge case 不能cover到, 后来发现用 python 的pathlib 可以很好的解决。 1 2 3 4 5 6 7 from pathlib import Path def overlapping(a, b): if a == b: return True a_path = Path(a) b_path = Path(b) return a_path in b_path.parents or b_path in a_path.parents

September 10, 2018 · datewu

pip包冲突

遇到一个奇怪的问题执行certbot会报错,moudle conflict和 No module,但是yum install certbot的时候没有报错。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 certbot Traceback (most recent call last): File "/bin/certbot", line 7, in <module> from certbot.main import main File "/usr/lib/python2.7/site-packages/certbot/main.py", line 17, in <module> from certbot import account File "/usr/lib/python2.7/site-packages/certbot/account.py", line 17, in <module> from acme import messages File "/usr/lib/python2.7/site-packages/acme/messages.py", line 7, in <module> from acme import challenges File "/usr/lib/python2.7/site-packages/acme/challenges.py", line 11, in <module> import requests File "/usr/lib/python2.7/site-packages/requests/__init__.py", line 58, in <module> from . import utils File "/usr/lib/python2.7/site-packages/requests/utils.py", line 32, in <module> from .exceptions import InvalidURL File "/usr/lib/python2.7/site-packages/requests/exceptions.py", line 10, in <module> from .packages.urllib3.exceptions import HTTPError as BaseHTTPError File "/usr/lib/python2.7/site-packages/requests/packages/__init__.py", line 95, in load_module raise ImportError("No module named '%s'" % (name,)) ImportError: No module named 'requests.packages.urllib3' pip install requests urllib3 pyOpenSSL --force --upgrade certbot An unexpected error occurred: VersionConflict: (setuptools 0.9.8 (/usr/lib/python2.7/site-packages), Requirement.parse('setuptools>=1.0')) pip install --upgrade pip setuptools certbot ls meat 弄了很久决定抛弃yum直接使用 pip安装certbot,安装完成后,发现不再报错: ...

March 30, 2018 · datewu