摘要:# ovn-central # 查看北向db raft集群状态 ovs-appctl -t /run/ovn/ovnnb_db.ctl cluster/status OVN_Northbound # 优雅删除北向raft node id ovs-appctl -v -t /run/ovn/ovnnb
阅读全文
摘要:kube-ovn v1.10.10 存活pod判断条件 pkg/controller/pod.goisPodAlive函数判断pod是否存活,pod从存活变成死亡后,该ip会分给其他pod。 3种ip分配方式 场景1:正常分配 pkg/ipam/subnet.gogetV4RandomAddress
阅读全文
摘要:ovs端口模式 tag对应vlan id,取值范围是0-4095。 # 设置端口vlan模式(默认是access,还有trunk等) ovs-vsctl set port tap0 vlan_mode=access # 设置端口tag ovs-vsctl set port tap0 tag=101
阅读全文
摘要:问题现象 业务报错net/http: TLS handshake timeout。容器IP跨节点访问kube-apiserver service clusterIP不通。 问题分析 k ko trace [ns]/[pod] [ip] tcp 443 | grep 对端主机ip kube-ovn在b
阅读全文
摘要:kube-ovn v1.10.10 在subnet发生变化时,例如删除pod,ovn-cni更新主机路由,保证节点上只有目的网段ovn-default和join,指向ovn0。 pkg/daemon/controller.go runSubnetWorker ->1 从队列中获取变化的subnet
阅读全文
摘要:kube-ovn v1.12.22 在kube-ovn中,ls是subnet,lr是vpc,ovn0是ovn-default才有的容器网关,即自定义vpc没有ovn0,自定义vpc不支持和k8s节点主机网络互通。 步骤中参数值只是类比,不和截图完全相同。 步骤1:veth和ovn0作为ovs por
阅读全文
摘要:安装kube-ovn 1.12 docker pull kubeovn/kube-ovn:v1.12.2 git clone https://github.com/kubeovn/kube-ovn.git cd kube-ovn git checkout release-1.12 make kind
阅读全文
摘要:ovn南向db leader中支持出方向和入方向trace。 # 查看南向逻辑流表 ovn-sbctl lflow-list # 查看port ovn-nbctl show # 追踪包 ovn-trace --detailed ovn-default 'inport == "coredns-5d78
阅读全文
摘要:ovs-ovn pod把ovs的db.sock暴露在宿主机上。 ovn-cni pod挂载该目录到容器中。 ovs db socket默认路径就在/run/openvswitch/db.sock。 # 拷贝ovn-cni pod中ovs-vsctl到pod所在宿主机上 kubectl cp -n k
阅读全文
摘要:kubelet调用二进制文件/opt/cni/bin/kube-ovn。 cmd/cni/cni.go创建和删除分别对应cmdAdd和cmdDel函数。pkg/request/cniserver.go二进制文件/opt/cni/bin/kube-ovn调用本地unix socket,把cni请求转发
阅读全文
摘要:dist/images/start-ovs.shovn-controller启动时,执行start-ovs.sh,会向南向db上报随机生成的system-id。 system-id保存到了容器本地db中。 cat /etc/openvswitch/conf.db | grep "bb65f74d-9
阅读全文
摘要:默认vpc是ovn-cluster,默认subnet是ovn-default。ovn0是默认容器网关,ip是100.64.0.0/16网段。 为了打通主机和容器,kube-ovn-controller会通过建立peer端口把100.64.0.0/16网段即ls与ovn-cluster即lr关联在一起
阅读全文
摘要:kube-ovn v1.10.10 pkg\daemon\controller.goovn-cni每小时通过logrotate命令来转储kube-ovn所有相关日志。 pkg\daemon\controller_linux.go logrotate配置在构建容器镜像时拷贝进去。
阅读全文
摘要:ovs流表分模糊流表(慢路径)和精确流表(快路径),精确流表数量远少于模糊流表。模糊流表在ovs网桥上,精确流表在ovs datapath上,精确流表由模糊流表自动生成和老化。其中,ovs datapath代码在内核中,ovs_vport_receive函数用于接收报文并处理,ovs_vport_s
阅读全文
摘要:ovn-org/ovn branch-23.06 kube-ovn里面ovn-central的ovn-northd会给logical switch和logical router分配vni,集群内全局唯一,即每个lr和ls都有自己的vni。 northd/northd.covn_datapath_al
阅读全文
摘要:相同点 vxlan和geneve都走udp。报文头vni都占用24位。 不同点 vxlan头固定长度8个字节。 geneve头由固定长度8个字节和Variable Length Options可变长的0-252个字节组成。相比于vxlan,有了可变长字节之后,geneve可扩展性更强。 kube-o
阅读全文
摘要:kube-ovn中vpc没有cidr,不像传统vpc那样有大网段,关联的subnet cidr可以任意。 kind: Vpc apiVersion: kubeovn.io/v1 metadata: name: vpc0 kind: Subnet apiVersion: kubeovn.io/v1 m
阅读全文
摘要:ovs打开debug .ci/linux-build.sh中-O2改成-O0 编译安装ovs git clone https://github.com/openvswitch/ovs.git ./boot.sh ./configure --prefix=/usr --localstatedir=/v
阅读全文
摘要:ovs缺陷 1. ovs只能做二层转发,没有三层能力2. ovs没有高可用配置3. ovs配置无法随着虚机迁移和容器迁移而自动迁移 安装ovs和ovn ovn-northd通过unix socket连上北向数据库和南向数据库,3者在同一台机器上。ovn-controler启动后自动创建br-int网
阅读全文
摘要:tcptcp->ip头->以太网头->geneve头->udp头->ip头->以太网头udpudp->ip头->以太网头->geneve头->udp头->ip头->以太网头 以太网头 以太网头占14个字节。 字段 长度(bit) 含义 Dst 48 目的mac地址 Src 48 源mac地址 Typ
阅读全文