diff --git a/v1.14.x/advance/ovn-eip-fip-snat/index.html b/v1.14.x/advance/ovn-eip-fip-snat/index.html index ad302c827..2a8048e2d 100644 --- a/v1.14.x/advance/ovn-eip-fip-snat/index.html +++ b/v1.14.x/advance/ovn-eip-fip-snat/index.html @@ -575,7 +575,7 @@ # kubectl get odnat eip-dnat NAME EIP PROTOCOL V4EIP V4IP INTERNALPORT EXTERNALPORT IPNAME READY eip-dnat eip-dnat tcp 10.5.49.4 192.168.0.4 22 22 test-dnat-vip true -

微信群 Slack Twitter Support

评论

BGP 支持

Kube-OVN 支持将 Pods、Subnets、Services 和 EIPs 的 IP 地址通过 BGP 协议向外部进行路由广播,从而使得外部可以直接访问到集群内的 IP 地址。 如果需要使用该功能,需要在特定节点安装 kube-ovn-speaker 并对需要对外暴露的 Pod 或 Subnet 增加对应的 annotation。

如果要在 EIP 上使用 BGP,需要使用特殊参数创建 VPC NAT Gateway,有关更多信息,请参阅发布 EIPs

安装 kube-ovn-speaker

kube-ovn-speaker 内使用 GoBGP 对外发布路由信息,并将访问暴露地址的下一跳路由指向自身。

由于部署 kube-ovn-speaker 的节点需要承担回程流量,因此需要选择特定节点进行部署:

kubectl label nodes speaker-node-1 ovn.kubernetes.io/bgp=true
+       

BGP 支持

Kube-OVN 支持将 Pods、Subnets、Services 和 EIPs 的 IP 地址通过 BGP 协议向外部进行路由广播,从而使得外部可以直接访问到集群内的 IP 地址。 如果需要使用该功能,需要在特定节点安装 kube-ovn-speaker 并对需要对外暴露的 Pod 或 Subnet 增加对应的 annotation。

如果要在 EIP 上使用 BGP,需要使用特殊参数创建 VPC NAT Gateway,有关更多信息,请参阅发布 EIPs

安装 kube-ovn-speaker

kube-ovn-speaker 内使用 GoBGP 对外发布路由信息,并将访问暴露地址的下一跳路由指向自身。

由于部署 kube-ovn-speaker 的节点需要承担回程流量,因此需要选择特定节点进行部署:

kubectl label nodes speaker-node-1 ovn.kubernetes.io/bgp=true
 kubectl label nodes speaker-node-2 ovn.kubernetes.io/bgp=true
 

当存在多个 kube-ovn-speaker 实例时,每个实例都会对外发布路由,上游路由器需要支持多路径 ECMP。

下载对应 yaml:

wget https://raw.githubusercontent.com/kubeovn/kube-ovn/release-1.13/yamls/speaker.yaml
 

修改 yaml 内相应配置:

如果你只有一个交换机:

- --neighbor-address=10.32.32.254
@@ -22,7 +22,7 @@
 kubectl annotate subnet ovn-default ovn.kubernetes.io/bgp=true
 

删除 annotation 取消发布:

kubectl annotate pod sample ovn.kubernetes.io/bgp-
 kubectl annotate subnet ovn-default ovn.kubernetes.io/bgp-
-

查看发布策略以了解如何通过设置注解来控制 BGP 对外发布策略。

发布 ClusterIP 类型 Service 路由

要将 Service 的 ClusterIP 公布给外部,需要将 kube-ovn-speaker 选项 --announce-cluster-ip 设置为 true。 有关更多详细信息,请参阅 BGP 高级选项。

增加 annotation 对外发布:

kubectl annotate service sample ovn.kubernetes.io/bgp=true
+

查看发布策略以了解如何通过设置注解来控制 BGP 对外发布策略。

发布 ClusterIP 类型 Service 路由

要将 Service 的 ClusterIP 公布给外部,需要将 kube-ovn-speaker 选项 --announce-cluster-ip 设置为 true。 有关更多详细信息,请参阅 BGP 高级选项。

增加 annotation 对外发布:

kubectl annotate service sample ovn.kubernetes.io/bgp=true
 

删除 annotation 取消发布:

kubectl annotate service sample ovn.kubernetes.io/bgp-
 

发布 EIPs

EIPs 可以由它们所在的 VPC NAT Gateway 对外发布。当在 VpcNatGateway 上启用 BGP 时,会向其注入一个新的 BGP Sidecar。

为了启用 VPC NAT Gateway 的 BGP 功能,搜选需要创建一个 BGP Speaker Sidecar 所使用的 NetworkAttachmentDefinition。这个 NAD 将会和一个在默认 VPC 下的 Subnet 关联。这样 Sidecar 内的控制器可以和 Kubernetes API 通信并自动同步 EIPs 信息。 如果你使用了用户自定义 VPC 下 CoreDNS 的功能则可以复用同一个 NAD。

创建 NetworkAttachmentDefinitionSubnet 并将 provider 设置为 {nadName}.{nadNamespace}.ovn

apiVersion: "k8s.cni.cncf.io/v1"
 kind: NetworkAttachmentDefinition
@@ -88,7 +88,7 @@
 
 # show announced routes to one peer
 gobgp neighbor 10.32.32.254 adj-out
-

微信群 Slack Twitter Support

评论