一、概述

大家都知道,在部署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)本环境采用如下示例:

NAMEROLEIP
k8s-mastermaster192.168.20.11
k8s-node01node192.168.20.12
k8s-node02node192.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~


©著作权归作者所有:来自51CTO博客作者如沐阳光的原创作品,如需转载,请注明出处,否则将追究法律责任

我们的征途,是星辰大海!

赞赏

0人进行了赞赏支持

更多相关文章

  1. 面试官:你看过Redis数据结构底层实现吗?
  2. 微服务开发神器之JRebel 插件破解和实现本地及远程热部署教程
  3. 驰骋工作流程引擎——流程设计器操作说明书
  4. 驰骋工作流引擎设计系列01 流程元素设计
  5. 驰骋工作流引擎设计系列08 接收人规则设计
  6. 关于修改工作流引擎退回规则的声明-ccflow.txt
  7. ccflow表结构与运行机制(二次开发必看)
  8. 工作流程引擎的退回规则
  9. 用 Keepalived+HAProxy 实现高可用负载均衡的配置方法

随机推荐

  1. 后IOE时代,Mysql 与 Postgre SQL的对比
  2. sql 如何对返回为空值指定值
  3. python操作mysql 抛出Unread result foun
  4. MySQL5.7.11版本,64位绿色版安装
  5. 'where'in with duplicates或'select dis
  6. 使用触发器插入另一个表
  7. ASP和SQLServer时间处理方法
  8. 检查mysql中的行顺序
  9. 请大家帮我解决一下MySQL已经都设置成UTF
  10. 50分求关于执行SQL脚本文件的问题,在线等