Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Tungsten Fabric入门宝典丨关于多集群和多数据中心

Tungsten Fabric入门宝典丨关于多集群和多数据中心

作者头像
Tungsten Fabric
修改于 2020-06-05 06:43:13
修改于 2020-06-05 06:43:13
92000
代码可运行
举报
运行总次数:0
代码可运行

多集群

由于在内部使用MPLS-VPN,因此Tungsten Fabric中的virtual-network可以扩展到其它Tungsten Fabric集群。

·这可能令人有点惊讶,但据我所知,Neutron ML2插件或其它某些CNI不支持此设置

也就是说,由于它们具有不同的数据库,因此需要在它们之间标记共享资源。

为此,我将描述几个bgp参数的用法。

路由(Routing)

由于Tungsten Fabric使用L3VPN进行VRF间的路由,因此,如果在VRF之间正确设置了route-target,则它可以对报文进行路由。

·由于不能在多个集群之间使用network-policy / logical-router,因此需要在每个virtual-network上直接配置route-target。

注意:如果指定了仅做l3转发,即使在内部VRF的转发中,也会使用L3VPN,因此在该设置中将不使用桥接(bridging)。

安全组(security-group)

Tungsten Fabric还具有一些扩展的属性来传达安全组ID的内容。

·https://github.com/Juniper/contrail-controller/wiki/BGP-Extended-Communities

由于此ID也可以手动配置,因此你可以为每个集群的安全组设置相同的ID,从而允许来自该前缀的流量。

注意:据我所知,无法从R5.1分支中的Tungsten Fabric Webui手动配置标签的ID,因此无法在集群之间使用fw-policy。此行为将来可能会更改。

DNS

在处理多个集群时,DNS是一个很重要的主题。

由于Tungsten Fabric具有类似于OpenStack的默认设置的vDNS实现,因此你可以解析集群中的vmname,并使这些名称可以在外部可用。

·https://github.com/Juniper/contrail-controller/wiki/DNS-and-IPAM

·Controller节点有一个contrail-named进程,用于响应外部DNS查询

·要启用此功能,需要从Tungsten Fabric Webui中选择Configure > DNS > DNS Server > (create) > External Access

因此,至少当使用OpenStack(或vCenter)作为编排器,并且不同的集群具有不同的域名时,它可以直接解析其它集群的名称。

·上游DNS转发器需要能够解析所有名称

在使用Kubernetes时,Tungsten Fabric将coredns用作名称解析的来源,而不是在其自己的vDNS。这些IP和域名可以在kubeadm设置中修改。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cluster0:
kubeadm init --pod-network-cidr=10.32.0.0/24 --service-cidr=10.96.0.0/24
cluster1:
kubeadm init --pod-network-cidr=10.32.1.0/24 --service-cidr=10.96.1.0/24 --service-dns-domain=cluster1.local
cluster1:
# cat /etc/sysconfig/kubelet 
-KUBELET_EXTRA_ARGS=
+KUBELET_EXTRA_ARGS="--cluster-dns=10.96.1.10"
# systemctl restart kubelet

注意:在配置完成后,Tungsten Fabric设置也需要更改(在configmap env中进行设置)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cluster0:
 KUBERNETES_POD_SUBNETS: 10.32.0.0/24
 KUBERNETES_IP_FABRIC_SUBNETS: 10.64.0.0/24
 KUBERNETES_SERVICE_SUBNETS: 10.96.0.0/24
cluster1:
 KUBERNETES_POD_SUBNETS: 10.32.1.0/24
 KUBERNETES_IP_FABRIC_SUBNETS: 10.64.1.0/24
 KUBERNETES_SERVICE_SUBNETS: 10.96.1.0/24

设置好coredns后,它就可以解析其它集群的名称了(coredns IP需要泄漏到各自的VRF,因为这些IP必须是可访问的)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kubectl edit -n kube-system configmap coredns
cluster0:
### add these lines to resolve cluster1 names
 cluster1.local:53 {
 errors
 cache 30
 forward . 10.96.1.10
 }
cluster1:
### add these lines to resolve cluster0 names
 cluster.local:53 {
 errors
 cache 30
 forward . 10.96.0.10
 }

因此,即使你有几个单独的Tungsten Fabric集群,在它们之间缝合virtual-network也不太困难。

这样做的原因之一,是要节点数量超过了编排器当前支持的数量,但即使像Kubernetes、OpenStack、vCenter这样的编排器已经能支持大量的虚拟机管理程序。

数据中心(Multi-DC)

如果流量是跨多个数据中心的,则需要在计划Tungsten Fabric安装时保持格外小心。

有两个选项:1.单集群;2.多集群。

单集群选项更简单而且容易管理——即便数据中心之间的RTT可能是一个问题,这是因为XMPP、RabbitMQ、Cassandra等多种流量都将通过controller(当前并不支持多数据中心的本地支持)

多集群方法将给操作带来更多的复杂性,因为集群都有各自不同的数据库,因此你需要手动设置一些参数,例如route-target或security-group id。

此外,在它们之间实现vMotion也将更加困难。

