Before We BeginOpenstack Kuryr 项目旨在 在Kubernetes环境中使能原生的Neutron-based 网络,通过Kuryr-Kubernetes, 用户可以选择在同一个 Kuryr-Kuberneters需配置的组件Kuryr-K8s-Controller(Openstack 控制节点上):监控 Kubernetes API 的来获取 Kubernetes 资源的变化, # Kuryr Daemon# ============## Kuryr can run CNI plugin in daemonized way - i.e. kubelet will run kuryr # (kuryr-controller) and DaemonSet (kuryr-cni) or as systemd services. /kuryr.conf 确认kuryr所使用的subnets 和 network idcat /etc/kuryr/kuryr.conf cat /etc/kuryr/kuryr.conf#截取其中neutron_defaults
◆ Kuryr CNI守护进程:OpenStack是部署在私有云中的容器的首选平台,Queens版本扩展了微服务功能。Kuryr增加了一个CNI守护进程来增加Kubernetes操作的可扩展性。
git.trystack.cn/openstack/zun enable_plugin zun-ui http://git.trystack.cn/openstack/zun-ui enable_plugin kuryr-libnetwork http://git.trystack.cn/openstack/kuryr-libnetwork KURYR_CAPABILITY_SCOPE=local #单节点安装使用local ,多节点要改为global KURYR_ETCD_PORT=2379 Zun 测试 1.
另外Neutron社区也在推动Kuryr这样一个新项目,具体可以参考:https://review.openstack.org/#/c/213490/15/specs/mitaka/kuryr-containers-neutron-integration.rst ,Kuryr背后的理念是能够利用抽象层、Neutron及其插件与服务中的所有工作,为容器应用案例提供一个生产级的网络。 Kuryr本身并不是一个网络解决方案,同时它也没有尝试成为一个网络解决方案。 Kuryr将重点放在了“信使”功能上,以向Docker 传递Neutron网络和服务。 Magnum社区正在和Kuryr社区合作,最终目标是期望Kuryr能成为libnetwork driver的默认选项。 Magnum网络和Kuryr的集成,这主要取决于Kuryr的发展,希望Kuryr能顺利发展,成为Magnum COE默认的libnetwork driver。
其实社区已经实现K8S直接OpenStack Neutron网络集成,即kuryr-kubernetes项目。 不过遗憾的是,目前kuryr还不支持多租户,Kuryr使用Neutron的network以及subnet都是配置写死的,而不是创建port时指定。
ZUN_DBPASS=000000 #Password for Keystore Zun user. exmaple:000000 ZUN_PASS=000000 #Password for Mysql Kuryr user. exmaple:000000 KURYR_DBPASS=000000 #Password for Keystore Kuryr user. exmaple:000000 KURYR_PASS
Zun需要下列的OpenStack的服务来支持: Keystone Neutron Kuryr-libnetwork Zun也可以集成下面的OpenStack的服务(可选): Cinder Heat Glance 请求并确认输入参数 Zun Compute: 启动容器并调度计算资源 Keystone: 认证系统 Neutron: 提供容器网络 Glance: 用于存储docker镜像(另一种选择是使用DockerHub) Kuryr 下面命令就是利用了Neutron和Kuryr来为zun容器提供网络服务的: ? 为了容纳需要保存数据的应用程序,常用的方法是利用外部服务为容器提供持久卷。
ZUN_DBPASS=000000 #Password for Keystore Zun user. exmaple:000000 ZUN_PASS=000000 #Password for Mysql Kuryr user. exmaple:000000 KURYR_DBPASS=000000 #Password for Keystore Kuryr user. exmaple:000000 KURYR_PASS ZUN_DBPASS=000000 #Password for Keystore Zun user. exmaple:000000 ZUN_PASS=000000 #Password for Mysql Kuryr user. exmaple:000000 KURYR_DBPASS=000000 #Password for Keystore Kuryr user. exmaple:000000 KURYR_PASS
关于容器网络支持的neutron项目叫做kuryr,kuryr是courier的捷克语,主要是利用Neutron的网络技术和生态来服务于容器环境。 Kuryr本身不会成为一个解决方案,它只是一个桥梁,目的是“deliver”Neutron到容器环境下。
于是,Kuryr项目应运而生,旨在将现有Neutron的network driver衔接到容器网络中。 这要求Kuryr作为remote driver,于是Neutron和Neutron driver对于libnetwork就是完全透明的了。 ? 改network driver自然是不好的,于是Kuryr就得负责起处理这个历史遗留问题的任务了。 ? 第三个问题可就是学问了。 类似的问题可能都在潜伏着,如果Kuryr要走上生产环境,可就需要Gal Sagie多动脑筋了。 虽然Kuryr是OpenStack中比较新的项目,但目前Kuryr进展的还不错,对libnetwork和k8S的集成都有demo出来了。
Keystone、Neutron和Kuryr-libnetwork是运行Zun的必要服务。它们为Zun提供身份验证、网络、Neutron和docker网络之间的连接。 Zun需要下列的OpenStack的服务来支持: Keystone Neutron Kuryr-libnetwork Zun也可以集成下面的OpenStack的服务(可选): Cinder Heat Glance 请求并确认输入参数 Zun Compute: 启动容器并调度计算资源 Keystone: 认证系统 Neutron: 提供容器网络 Glance: 用于存储docker镜像(另一种选择是使用DockerHub) Kuryr 下面命令就是利用了Neutron和Kuryr来为zun容器提供网络服务的: $ openstack appcontainer run --net network=net1 \ --net network
在Ocata版本中,涉及到容器的项目——例如kolla和Kuryr——是发展最快的领域。Kuryr是本地容器网络技术和中子之间的桥梁。 Kuryr在那里扮演着重要的角色,我认为我们将会看到Kuryr所能做的更多复杂的事情。
1.2 CNM模型 CNM模型是由Docker公司提出的容器网络模型,现在已经被Cisco Contiv、Kuryr、Open Virtual Networking(OVN)、Project Calico 同时,Weave、Project Calico、Kuryr和Plumgrid等项目也为CNM提供了网络插件的具体实现。
这些项目中对网络方面的更新最为显著,包括明星项目Magnum,在原有基础上对Kubernetes、Mesos和Docker Swarm提供了支持;网络编排项目Astara;容器网络项目Kuryr;计费项目
挡在门外,不过Docker技术的盛行,Kvm和Docker又面临着新的战斗,并且Nova Docker、Heat Docker、Magnum技术让OpenStack和Docker更好结合进行试验,最新的Kuryr
如果是OpenStack、k8s融合场景下,考虑到 ipvlan稳定内核推荐版本是>=4.2,可以再实现一种cni,把虚拟机的网卡映射给pod; 使用Kuryr-kubernetes k8s node
kube-rbac-proxy", "4.4.5-kube-state-metrics", "4.4.5-kube-storage-version-migrator", "4.4.5-kuryr-cni ", "4.4.5-kuryr-controller", "4.4.5-libvirt-machine-controllers", "4.4.5-local-storage-static-provisioner
ZUN_DBPASS=000000 #Password for Keystore Zun user. exmaple:000000 ZUN_PASS=000000 #Password for Mysql Kuryr user. exmaple:000000 KURYR_DBPASS=000000 #Password for Keystore Kuryr user. exmaple:000000 KURYR_PASS
我们将支持多种不同的部署模式,并将其与Kuryr项目进行充分的整合。 总结 正如大家所看到的那样,Dragonflow项目既遇到了许多挑战,同时也迎来了许多激动人心的时刻。
Kuryr(OpenStack与容器网络间的桥梁):已添加对Ipv6的支持。 Nova(计算服务):已支持Nova单元间的冷迁移及调整服务器分区大小。