开源
flannel:用于跨多种主机连接容器的覆盖网络
来源:元经纪     阅读:493
网站管理员
发布于 2023-02-07 09:08
查看主页

概述

Flannel是一种覆盖网络,可用于跨各种主机连接容器。它可用于配置为 Kubernetes 创建的第 3 层网络结构。它在每台主机上运行一个小型的单一二进制代理(称为 flanneld)。它直接使用 Kubernetes API 或 etcd 来存储网络配置。 这个工具是一个基本的覆盖网络,可以很好地处理分配的子网地址范围。简单来说,覆盖网络是建立在另一个网络之上的。虽然 flannel 主要是为 Kubernetes 创建的,但它是一个简单的覆盖网络,可以用作现有软件定义网络解决方案的基本替代方案。更具体地说,这个网络工具为每个主机提供了一个 IP 子网,Docker 守护进程可以从中为各个容器分配 IP。每个地址都链接到一个容器,因此系统中的所有容器都可能存在于不同的主机上。 使用部署工具和发行版,flannel 可以很容易地与 Kubernetes 一起部署。例如,CoreOS Tectonic 可以使用开源的Tectonic Installer在 Kubernetes 集群中设置 flannel 。但是,它也可以手动安装到任何现有的Kubernetes 集群中。

Flannel 是配置专为 Kubernetes 设计的第 3 层网络结构的简单方法。

怎么运行

[hidecontent type="logged" desc="隐藏内容:登录后可查看"]

Flannel 在每个主机上运行一个小型的、单一的二进制代理flanneld,并负责从一个更大的、预配置的地址空间中为每个主机分配一个子网租约。Flannel 使用 Kubernetes API 或etcd直接存储网络配置、分配的子网和任何辅助数据(例如主机的公共 IP)。使用多种后端机制之一转发数据包,包括 VXLAN 和各种云集成。

网络细节

像 Kubernetes 这样的平台假设每个容器 (pod) 在集群内都有一个唯一的、可路由的 IP。此模型的优点是它消除了共享单个主机 IP 带来的端口映射复杂性。

Flannel 负责在集群中的多个节点之间提供第 3 层 IPv4 网络。Flannel 不控制容器如何与主机联网,只控制流量如何在主机之间传输。然而,flannel 确实为 Kubernetes 提供了一个 CNI 插件和一个与 Docker 集成的指南。

Flannel 专注于网络。对于网络策略,可以使用其他项目,例如Calico 。

开始使用 Kubernetes

使用 Kubernetes 部署 flannel 的最简单方法是使用默认情况下使用 flannel 网络集群的几种部署工具和发行版之一。例如,K3s在其创建的 Kubernetes 集群中设置 flannel,使用开源K3s Installer来驱动设置过程。

虽然不是必需的,但建议 flannel 使用 Kubernetes API 作为其后备存储,这避免了etcdflannel. 这种flannel模式被称为kube subnet manager

手动部署 flannel

Flannel 可以添加到任何现有的 Kubernetes 集群中,尽管flannel在使用 pod 网络的任何 pod 启动之前添加是最简单的。

对于 Kubernetes v1.17+

kubectl apply -f https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml

如果您使用自定义podCIDR(不是10.244.0.0/16),您首先需要下载上面的清单并修改网络以匹配您的网络。

有关详细信息,请参阅Kubernetes

如果配置了防火墙,请确保启用配置后端使用的正确端口。

开始使用 Docker

flannel 在 kubernetes 之外也被广泛使用。当部署在 kubernetes 之外时,etcd 始终用作数据存储。有关将 flannel 与 Docker 集成的更多详细信息,请参阅运行

[/hidecontent]

 

免责声明:本文为用户发表,不代表网站立场,仅供参考,不构成引导等用途。 开源
马斯克:人工智能初创公司grok-2将于8月推出
吉林大学将人工智能技术应用于青铜器研究
小米SU7 Ultra车模上架即售罄 二手平台溢价已超百元
两人因发现微RNA分享诺贝尔生理学或医学奖,成果具体有多牛?
【5月14日-深圳】Web3元宇宙 Chat GPT创新沙龙

首页

分类

定制方案

消息

我的