Tungsten Fabric项目是一个开源项目协议,它基于标准协议开发,并且提供网络虚拟化和网络安全所必需的所有组件。项目的组件包括:SDN控制器,虚拟路由器,分析引擎,北向API的发布,硬件集成功能,云编排软件和广泛的REST API。

本文所有相关链接pdf:https://tungstenfabric.org.cn/assets/uploads/files/tf-ceg-with-link.pdf

本指南的作用是什么?

本指南是为应用程序开发人员或计算基础结构平台工程师设计的,考虑了Kubernetes网络的选项,特别侧重于Tungsten Fabric Carbide。

对于在Kubernetes上运行的应用程序,“Kubernetes集群网络”功能至关重要。这些功能包括:

  • 通过服务在Pod之间进行网络通信;
  • 外部世界和面向外部的服务之间的网络通信;
  • 对允许的网络通信流进行细粒度控制的网络策略。

为此,Kubernetes集群必须安装容器网络接口(“CNI”)插件。Kubernetes文档网站列出了许多选项,我们在本文档中介绍Tungsten Fabric选项。

我们将使用一个示例的3层应用程序来遍历上面列出的三个主要功能区域,并说明Tungsten Fabric在每种情况下的功能。Tungsten Fabric提供超出Kubernetes基线的其他功能,在这些地方我们也会介绍。

要遵循我们的用例,您应该在AWS上部署自己的带有Kubernetes(“K8s”)的TF快速开始副本。

先决条件

本指南假定您熟悉如何:

  • 将CloudFormation模板部署到您的AWS账户中;
  • 使用SSH客户端和SSH私钥连接到AWS中的EC2实例;
  • 使用kubectl CLI工具将应用程序部署到Kubernetes;
  • 使用Linux CLI /终端工具,例如less和nano。

示例应用程序简介

为了演示Tungsten Fabric如何帮助我们使应用程序运行,提供从Internet的访问并进行安全保护,我们将使用名为“yelb”的模拟应用程序。它是由AWS的一名开发倡导者编写并维护的。选择此应用程序的原因是简单,文档齐全,而且可以在Kubernetes上运行。

请查看“Yelb体系结构”链接以获取更多详细信息,但在较高层次上,它看起来像这样:

Tungsten Fabric+K8s轻松上手|TF Carbide评估指南--准备篇_第1张图片
该应用程序由四个部署组成:yelb-ui,yelb-appserver,yelb-db和yelb-cache。每个部署都有各自的Kubernetes服务。yelb-ui服务还可以通过Kubernetes Ingress进行管理,从而为您提供L7 HTTP路由。

做好准备

对于我们的练习,需要具备以下条件:

  • 通过Kubernetes的kubectl CLI工具使用访问安装了Tungsten Fabric的Kubernetes集群;
  • yelb的副本

访问我们的Kubernetes集群

如果您按照AWS上的Tungsten Fabric Carbide快速入门指南中的步骤进行操作,则应该能够按照该指南的“Accessing the Cluster”部分中的说明登录到QuickStart沙箱控制节点。要查找沙箱控制节点的公共DNS主机名,请在AWS CloudFormation UI的“Outputs”选项卡中查找用于部署带有TF Carbide的Kubernetes的模板:

Tungsten Fabric+K8s轻松上手|TF Carbide评估指南--准备篇_第2张图片

进入沙箱控制节点后,运行:

sudo -s
kubectl get nodes

应该显示类似以下内容的输出:
Tungsten Fabric+K8s轻松上手|TF Carbide评估指南--准备篇_第3张图片

获取Yelb应用程序的副本

成功连接到沙箱控制节点并验证kubectl正常工作后,请使用以下命令获取yelb的副本,并将工作目录更改为带有Kubernetes清单的工作目录(以root身份运行):

Tungsten Fabric+K8s轻松上手|TF Carbide评估指南--准备篇_第4张图片

下一步

此时,您将拥有一个具有两个计算节点的功能性沙盒Kubernetes集群,以及一个可用于验证功能的应用程序。本文档的其余部分将为您提供示例,介绍在开发和操作运行在Kubernetes上的应用程序时,如何处理可能遇到的常见的一些网络和安全情况。

每个用例都是独立的,不需要您完成本文档中的任何其他用例。

随意跳到您认为合适的那一个:

  1. 通过Kubernetes的服务进行基本应用程序连接
  2. 通过Kubernetes的Ingress进行高级外部应用连接
  3. 通过Kubernetes命名空间粗化应用程序隔离
  4. 通过Kubernetes网络策略进行应用程序微分段

(“TF中文社区”公众号将陆续发布四个用例的详细内容,敬请关注)
Tungsten Fabric+K8s轻松上手|TF Carbide评估指南--准备篇_第5张图片

关注微信:TF中文社区
Tungsten Fabric+K8s轻松上手|TF Carbide评估指南--准备篇_第6张图片