一、概述
大家都知道,在部署K8S集群时,可采用多种网络解决方案为其提供资源。比如开源的flannel、calico等;但同时也可采用商用sdn的解决方案,如本文所讲的VMware家族的产品NSX-T。
本文就采用NSX-T3.0.1版本,为K8S提供网络资源。使用NSX Container Plug-in (NCP) 插件进行集成。
二、逻辑拓扑
三、集成思路
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。
(2)为k8s节点打上nsx-t端口标签,格式如下:
端口说明:k8s三节点需创建两张网卡,第一块网卡连接至上述k8s-mgmt分段,为管理网络,该资源可以为nsx-t提供,也可以不是;
第二块网卡需连接至上述k8s-vif分段,以为pod资源提供网络连接,其位于nsx-t的overlay网络;且该分段无需连接至T0或T1,以及不需要配置IP。
(2)创建k8s中pod、lb所需的网络资源;
△本环境中pod网络资源规划为:192.168.21.0/24;(视pod数量多少而定,测试环境只是概念性证明,所需较少)
△本环境中lb网络资源规划为:192.168.22.0/24;(同样视环境大小而定)
(3)创建相关防火墙策略;
五、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
2、根据部署环境实际情况,制作ncp yaml文件,保证准确性;(一千七百多行,根据实际需求,只需要输入相关部分)
以下为本测试环境中输入的相关部分,可参考;(输入的相关部分,可在描述部分添加自定义关键字,以便查找)
七、测试部分
未完待续,更新ing~