kuryr¶
OpenStack Neutron 的 Docker
Kuryr 是一个 Docker 网络插件,使用 Neutron 为 Docker 容器提供网络服务。它提供常见 Neutron 插件的容器化镜像。
自由软件:Apache 许可证
特性¶
TODO
获取代码¶
$ git clone https://opendev.org/openstack/kuryr.git
$ cd kuryr
先决条件¶
$ sudo pip install -r requirements.txt
安装 Kuryr 的 libnetwork 驱动¶
有关 kuryr-libnetwork 驱动的安装,请参考
https://docs.openstack.org/kuryr-libnetwork/2025.2/readme.html
配置 Kuryr¶
生成示例配置文件,etc/kuryr.conf.sample,运行以下命令
$ tox -e genconfig
重命名并复制配置文件到所需路径
$ cp etc/kuryr.conf.sample /etc/kuryr/kuryr.conf
编辑 /etc/kuryr/kuryr.conf 中的 keystone 部分,替换 ADMIN_PASSWORD
auth_type = v3password
auth_url = http://127.0.0.1:5000
region_name = regionOne
user_doamin_name = Default
username = admin
project_domain_name = Default
project_name = service
password = ADMIN_PASSWORD
在同一个文件中,取消注释 bindir 参数,并指定 Kuryr vif 绑定可执行文件的路径
bindir = /usr/local/libexec/kuryr
默认情况下,Kuryr 将使用 veth 对进行绑定。但是,Kuryr 库附带另外两个驱动程序,您可以在 binding 部分进行配置
[binding]
#driver = kuryr.lib.binding.drivers.ipvlan
#driver = kuryr.lib.binding.drivers.macvlan
驱动程序可以使用其他 binding 选项。之前片段中的两个 Kuryr 库驱动程序可以通过设置将作为虚拟设备链路接口的接口来进一步配置
link_iface = enp4s0
运行 Kuryr¶
目前,Kuryr 使用 bash 脚本启动服务。请确保在执行以下命令之前已安装 tox。
$ sudo ./scripts/run_kuryr.sh
启动后,请重启您的 Docker 服务,例如:
$ sudo service docker restart
bash 脚本会在缺失的情况下创建以下文件:
/usr/lib/docker/plugins/kuryr/kuryr.json:libnetwork 的 Json 规范文件。
请注意,使用 pyroute2 创建和删除 veth 对需要 root 权限才能运行。
测试 Kuryr¶
为了快速检查 Kuryr 是否正常工作,创建一个网络
$ docker network create --driver kuryr test_net
785f8c1b5ae480c4ebcb54c1c48ab875754e4680d915b270279e4f6a1aa52283
$ docker network ls
NETWORK ID NAME DRIVER
785f8c1b5ae4 test_net kuryr
使用 tox 进行测试
$ tox
您还可以使用 -e 标志运行特定的测试用例,例如,仅运行 fullstack 测试用例。
$ tox -e fullstack
生成文档¶
我们使用 Sphinx 来维护文档。您可以使用 pip 安装 Sphinx。
$ pip install -U Sphinx
除了 Sphinx,您还需要以下要求(未包含在 requirements.txt 中)
$ pip install openstackdocstheme reno 'reno[sphinx]'
文档的源代码位于 doc 下,您可以使用以下命令生成 html 文件。如果生成成功,将在 doc 下创建一个 build/html 目录。
$ cd doc
$ make html
现在您可以将文档作为简单的网站提供在 https://:8080 上。
$ cd build/html
$ python -m SimpleHTTPServer 8080