智汇华云 | ArSDN CNI 之容器和虚拟机的通信

本文介绍了通过华云数据的ArSDN CNI插件,如何实现在Kubernetes和虚拟机环境中的容器与虚拟机的互通。ArSDN接管网络控制,统一管理容器和虚拟机,借助虚拟网络隔离和三层路由器策略实现跨集群通信。详细阐述了嵌套部署和非嵌套部署两种场景下的通信实现方式。
摘要由CSDN通过智能技术生成

应用集群组件由于其特性,会部署到容器、虚拟机中,那么组件间的通信就会跨多平台。虚拟机是通过ArStack管理维护,K8s则由AKE组件管理维护,两者属于不同的平台。当虚拟机和容器需要相互“交谈”的时候,我们需要以某种方式实现两个独立集群之间的通信。本文将介绍通过ArSDN如何实现容器和虚拟机的互通。

实现思路

单个可用区中部署ArSDN组件,可用区中的AKE、ArStack都接入ArSDN,由ArSDN接管网络平台的控制和数据面流量转发。

当数据面统一由ArSDN接管后,则可以将容器、虚拟机统一到一个平台来管理,可以借助虚拟网络的隔离实现集群间的隔离,通过三层路由器、策略等功能实现跨集群间的通信。

可以自由控制容器、虚拟机和裸机的流量。

容器和虚拟机互通的实现方式

容器集群通过CNI插件实现容器的网络功能。CNI插件的实现有很多种,本文介绍的是华云数据自研的ArSDN CNI。

在容器集群接入ArSDN时,ArSDN CNI会在ArSDN执行一些初始化的操作,比如为每个容器集群创建一个Pod网络和一个Service网络、创建安全策略、网络策略等等,容器的IP地址分配以及安全策略都由ArSDN来管理。

Pod创建流程:

CNI组件watch到有新的Pod创建,会在Pod网络中创建对应的网卡并分配IP地址

Pod在调度完成后,kubelet会调用CNI插件创建Pod网卡

CNI插件调用ArSDN组件获取Pod网卡信息并完成网卡的创建

容器集群内部通信存在几种场景:

Pod和ApiServer通信:类似coredns这类Pod需要访问k8s apiserver获取对应的资源并生成域名信息

容器节点和Pod通信:部分组件会通过域名来访问Service,最终访问

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值