CRD EgressClusterInfo
EgressClusterInfo CRD 为了简化 Egress 策略的配置,引入 Egress Ignore CIDR 功能,允许自动获取集群的 CIDR。当 EgressGatewayPolicy 的 destSubnet
字段为空时,数据面将会自动匹配 EgressClusterStatus CR 中的 CIDR 之外的流量,并将其转发到 Egress 网关。
apiVersion: egressgateway.spidernet.io/v1beta1
kind: EgressClusterInfo
metadata:
name: default # (1)
spec:
autoDetect:
clusterIP: true # (2)
nodeIP: true # (3)
podCidrMode: auto # (4)
extraCidr: # (5)
- 10.10.10.1
status:
clusterIP: # (6)
ipv4:
- 172.41.0.0/16
ipv6:
- fd41::/108
extraCidr: # (7)
- 10.10.10.1
nodeIP: # (8)
egressgateway-control-plane:
ipv4:
- 172.18.0.3
ipv6:
- fc00:f853:ccd:e793::3
egressgateway-worker:
ipv4:
- 172.18.0.2
ipv6:
- fc00:f853:ccd:e793::2
egressgateway-worker2:
ipv4:
- 172.18.0.4
ipv6:
- fc00:f853:ccd:e793::4
podCIDR: # (9)
default-ipv4-ippool:
ipv4:
- 172.40.0.0/16
default-ipv6-ippool:
ipv6:
- fd40::/48
test-ippool:
ipv4:
- 177.70.0.0/16
podCidrMode: calico # (10)
- 名称为
default
,由系统维护只能创建一个; clusterIP
,如果设置为true
,Service CIDR
会自动检测nodeIP
,如果设置为true
,会自动检测nodeIP
相关变化,并动态更新到EgressClusterInfo
的status.nodeIP
中podCidrMode
,目前支持k8s
、calico
、auto
、""
,表示要自动检测对应的 podCidr,默认为auto
,如果为auto
表示自动检测集群使用的 cni, 如果检测不到,则使用 集群的 podCidr。如果为""
表示不检测extraCidr
,可手动填写要忽略掉的IP
集合status.clusterIP
,如果spec.autoDetect.clusterIP
为true
,则自动检测集群Service CIDR
,并更新到此处status.extraCidr
,对应spec.extraCidr
status.nodeIP
,如果spec.autoDetect.nodeIP
为true
,则自动检测集群nodeIP
,并更新到此处status.podCIDR
,对应spec.autoDetect.podCidrMode
,进行相关podCidr
的更新status.podCidrMode
,对应spec.autoDetect.podCidrMode
为auto
的场景