NSX-T与K8S集成方案与实践

一、概述

大家都知道,在部署K8S集群时,可采用多种网络解决方案为其提供资源。比如开源的flannel、calico等;但同时也可采用商用sdn的解决方案,如本文所讲的VMware家族的产品NSX-T。

本文就采用NSX-T3.0.1版本,为K8S提供网络资源。使用NSX Container Plug-in (NCP) 插件进行集成。

二、逻辑拓扑

NSX-T与K8S集成方案与实践

三、集成思路

    1、nsx-t部分:安装部署好nsx-t环境,并创建k8s所需相关网络资源;

    2、k8s部分:安装部署k8s集群环境,并记录k8s集群相关信息,以便与nsx-t集成;

    3、ncp部分:制作ncp插件部署时yaml文件,输入nsx-t与k8s相关信息,以便在k8s中应用,生成ncp相关的容器组件;(最为关键)

    4、测试部分:在k8s中创建pod,lb等资源,测试集成是否成功。

四、nsx-t部分

   1、完成nsx-t安装部署;(该知识已在上篇文章中介绍过,在此不做赘述)

  2、nsx-t部署完成后,进行如下资源配置;

(1)创建k8s node节点所需管理网络资源;

    △本环境中k8s节点管理网络规划为:192.168.20.0/24。

NSX-T与K8S集成方案与实践

(2)为k8s节点打上nsx-t端口标签,格式如下:

端口说明:k8s三节点需创建两张网卡,第一块网卡连接至上述k8s-mgmt分段,为管理网络,该资源可以为nsx-t提供,也可以不是;

               第二块网卡需连接至上述k8s-vif分段,以为pod资源提供网络连接,其位于nsx-t的overlay网络;且该分段无需连接至T0或T1,以及不需要配置IP。

NSX-T与K8S集成方案与实践

  (2)创建k8s中pod、lb所需的网络资源;

    △本环境中pod网络资源规划为:192.168.21.0/24;(视pod数量多少而定,测试环境只是概念性证明,所需较少)

NSX-T与K8S集成方案与实践

    △本环境中lb网络资源规划为:192.168.22.0/24;(同样视环境大小而定)

NSX-T与K8S集成方案与实践

(3)创建相关防火墙策略;

NSX-T与K8S集成方案与实践


五、k8s部分

1、完成k8s集群部署;(测试环境可采用k8s单节点部署方式,较为简便)

(1)本环境采用如下示例:

NAME ROLE IP
k8s-master master 192.168.20.11
k8s-node01 node 192.168.20.12
k8s-node02 node 192.168.20.13 

(2)部署k8s

    a、创建完成三节点虚拟机,为每个节点创建dns记录;

    b、并按照上述网卡规划,将每个节点连接至对应网络分段;

    c、为每个节点安装好k8s所需软件包,并安装相应版本的ovs软件;

    d、集群初始化,将node节点加入集群中,完成集群创建,并检查集群状态。(注意:在部署nsx cni网络之前,k8s的coredns将会一直处于pending状态。因为其需要使用cni的网络资源。在后续ncp部署好之后,k8s的coredns才会变成running状态。)

2、记录k8s在制作ncp yaml文件时,所需相关信息;

六、ncp部分

1、根据部署环境版本,从VMware官网获取相应的ncp资源包(包含容器镜像,以及yaml文件模板);

本测试环境中,所采用的资源包,从如下官网地址中获取,可参考:https://my.vmware.com/cn/web/vmware/downloads/details?downloadGroup=NSX-T-PKS-301&productId=982

NSX-T与K8S集成方案与实践

2、根据部署环境实际情况,制作ncp yaml文件,保证准确性;(一千七百多行,根据实际需求,只需要输入相关部分)

以下为本测试环境中输入的相关部分,可参考;(输入的相关部分,可在描述部分添加自定义关键字,以便查找)


七、测试部分



未完待续,更新ing~


上一篇:hwclock与clock命令


下一篇:记21年末的三次失败 | 大三计算机学生