栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

kubernetes之网络

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

kubernetes之网络

一、概要

kubernetes的网络设计主要针对以下几种情况实现的:

● 同一pod下容器与容器的通信(容器之间);
● 同一节点下不同的pod之间的容器间通信(Pod之间);
● 不同节点下容器之间的通信;
● 集群外部与内部组件的通信;
● pod与service之间的通信;
● Internet与Service之间的网络;

k8s对集群的网络有以下要求:

● 所有的Pods之间可以在不使用NAT网络地址转换的情况下相互通信;
● 所有的Nodes之间可以在不使用NAT网络地址转换的情况下相互通信;
● 每个Pod自己看到的自己的ip和其他Pod看到的一致;

k8s中的网络建设 , 主要是为可给每个 NODE上的 docker 容器都分配互相不冲突的 IP;在这些 IP 地址之间建立一个上层网络(overlay Network), 通过这个上层网络上,数据包可原封不动地传递到目标容器内。且目标为:每个Pod都拥有一个独立的 IP地址,而且假定所有 Pod 都在一个可以直接连通的、扁平的网络空间中 。 不管它们是否运行在同 一 个 Node (宿主机)中,都要求它们可以直接通过对方的 IP 进行访问。这样,用户就无需再额外考虑如何建立 Pod 之间的连接,也不需要考虑将容器端口映射到主机端口等问题。实际,我们这里说的k8s网络就是集群的网络,因k8s主要设计就是管理一组/批容器(集群)的。

二、网络建设 2.1 网络类型

首先,回顾下Docker容器网络:

1)从范围上分:

单机网络: none,host, bridge
跨主机网络:overlay,macvlan,flannel等

2)从生成方式分:

原生网络:即利用宿主机操作系统本身就提供的功能构建的网络,包括:none,host, bridge;

自定义网络:docker容器实现中自带的网络驱动:bridge(自定义),overlay,macvlan, 使用第三方驱动实现的自定义网络:flannel等。

K8s的网络按实现目标来分类:

1)同一pod下容器与容器的通信

同一个pod下的容器间的通信,是借助容器都在共用一个linux协议栈,共用一个网络Namespace,即pod中容器都是共享同一网络空间的,所有Pod内的容器可看作在同一个网络平面里,比如:其中一个容器为web服务,一个容器为mysql。

web服务可以使用宿主机的IP地址+3306端口就可以访问,不需要通过其他组件的处理,这种访问方式是最简单的。

2.2 网络实现
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/618319.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号