Romana

Romana是Panic Networks在2016年提出的开源项目,旨在解决Overlay方案给网络带来的开销。

Kubernetes部署

对使用kubeadm部署的Kubernetes集群:

  1. kubectl apply -f https://raw.githubusercontent.com/romana/romana/romana-2.0/docs/kubernetes/romana-kubeadm.yml

对使用kops部署的Kubernetes集群:

  1. # Connect to the master node
  2. ssh admin@master-ip
  3. # Check that Kubernetes is running and that the master is in NotReady state
  4. kubectl get nodes
  5. kubectl apply -f https://raw.githubusercontent.com/romana/romana/romana-2.0/docs/kubernetes/romana-kops.yml

使用kops时要注意

  • 设置网络插件使用CNI --networking cni
  • 对于aws还提供romana-awsromana-vpcrouter自动配置Node和Zone之间的路由

工作原理

Romana - 图1

Romana - 图2

  • layer 3 networking,消除overlay带来的开销
  • 基于iptables ACL的网络隔离
  • 基于hierarchy CIDR管理Host/Tenant/Segment ID

Romana - 图3

优点

  • 纯三层网络,性能好

缺点

  • 基于IP管理租户,有规模上的限制
  • 物理设备变更或地址规划变更麻烦

参考文档