一、创建子网
通过yaml文件
二、创建namespace
kubectl create ns ls1
三、创建pod使用该namespace
kubectl run nginx --image=nginx:alpine -n ls1
四、查看该namesapce下的pod
kubectl get pod -n ls1 -o wide
五、子网访问控制
子网默认是互通的,如需对子网间的访问进行控制,可以在子网 CRD 中将 private 设置为 true,如需开白名单,可以通过 allowSubnets 进行设置。
六、出网网关设置
(1)分布式网关(子网默认类型网关,node作为其上pod访问外部网络的网关)
gatewayType 字段为 distributed
(2)集中式网关(可以指定子网出网网关)
gatewayType 字段为 centralized
静态和动态路由
静态路由:由网络管理员在路由器上手工输入路由信息以实现路由的目的
动态路由:根据网络拓扑结构或流量的变化,路由协议会自动调整路由信息以实现路由
七、Pod 固定 IP 和 Mac
通过pod的yaml文件中的annotations项声明指定
kind: Subnet Vpc
八、Kube-OVN 主要具备五大主要功能:
1.Namespace 和子网的绑定,以及子网间访问控制;
2.静态 IP 分配;
3.动态 QoS;
4.分布式和集中式网关;
5.内嵌 LoadBalancer。
Kube-OVN 选择使用最基础的 annotation ,而不是 CRD、API Aggregation 或者 Operator,也是出于降低复杂度的考虑,使用户和开发者都能够快速上手。
查看子网
kubectl get subnet
查看ip使用情况
kubectl get ip
查看北向数据库
kubectl ko nbctl show
查看路由规则
kubectl ko nbctl lr-route-list ovn-cluste
查看acl规则(和子网private和allowSubnets有关)
kubectl ko nbctl acl-list ovn-default
参考:
https://github.com/kubeovn/kube-ovn/wiki/
Kube-OVN:基于OVN的开源Kubernetes网络实践-InfoQ
进入ovn-central 输入ovn-nbctl show查看主数据库