在K8s上轻松部署Tungsten Fabric的两种方式



  • 第一种:在AWS的K8s上部署TF

    首先介绍下如何在AWS上使用Kubernetes编排的Tungsten Fabric集群部署沙盒,15分钟就可以搞定。Tungsten Fabric集群由部署节点、一个控制器节点、两个作为EC2 VM运行的计算节点组成。

    要求

    在开始使用沙盒之前,必须订购CentOS 7 x86_64 HVM的正式映像。

    所选区域必须至少具有两个可用区。

    登录到AWS控制台后,请转到AWS Marketplace 的URL。

    点击“继续订购”,然后点击“接受条款”。

    *如果您以IAM用户身份连接,您将无法在AWS Marketplace中执行任务,请查看文档末尾的附录以获取相关解决方案。

    步骤

    1,只需单击以下按钮即可创建沙箱(以AWS CloudFormation堆栈形式运行):

    Launch Stack

    2,点击Next。

    3,指定以下信息:

    4,点击两次Next。

    5,在页面底部选择复选框“ Acknowledge ...”。

    6,点击创建。

    7,重新加载堆栈页面并等待堆栈的CREATE_COMPLETE状态。

    8,选中“Stack”(复选框),然后在底部窗格中选中“Output”选项卡,以找到Sandbox UI的URL。

    579f7f06-bbb0-43f8-930a-0e644b64b6d6-image.png

    9,转到Sandbox UI URL并等待部署(该站点将在创建堆栈后的2-3分钟内可用)。

    10,成功部署后,沙盒界面将提供信息以连接到Tungsten Fabric和Kubernetes服务。

    11,使用Tungsten Fabric用户界面URL,密码登录进行启动。

    重要信息:沙盒使用完毕后,可以使用DELETE SANDBOX按钮清除所有使用的资源。

    75fd2ded-4cf2-4381-ae24-3ebf1345e94f-image.png

    为了双重安全,您可以在删除后检查AWS Interface中的剩余资源。

    访问集群:

    您可以使用在堆栈启动期间指定的ssh密钥来访问具有“centos”用户名的任何VM。

    ssh -i  centos@   #  can be the public IP or the private IP of the node
    sudo -s
    

    沙盒界面将提供有关如何连接到Tungsten Fabric UI和Kubernetes仪表板的信息。

    附录:IAM用户

    如果要使用IAM用户而不是使用root帐户登录,则需要为该用户授予额外的特权。

    • 登录到AWS控制台。
    • 在控制台左上方的AWS服务搜索中,找到IAM并选择它。
    • 在左侧导航栏中,单击需要更改权限的用户。
    • 在右下角单击“Add inline policy)”。
    • 进入“JSON”页签,使用以下内容替换策略内容:
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "cloudformation:*",
                    "aws-marketplace:*",
                    "sns:*",
                    "s3:*",
                    "ec2:*",
                    "elasticloadbalancing:*",
                    "cloudwatch:*",
                    "autoscaling:*",
                    "iam:*"
                ],
                "Resource": "*"
            }
        ]
    
    }
    
    • 检查策略。添加策略名称。创建策略。

    第二种:通过Centos/Ubuntu“一键安装”

    Tungsten Fabric CNI可以通过多种配置方案安装在Kubernetes集群上。

    这里描述最简单的方法:单个基于yaml的安装。

    先决条件

    1.一个正在运行的Kubernetes集群

    有很多方法可以安装Kubernetes。最简单的是kubeadm:

    https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/

    或者,如果您希望将Tungsten Fabric和K8s集群一起安装,可以使用Tungsten Fabric Ansible Deployer:

    https://github.com/Juniper/contrail-ansible-deployer/wiki/Contrail-microservice-installation-with-kubernetes

    2.所有节点上的Docker版本不低于1.24

    3.Linux内核版本3.10.0-957

    Tungsten Fabric转发使用内核模块来提供高吞吐量和低延迟的网络连接。

    最新的内核模块是针对3.10.0-957内核编译的。

    安装

    将Tungsten Fabric安装到Cento或者Ubuntu上只需要一个步骤。

    注意:将x.x.x.x替换为Kubernetes Master节点的IP。

    对于在Centos系统上安装,请使用以下的命令:

    {% raw %}

    K8S_MASTER_IP=x.x.x.x; CONTRAIL_REPO="docker.io\/opencontrailnightly"; CONTRAIL_RELEASE="latest"; mkdir -pm 777 /var/lib/contrail/kafka-logs; curl https://raw.githubusercontent.com/Juniper/contrail-kubernetes-docs/master/install/kubernetes/templates/contrail-single-step-cni-install-centos.yaml | sed "s/{{ K8S_MASTER_IP }}/$K8S_MASTER_IP/g; s/{{ CONTRAIL_REPO }}/$CONTRAIL_REPO/g; s/{{ CONTRAIL_RELEASE }}/$CONTRAIL_RELEASE/g" | kubectl apply -f -
    

    {% endraw %}

    对于在Ubuntu上安装,请使用以下命令:

    K8S_MASTER_IP=x.x.x.x; CONTRAIL_REPO="docker.io\/opencontrailnightly"; CONTRAIL_RELEASE="latest"; mkdir -pm 777 /var/lib/contrail/kafka-logs; curl https://raw.githubusercontent.com/Juniper/contrail-kubernetes-docs/master/install/kubernetes/templates/contrail-single-step-cni-install-ubuntu.yaml | sed "s/{{ K8S_MASTER_IP }}/$K8S_MASTER_IP/g; s/{{ CONTRAIL_REPO }}/$CONTRAIL_REPO/g; s/{{ CONTRAIL_RELEASE }}/$CONTRAIL_RELEASE/g" | kubectl apply -f -
    

    看看发生了什么?

    太棒了!欢迎来到Tungsten Fabric。

    您已经在Kubernetes节点中安装了Tungsten Fabric CNI。当新的计算节点添加到Kubernetes群集中,Tungsten Fabric CNI也将神奇地自动传播到这些节点,就像背后有Kubernetes DaemaonSet一样。

    同时,您已经安装了整个Tungsten Fabric Networking套件,其中包括Networking、Analytics、Security、Visualization等功能。

    Tungsten Fabric UI在节点的8143端口上可用,可以开始在上面玩了。

    https://x.x.x.x:8143
    Default credentials: admin/contrail123
    

    检查Tungsten Fabric状态

    通过在Kubernetes主节点中运行“contrail-status”命令行工具,可以获得Tungsten Fabric组件的状态。这将列出系统中运行的所有Tungsten Fabric组件。

    71b93b20-7668-4617-8db6-31380dde52b7-image.png 2c5a1217-fc30-4aac-af3e-fd84c76d92fd-image.png

    “Tungsten Fabric+K8s集成指南”系列文章——

    第一篇:部署准备与初始状态
    第二篇:创建虚拟网络
    第三篇:创建安全策略
    第四篇:创建隔离命名空间

    “Tungsten Fabric+K8s轻松上手”系列文章——
    第一篇:TF Carbide 评估指南--准备篇
    第二篇:通过Kubernetes的服务进行基本应用程序连接
    第三篇:通过Kubernetes Ingress进行高级外部应用程序连接
    第四篇:通过Kubernetes命名空间实现初步的应用程序隔离
    第五篇:通过Kubernetes网络策略进行应用程序微分段


Log in to reply