Calico+华为三层交换机让Kubernetes网络与物理网络通讯

此架构的目的是,让Kubernetes中Docker与物理网络,如虚拟机、物理机,混合云等通讯(使用BGP反射器)

SpringCloud 注册到Eureka注册中心,会获取使用容器的IP注册上去。如果有一部分应用不跑在容器里面,而跑在虚拟机或者物理机上面同时注册上去,由于容器内部overlay与虚拟机网络只能单向通讯(overlay通过NAT), 当需要通过微服务Fegin客户端@调用的时候不能通讯,所以直接让容器与虚拟机和物理机能互相ping通就很有必要

10.42.1.11 Calico Node AS 64512
10.42.1.12 Calico Node AS 64512
10.42.1.15 Calico Node AS 64512
10.42.2.11    华为Cloud Engine交换机 AS 64512

Calico使用BGP协议作为通讯,默认采用node-to-node mash模式,即互相组播学习,两两配对只能适应小规模场景

下载Calico

curl https://docs.projectcalico.org/v3.8/manifests/calico.yaml -O

使用sed工具更改你所想要的网段

POD_CIDR="" \
sed -i -e "s?192.168.0.0/16?$POD_CIDR?g" calico.yaml

kubectl apply -f calico.yaml 应用一下就安装完毕了

 calicoctl get bgpconfig default

创建完毕后查看一下BGP情况用官方脚本创建默认应该是没有配置的,关闭node-to-node mash,AS自制号使用64512

 cat << EOF | calicoctl create -f -
 apiVersion: projectcalico.org/v3
 kind: BGPConfiguration
 metadata:
   name: default
 spec:
   logSeverityScreen: Info
   nodeToNodeMeshEnabled: false
   asNumber: 64512

配置完毕后配置BGP Peer指向华为交换机10.42.2.11,该交换机作为一个BGP反射器

cat << EOF | calicoctl create -f -
apiVersion: projectcalico.org/v3
kind: BGPPeer
metadata:
  name: bgppeer-global-211
spec:
  peerIP: 10.42.2.11
  asNumber: 64512
EOF

华为交换机作为BGP反射器配置如下

Calico+华为三层交换机让Kubernetes网络与物理网络通讯_第1张图片

至此配置完毕,我们到某个节点,可以看到路由已经都学习到了。

calico的路由都指向了tunl0虚拟网卡走calico隧道;到物理网络走eth0到华为三层交换机 ;calidexxxxxx开头的为 calico自己给容器添加的网卡,通讯完全没问题

Calico+华为三层交换机让Kubernetes网络与物理网络通讯_第2张图片

 

 

转载于:https://my.oschina.net/gibsonxue/blog/3084855

你可能感兴趣的:(Calico+华为三层交换机让Kubernetes网络与物理网络通讯)