·即便使用跨vCenter vMotion功能,由于新的vCenter和新的Tungsten Fabric集群将创建一个新的端口,因此它也将使用不同于原始端口的固定IP。

·Nova目前不支持跨OpenStack实时迁移,因此如果使用OpenStack,则无法在它们之间进行实时迁移

由于在数据中心之间vCenter需要150ms的RTT(我找不到KVM的相似值),因此尽管必须针对每种特定情况进行仔细规划,仍然有一个经验法则:单集群 < 150 msec RTT < 多集群,。

·https://kb.vmware.com/s/article/2106949

当计划安装单集群并且数据中心的数量为两个时,还需要注意一件事。

由于Tungsten Fabric中的Zookeeper / Cassandra当前使用Quorum一致性等级,因此当主站点关闭时,第二个站点将无法继续工作(Read和Write访问权限均不可用)。

·https://github.com/Juniper/contrail-controller/blob/master/src/config/common/vnc_cassandra.py#L659 (使用config-api, schema-transformer, svc-monitor, device-manager)

·https://github.com/Juniper/contrail-common/blob/master/config-client-mgr/config_cassandra_client.cc#L458 (使用control, dns)

解决此问题的一种可能选项是,将一致性级别更改为ONE / TWO / THREE,或者LOCAL_ONE / LOCAL_QUORUM,尽管它需要重写源代码。

由于Zookeeper没有这样的knob,所以我知道的唯一方法,是在主站点关闭后更新weight。

·https://stackoverflow.com/questions/32189618/hierarchical-quorums-in-zookeeper

·即使Zookeeper暂时无法使用,大多数组件仍继续工作,尽管它用于HA的组件停止工作了(schema-transformer, svc-monitor, kube-manager, vcenter-plugin, ...)。

当数据中心的数量超过两个时,这将不再是一个问题。

---

Tungsten Fabric入门宝典系列文章——

  1. 首次启动和运行指南
  2. TF组件的七种“武器”
  3. 编排器集成
  4. 关于安装的那些事(上)
  5. 关于安装的那些事(下)
  6. 主流监控系统工具的集成
  7. 开始第二天的工作
  8. 8个典型故障及排查Tips
  9. 关于集群更新的那些事
  10. 说说L3VPN及EVPN集成
  11. 关于服务链、BGPaaS及其它

 Tungsten Fabric 架构解析系列文章——

---

