博客
关于我
kubernetes学习总结-3网络通讯模式
阅读量:771 次
发布时间:2019-03-24

本文共 1036 字,大约阅读时间需要 3 分钟。

Kubernetes网络模型与Flannel网络规划服务解析

在Kubernetes网络模型中,默认所有Pod都位于一个扁平且直接联通的网络空间中。这种假设在Google Compute Engine(GCE)中是现成的网络环境,但在私有云中搭建Kubernetes集群时,这种假设并不成立。我们需要先打通不同节点之间的网络互联,再基于此运行Kubernetes。

####Pod间通讯机制

  • 同一Pod内容器间通讯

    使用pause进程实现的localhost访问模式,确保同一Pod内的容器能够直接互相访问。Pod共享一个网络命名空间和Linux协议栈。

  • 不同Pod间通讯

    层覆盖网络(Overlay Network)作为Kubernetes默认的容器间通信机制。

    • 同一节点内部Pod通讯:Pod之间通过Docker0网桥直接转发,不经过Flannel。
    • 跨节点Pod通讯(即跨主机):借助Flannel创建覆盖网络,确保Pod之间可以通过虚拟IP进行通信。
  • ####Service与Pod的通讯

    Service是Kubernetes集群中的虚拟网络设备,用iptables维护节点级的路由规则来实现Pod与Service之间的通信。目前主要采用iptables实现,但有性能优化使用Linux负载均衡(LVS)更高效。

    ####Pod与外部网络联通

    Kubernetes中,Pod需要通过网络进行通信。具体实现如下:

    • Pod发出的请求通过路由表查找,最终由宿主机网卡选择正确的路由。
    • 宿主机iptables执行上mask操作,将源IP替换为宿主机IP,向外网发送请求。

    此外,外部系统访问Pod时,可以通过Service转发实现。

    Flannel网络规划服务简介

    Flannel由CentOS团队设计专为Kubernetes服务设计,是一种灵活的网络规划服务。它能够为集群中的各Pod分配唯一的虚拟IP地址,并通过覆盖网络实现数据包的原封不动传递。

    ####Flannel的主要功能

  • IP地址分配

    Flannel能够动态分配集群内的虚拟IP地址段,并对这些IP进行管理。

  • 维护路由表

    Flannel监控Etcd(Kubernetes Etcd集群)的状态,在内存中维护Pod节点路由表。

  • 覆盖网络支持

    通过Flannel,实现跨节点的网络通信,将数据包直接传递至目标Pod,无需经过节点网络。

  • 这种高效的网络规划机制极大地方便了Kubernetes集群的网络管理和扩展。

    转载地址:http://oxnkk.baihongyu.com/

    你可能感兴趣的文章
    Nginx的是什么?干什么用的?
    查看>>
    Nio ByteBuffer组件读写指针切换原理与常用方法
    查看>>
    NI笔试——大数加法
    查看>>
    NLP 基于kashgari和BERT实现中文命名实体识别(NER)
    查看>>
    No 'Access-Control-Allow-Origin' header is present on the requested resource.
    查看>>
    Node.js安装与配置指南:轻松启航您的JavaScript服务器之旅
    查看>>
    NSSet集合 无序的 不能重复的
    查看>>
    nullnullHuge Pages
    查看>>
    Numpy如何使用np.umprod重写range函数中i的python
    查看>>
    oauth2-shiro 添加 redis 实现版本
    查看>>
    OAuth2.0_JWT令牌-生成令牌和校验令牌_Spring Security OAuth2.0认证授权---springcloud工作笔记148
    查看>>
    OAuth2.0_JWT令牌介绍_Spring Security OAuth2.0认证授权---springcloud工作笔记147
    查看>>
    OAuth2.0_介绍_Spring Security OAuth2.0认证授权---springcloud工作笔记137
    查看>>
    OAuth2.0_完善环境配置_把资源微服务客户端信息_授权码存入到数据库_Spring Security OAuth2.0认证授权---springcloud工作笔记149
    查看>>
    OAuth2.0_授权服务配置_Spring Security OAuth2.0认证授权---springcloud工作笔记140
    查看>>
    OAuth2.0_授权服务配置_客户端详情配置_Spring Security OAuth2.0认证授权---springcloud工作笔记142
    查看>>
    OAuth2.0_授权服务配置_密码模式及其他模式_Spring Security OAuth2.0认证授权---springcloud工作笔记145
    查看>>
    OAuth2.0_授权服务配置_资源服务测试_Spring Security OAuth2.0认证授权---springcloud工作笔记146
    查看>>
    OAuth2.0_环境介绍_授权服务和资源服务_Spring Security OAuth2.0认证授权---springcloud工作笔记138
    查看>>
    OAuth2.0_环境搭建_Spring Security OAuth2.0认证授权---springcloud工作笔记139
    查看>>