架构分析
kuryr-k8s主要目的是统一vm和容器的网络,借助neutron来管理容器的网络。两种部署,一种是将kuryr服务和k8s集群部署在租户的虚机内,借助虚机网络间接给pod和service提供网络,需要开启trunk特性,同时l2agent也要支持trunk,使虚机port支持多vlan;另一种,在独立的虚机或者裸金属上部署kuryr和k8s集群,k8s集群和openstack节点间二层互通。
最近在忙的一件事情,就是openstack对接思科的apic控制器。踩了些坑,但还好都解决了。目前apic的neutron插件已经从networking-cisco移除,思科官方提供的安装办法是neutron-install。大致总结了一下安装的步骤。
首先是安装lbv2的流程,如果是p之后的版本lbaas应该是默认v2的:
1.控制节点:yum install -y openstack-neutron-lbaas
2.修改配置文件(采用octavia参考config-lbaas):
每个 L3 Agent 运行在一个 network namespace 中,以 qrouter-命名。网络节点如果不支持 Linux namespace 的,只能运行一个 Virtual Router。通过配置项use_namespaces = True开启namespace。本文只做单纯的分析代码,研究了neutron的l3-agent代码(m版本),代码路径为/neutron/agent/l3/agent.py。主要的类是: