Kuryr - Mitaka 里程碑¶
Kuryr 角色与职责 - Mitaka 版本第一个里程碑¶
本章包括 Kuryr 旨在解决的各种用例,其中一些在介绍章节中已简要描述。需要对这些项目进行优先级排序。
将 Kuryr 作为 libnetwork 远程驱动程序部署(在 libnetwork API 和 Neutron API 之间映射)
配置 https://etherpad.openstack.org/p/kuryr-configuration
包括对 Neutron 和 Docker 的身份验证(Keystone 集成)
VIF 绑定 https://etherpad.openstack.org/p/Kuryr_vif_binding_unbinding https://blueprints.launchpad.net/kuryr/+spec/vif-binding-and-unbinding-mechanism
容器化的 neutron 插件 + Kuryr 通用层 (Kolla)
嵌套 VM - 无代理模式(或使用 Kuryr shim 层)
Magnum Kuryr 集成 https://blueprints.launchpad.net/kuryr/+spec/containers-in-instances
为 Magnum 使用创建 Kuryr heat 资源
Neutron 中缺少支持 docker 网络模型的 API
端口映射:Docker 端口映射将在服务中实现,而不是网络中(libnetwork)。两者之间存在关联。以下是一些详细信息: https://github.com/docker/docker/blob/2025.2/experimental/networking.md https://github.com/docker/docker/blob/2025.2/api/server/server_experimental_unix.go#L13-L16
这是一个在特定网络上发布服务并将容器附加到服务的示例:docker service publish db1.prod cid=$(docker run -itd -p 8000:8000 ubuntu) docker service attach $cid db1.prod
Kuryr 需要与 docker api 的服务对象交互以支持端口映射。我们计划在 Mitaka 中提出一个端口转发规范,该规范引入了 Neutron 中端口转发的 API 和参考实现,以启用此功能。
Neutron 相关规范:VLAN 中继端口( https://blueprints.launchpad.net/neutron/+spec/vlan-aware-vms)(用于嵌套 VM 定义中继端口和子端口)
根据端口名称进行 DNS 解析(https://review.opendev.org/#/c/90150/)(需要与 Docker 服务发布功能兼容)
Neutron 标识符和 Docker 标识符之间的映射
正在 Neutron 中提出一个新的规范,我们可以利用它来解决此用例: 为资源添加标签。标签在概念上类似于 Docker 标签。
测试 (CI)
应该有一个测试基础设施,运行单元测试和功能测试,并完全设置 docker + kuryr + neutron。
Kuryr 的打包和 devstack 插件
Kuryr 未来范围¶
计划使 Kuryr 支持 Kubernetes 定义的其他网络后端模型(而不仅仅是 libnetwork)。
除了 Docker 之外,服务也是 Kubernetes 的关键组件。在 Kubernetes 中,我创建一个 pod 并选择性地创建/将服务附加到 pod: https://github.com/kubernetes/kubernetes/blob/2025.2/docs/user-guide/services.md
可以使用 LBaaS API 实现服务
一个为 Kubernetes 和 Neutron LBaaS 执行此操作的示例项目: https://github.com/kubernetes/kubernetes/blob/release-1.0/pkg/cloudprovider/openstack/openstack.go