本文系外文翻译,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系外文翻译,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Tungsten Fabric入门宝典丨多编排器用法及配置
在多个编排器之间共享控制平面有很多好处,包括routing/bridging、DNS、security等。
Tungsten Fabric
2020/06/17
6400
Tungsten Fabric入门宝典丨多编排器用法及配置
Tungsten Fabric入门宝典丨关于服务链、BGPaaS及其它
Tungsten Fabric入门宝典系列文章,来自技术大牛倾囊相授的实践经验,由TF中文社区为您编译呈现,旨在帮助新手深入理解TF的运行、安装、集成、调试等全流程。如果您有相关经验或疑问,欢迎与我们互动,并与社区极客们进一步交流。更多TF技术文章,请点击【TF中文社区】公号底部按钮>学习>文章合集。
Tungsten Fabric
2020/06/03
9170
Tungsten Fabric入门宝典丨关于服务链、BGPaaS及其它
Tungsten Fabric入门宝典丨编排器集成
在内部,Tungsten Fabric的编排器集成组件基本上对每个编排器都执行相同的操作,包括:
Tungsten Fabric
2020/06/08
9070
Tungsten Fabric入门宝典丨编排器集成
Tungsten Fabric入门宝典丨关于安装的那些事(下)
(编者按:在上一篇文章中,我们聊了关于TF组件安装中的HA行为、多NIC安装、集群规模等问题,以及如何安装具有Tungsten Fabric CNI的Kubernetes HA环境。)
Tungsten Fabric
2020/06/08
5580
Tungsten Fabric入门宝典丨关于安装的那些事(下)
​Tungsten Fabric入门宝典丨关于安装的那些事(上)1
在“启动并运行”的部分,描述了1个控制器和1个vRouter的设置,没有涵盖HA的情况(也没有overlay流量的情况)。下面来描述更现实的情况,每个编排器包含3个控制器和2个计算节点(可能还包含多NIC)。
Tungsten Fabric
2020/06/08
6200
​Tungsten Fabric入门宝典丨关于安装的那些事(上)1
Tungsten Fabric入门宝典丨8个典型故障及排查Tips
Tungsten Fabric入门宝典系列文章,来自技术大牛倾囊相授的实践经验,由TF中文社区为您编译呈现,旨在帮助新手深入理解TF的运行、安装、集成、调试等全流程。如果您有相关经验或疑问,欢迎与我们互动,并与社区极客们进一步交流。更多TF技术文章,请点击公号底部按钮>学习>文章合集。
Tungsten Fabric
2020/06/05
7930
Tungsten Fabric入门宝典丨8个典型故障及排查Tips
Tungsten Fabric入门宝典丨开始第二天的工作
首次启动和运行,以及运营安装之后。用户需要查看运行状态(例如路由表和vif状态),并在Tungsten Fabric DB中配置各种对象,例如virtual-network, logical-router, bgp-router等。
Tungsten Fabric
2020/06/05
1.4K0
Tungsten Fabric入门宝典丨开始第二天的工作
​Tungsten Fabric入门宝典丨关于安装的那些事(上)2
由于MP-BGP支持两个集群之间的缝合(stitching),因此这些集群很容易扩展到多集群环境。
Tungsten Fabric
2020/06/08
4150
​Tungsten Fabric入门宝典丨关于安装的那些事(上)2
Tungsten Fabric如何编排
OpenStack是虚拟机和容器的领先的开源编排系统。Tungsten Fabric提供了Neutron网络服务的实现,并提供了许多附加功能。
Tungsten Fabric
2020/06/12
1.2K0
Tungsten Fabric如何编排
Tungsten Fabric知识库丨更多组件内部探秘
在上一篇文章中,我们和您一起了解了vRouter的内部结构和进程,今天继续Tungsten Fabric其它组件的内部探秘旅程。
Tungsten Fabric
2020/09/01
1K0
Tungsten Fabric知识库丨更多组件内部探秘
为OpenStack和K8s集群提供无缝虚拟网络
现实情况下,可能会发生虚拟机和容器需要相互“交谈”的情况。如果是这样,我们需要以某种方式实现两个独立集群之间的通信。
Tungsten Fabric
2021/01/12
1.2K0
为OpenStack和K8s集群提供无缝虚拟网络
Tungsten Fabric入门宝典丨TF组件的七种“武器”
总体而言,Tungsten Fabric中包含7种角色和(多达)30个微服务,其中角色部分如下:
Tungsten Fabric
2020/06/09
7980
Tungsten Fabric入门宝典丨TF组件的七种“武器”
Tungsten Fabric知识库丨构建、安装与公有云部署
这里的repo文件的说明文档大部分是有效的。 https://github.com/Juniper/contrail-dev-env--
Tungsten Fabric
2020/09/08
1.2K0
Tungsten Fabric入门宝典丨关于集群更新的那些事
Tungsten Fabric入门宝典系列文章,来自技术大牛倾囊相授的实践经验,由TF中文社区为您编译呈现,旨在帮助新手深入理解TF的运行、安装、集成、调试等全流程。如果您有相关经验或疑问,欢迎与我们互动,并与社区极客们进一步交流。更多TF技术文章,请点击 【 TF中文社区】 公号底部按钮>学习>文章合集。
Tungsten Fabric
2020/06/05
9790
Tungsten Fabric入门宝典丨关于集群更新的那些事
TF实战Q&A丨你不理解透,出了问题都不知道怎么弄
在TF中文社区,爱折腾的“实战派”们经常探讨有关SDN和Tungsten Fabric的各种问题,我们将其中的精华部分整理出来,形成 “ TF Q&A ” 栏目,他们碰到的困惑、踩过的坑,也许正是你想要了解的——
Tungsten Fabric
2020/06/08
7830
TF实战Q&A丨你不理解透,出了问题都不知道怎么弄
Tungsten Fabric入门宝典丨主流监控系统工具的集成
(编者按:Prometheus 是一个开源监控系统,几乎所有云原生系统都以 Prometheus的指标格式输出运行时的监控信息。)
Tungsten Fabric
2020/06/08
8610
Tungsten Fabric入门宝典丨主流监控系统工具的集成
Tungsten Fabric知识库丨关于OpenStack、K8s、CentOS安装问题的补充
3个Tungsten Fabric控制器节点:m3.xlarge(4 vcpu)-> c3.4xlarge(16 vcpu)(由于schema-transformer需要cpu资源进行acl计算,因此我需要添加资源) 100 kube-master, 800 workers: m3.medium
Tungsten Fabric
2020/09/22
6640
Tungsten Fabric知识库丨关于OpenStack、K8s、CentOS安装问题的补充
Tungsten Fabric知识库丨测试2000个vRouter节点部署
https://github.com/tnaganawa/tungstenfabric-docs/blob/master/TungstenFabricKnowledgeBase.md
Tungsten Fabric
2020/09/15
7090
Tungsten Fabric解决方案指南-Kubernetes集成(上)
集成方案中,在Kubernetes和Tungsten Fabric(编者按:原文为Contrail,其开源版已更名为Tungsten Fabric,本文出现Contrail之处均以Tungsten Fabric替换)之间有两个连接。
Tungsten Fabric
2020/06/23
1.3K0
Tungsten Fabric解决方案指南-Kubernetes集成(上)
Tungsten Fabric架构解析丨TF如何连接到物理网络?
在任何一个数据中心中,都需要一些VM访问外部IP地址,并且数据中心外部的用户,也需要通过公共IP地址访问某些VM。为此,Tungsten Fabric提供了几种实现方法:
Tungsten Fabric
2020/06/12
9350
Tungsten Fabric架构解析丨TF如何连接到物理网络?
推荐阅读
相关推荐
Tungsten Fabric入门宝典丨多编排器用法及配置
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验