4.4.3. 将服务 pod 附加到 BGP 的隔离网络
为每个隔离网络创建一个 NetworkAttachmentDefinition (net-attach-def)自定义资源(CR),以将服务 pod 附加到网络。
流程
-
在工作站上创建一个
NetworkAttachmentDefinition(net-attach-def) CR 文件,如openstack-net-attach-def.yaml。 在
NetworkAttachmentDefinitionCR 文件中,为每个隔离网络配置NetworkAttachmentDefinition资源,以将服务部署 pod 附加到网络。以下示例创建一个NetworkAttachmentDefinition资源,它使用带有特定网关配置和其他选项的类型网桥接口:apiVersion: k8s.cni.cncf.io/v1 kind: NetworkAttachmentDefinition metadata: labels: osp/net: internalapi osp/net-attach-def-type: standard name: internalapi namespace: openstack spec: config: | { "cniVersion": "0.3.1", "name": "internalapi", "type": "bridge", "isDefaultGateway": true, "isGateway": true, "forceAddress": false, "ipMasq": true, "hairpinMode": true, "bridge": "internalapi", "ipam": { "type": "whereabouts", "range": "172.17.0.0/24", "range_start": "172.17.0.30", "range_end": "172.17.0.70", "gateway": "172.17.0.1" } }-
metadata.namespace:部署服务的命名空间。 -
"name": 与网络关联的节点接口名称,如nncpCR 中定义的。 -
"ipMasq": 可选字段,当设为true时,启用 IP 伪装。如果网关没有 IP 地址,ipMasq无效。默认值为false。当 data plane 节点没有所需的路由时,或者 data plane 节点在配置自由范围路由(FRR)前没有连接到 control plane 网络时,设置"ipMasq": true。 -
"IPAM":关于 CNI IPAM 插件将 IP 分配给从范围.30 - .70中创建的 pod。 -
"range_start" - "range_end":IP 地址池范围不得与 MetalLBIPAddressPool范围和NetConfig allocationRange重叠。
-
在集群中创建
NetworkAttachmentDefinitionCR:$ oc apply -f openstack-net-attach-def.yaml验证
NetworkAttachmentDefinitionCR 是否已创建:$ oc get net-attach-def -n openstack