团队和仓库标签

https://governance.openstack.org/badges/kuryr.svg

kuryr

Kuryr mascot

OpenStack Neutron 的 Docker

Kuryr 是一个 Docker 网络插件,使用 Neutron 为 Docker 容器提供网络服务。它提供常见 Neutron 插件的容器化镜像。

特性

  • 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