kubeovn / kube-ovn

A Bridge between SDN and Cloud Native (Project under CNCF)
https://kubeovn.github.io/docs/stable/en/
Apache License 2.0
1.89k stars 433 forks source link

[BUG] #4159

Open Volcano139 opened 1 month ago

Volcano139 commented 1 month ago

Kube-OVN Version

v1.12.16

Kubernetes Version

1.27.13

Operation-system/Kernel Version

5.10.149-1.el7.x86_64 #1 SMP Tue Oct 18 00:26:23 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

Description

配置ovn-vpc-external-network subnet,VpcNatGateway中指定该subnet,gw启动后存在两个IP,一个subnet IP,一个external subnet IP,一共3个gw,查看subnet列表,external占用了3个IP,可用51个IP,但是subnet yaml中的v4availableIPrange\v4usingIPrange对应不上,图中5个占用应该是还有两个IptablesEIP,但是在IP列表中是看不到的 image image image image

Steps To Reproduce

创建external subnet

---
apiVersion: kubeovn.io/v1
kind: Subnet
metadata:
  name: ovn-vpc-external-network
spec:
  cidrBlock: 192.168.239.0/24
  default: false
  enableLb: true
  excludeIps:
    - 192.168.239.1..192.168.239.200
  gateway: 192.168.239.1
  gatewayNode: ''
  gatewayType: distributed
  natOutgoing: false
  private: false
  protocol: IPv4
  provider: ovn-vpc-external-network.kube-system

创建VpcNatGateway

apiVersion: kubeovn.io/v1
kind: VpcNatGateway
metadata:
  name: gateway-1000
spec:
  affinity: {}
  externalSubnets:
    - ovn-vpc-external-network
  lanIp: 172.0.0.254
  qosPolicy: ''
  selector:
    - 'kube-ovn/gateway: true'
  subnet: subnet-1000
  vpc: vpc-1000

external subnet子网多次改过,不知道是不是这个原因导致的

Current Behavior

可用IP、已使用IP和subnet yaml中的v4availableIPrange、v4usingIPrange计算结果不匹配 kubectl get IP 中没有IptablesEIP的IP

Expected Behavior

可用IP、已使用IP和subnet yaml中的v4availableIPrange、v4usingIPrange计算结果应该相同 kubectl get IP 中是否应该显示IptablesEIP的IP

Volcano139 commented 1 month ago

vpc-gw配置externalSubnets后,gw pod重启,exterlnalSubnets 分配的 IP cr直接update(重新分配IP),ipam没有对之前的IP release,Subnet status中的v4availableIPs、v4usingIPs是通过计算ip、eip...得到的,但是v4availableIPrange、v4usingIPrange是根据ipam计算得到的

bobz965 commented 1 month ago

我再看看 vip 也有这个问题