五、kuryr-kubernetes 连接OpenStack和K8S
5.1 Kuryr-kubernetes 简介
# 是 OpenStack Neutron 的子项目
将OpenStack Neutron 的网络能力提供给K8S
Kuryr-kubenetes 自身没有网络能力,只是将有网络能力的OpenStack Neutron 与需要网络能力的K8S连接起来:
5.2 OpenStack Neutron 简介
5.2.1 Neutron 架构
Neutron Server : 接收REST API, 并将API 存储在DB中,同时通过MQ将API 数据发送给后端Agent
Neutron DB: 存储Neutron 自身的数据,类似K8S的 etcd, 存储自身的数据,包括网络数据,还有一些配置数据。
Message Queue : 消息队列,用来在Neutron将各个组件之间同步数据,通过MQ来连接各个组件。
Agent : 每一种Agent都实现了一种网络功能
5.2.2 Neutron 数据模型
Neutron 为虚拟机提供网络解决方案
Port: 对应于一个虚拟网卡
Subnet: 对应于一个网段(CIDR)
Network: 对应于交换机,在Neutron中Network被实现成分布式虚拟交换机
Router: 对应于路由器,在Neutron中Router被实现成软件的集中式的或者分布式的虚拟路由器
LoadBalancer: 负载均衡器,在Neutron中,通过软件实现LoadBalancer;而在Kubenetes中Service就是LoadBalancer
SecurityGroup: 基于虚拟网卡的安全策略,类似传统网络的ACL(Access control list),类似K8S-NetworkPolicy;是一个基于虚拟网卡的安全策略,是配置在网卡上的。