最新发布《数智时代的AI人才粮仓模型解读白皮书(2024版)》,立即领取! 了解详情
写点什么

OpenSource I 探索 EKS 的网络基础:amazon-vpc-cni-k8s + Calico

  • 2019-10-28
  • 本文字数:1741 字

    阅读完需:约 6 分钟

OpenSource I 探索EKS的网络基础:amazon-vpc-cni-k8s + Calico

Amazon 在 AWS re:invent 上宣布推出 Elastic Container Service for Kubernetes (EKS) 并详细介绍了容器网络将如何在此令人振奋的新平台上工作 — 以及得到保护。特别是 EKS 利用了新推出的 AWS Container Network Interface (amazon-vpc-cni-k8s) 插件以及 Project Calico 来执行网络策略。在本博文中,我们将详细介绍这种集成的工作原理,还将说明目前如何在 EC2 中运行的 Kubernetes 群集中试用。它好比您在等待访问 EKS 本身时的一个“先睹为快”,或者您在自己基于 AWS 的 Kubernetes 中部署时可能考虑的因素 — 但请注意 amazon-vpc-cni-k8 仍然是官方的 alpha 版发布,不能用于生产工作负载。

VPC 与容器

Virtual Private Cloud (VPC) 网络的概念已经被 AWS 用户广为接受,但最初它是基于实例将拥有单个 IP 地址的假设建立的。因此,AWS 中部署的大多数容器环境将使用叠加 — 特别使用 Calico 来利用 EC2 的第 2 层功能,以避免单个可用区 (AZ) 内的叠加。但即使是 Calico 也使用叠加来遍历可用区。Calico 的联网方法虽然在 AWS 中非常流行,但它不能为容器赋予“真正的 IP”,即让相关 VPC 看起来与主机实例 IP 一样的 IP 地址。更好的解决方案将是从相关 VPC 为它分配一个 IP 地址,让相关 Amazon 联网层负责路由。这就是 AWS 团队通过 amazon-vpc-cni-k8s 插件实现的功能。它利用 EC2 的能力为主机实例预置多重弹性网络接口 (ENI),每个接口都有多个二级 IP 地址,从而获得来自 VPC 池的多个 IP 地址。然后,它将这些 IP 地址分配给主机上的 Pod,将 ENI 连接到 Pod 上创建的虚拟以太网端口 (veth),然后将剩下的工作交给 Linux 内核。


有关 veth 的策略

现在您也许会自问:如果 amazon-vpc.cni-k8s 插件负责分配 IP 地址和容器联网,Calico 如何才能启用网络策略?它其实非常简单:因为 Calico 采用模块化设计,它的联网、IPAM 和策略功能都可以通过相关设置独立部署。对于 EKS,amazon-vpc-cni-k8s 插件作为 Kubernetes 的 CNI 插件配置,但我们还会在每个节点上将“calico-node”代理作为 Kubernetes daemonset 部署。将 amazon-vpc.cni-k8s 插件的 veth 命名规则与 Calico 统一,每个主机上的 calico-node 都将知道哪个 veth 属于哪个容器,因此可以 (使用 iptable/ipset) 照常创建每个容器在 Linux 内核中的接口的策略规则。由于 amazon-vpc-cni-k8s 插件以正确的方式接入 veth,我们知道所有来自 Pod 的流量都将执行这些规则。实际上您需要知道的是:作为 CNI 插件,amazon-vpc-cni-k8s 会执行简单声明以将 Calico 部署为 daemonset,然后就万事大吉

将理论应用到您自己的 EC2 控制台

读到这里,您也许不禁想要尝试一下。当然,最终这将成为适用于所有 EKS 用户的标准。虽然它目前还属于功能有限的预览版,但您可以利用在 EC2 上的正常 Kubernetes 部署来试用:github.com/aws-samples/aws-kube-cni

适用于 AWS Calico 联网何去何从?

amazon-vpc-cni-k8s 插件的优点非常明显:您在 VPC 中获得真实的 IP 地址,性能与 EC2 主机联网相同,可用区与 VPC 之间的路由无需额外的叠加。那么您是否会希望在 AWS 中使用 Calico 的联网功能?可能有一些原因会让您希望继续使用 Calico 而不是 amazon-vpc-cni-k8s 插件:


  • 使用 amazon-vpc-cni-k8s 插件,单个主机实例 (Kubernetes 节点) 的 Pod 总数以 ENI 的数量乘以每个 ENI 的二级 IP 地址数量为极限 –根据实例的大小不同会有差异 (参见此表)。对于较小的实例,这可能极低 — 例如,对于 c1.medium 实例,您只能启动 10 个 Pod。而 Calico 对每个节点的 Pod 数量是没有限制的。

  • amazon-vpc-cni-k8s 插件会在日初为给定的节点分配最大数量的 IP 地址,这可能会降低地址利用的效率。而 Calico 允许整个 IP 地址池在所有节点之间使用。


我们的建议是:如果部署没有应阻断,您应当使用 amazon-vpc-cni-k8s 插件,这是适用于 AWS 的最简单、最佳性能的原生联网解决方案 — 当然,这也是 EKS 的默认配置。不论您选择哪种联网方法,您都可以放心享受 Calico 提供的行业标准容器网络安全性。


本文的另一位作者是 Tigera 的 Andy Randall!有关他的信息请关注 @andrew_randall


本文转载自 AWS 技术博客。


原文链接:


https://amazonaws-china.com/cn/blogs/china/networking-foundation-eks-aws-cni-calico/


2019-10-28 08:00815

评论

发布
暂无评论
发现更多内容

星河共创,开为科技加入飞桨大模型生态圈,共建营销应用新范式

飞桨PaddlePaddle

深度学习 飞桨 文心大模型

人民邮电出版社70周年庆暨异步社区8周年庆成功举办,和鲸Heywhale荣获异步社区“2023年度最佳合作伙伴”奖

ModelWhale

IT 数据科学 书籍出版 异步社区 人民邮电出版社

Dapp开发流程以及应用

西安链酷科技

软件开发 dapp 去中心化 安全性

冯冠霖秘书长参加2023中国汽车软件大会并致辞

开放原子开源基金会

开源

AI 女友突然下线,大叔集体「崩溃」;谷歌聊天机器人称谷歌滥用垄断力量丨 RTE 开发者日报 Vol.78

声网

视频直播场景下对象存储的应用

天翼云开发者社区

对象存储

AI系列产品来袭,用友招聘云换新上线

用友BIP

AI 招聘

合成数据对于机器学习模型至关重要

3D建模设计

人工智能 合成数据 虚幻合成数据

Jetbrains PhpStorm 2023中文破解版下载 mac/win

影影绰绰一往直前

PhpStorm 2023下载 PhpStorm 2023注册码 Phpstorm下载

fcpx视频剪辑 Final Cut Pro中文破解版下载

影影绰绰一往直前

Final Cut Pro下载 Final Cut Pro中文版 Final Cut Pro破解版

赛题招募令:总投入超5000万元,诚邀您免费出题

开放原子开源基金会

行业独家 | 腾讯云ES:PB日志查询大提速,自治索引查询裁剪详解!

腾讯云大数据

ES

软件测试/测试开发丨如何利用ChatGPT自动生成测试用例思维导图

测试人

软件测试

最新intellij idea 2023 Mac破解版 附安装教程

影影绰绰一往直前

IntelliJ IDEA 2023下载 IntelliJ IDEA 2023破解 IntelliJ IDEA 2023最新 IntelliJ IDEA 2023中文

Macs Fan Control Pro for mac(电脑风扇控制软件) v1.5.16永久激活版

mac

电脑风扇控制软件 苹果mac Windows软件 Macs Fan Control

TikTok 与 YouTube:哪个更适合您?

九凌网络

合成数据的被需要的5 个重要原因

3D建模设计

人工智能 合成数据 虚幻合成数据

PubDef:使用公共模型防御迁移攻击

这我可不懂

PubDef

领跑中国APM市场,博睿数据蝉联第一!

博睿数据

运维 监控 可观测性

和鲸为神经计算建模及编程培训班提供支持,聚焦学术前沿,助力人才培养

ModelWhale

编程 培训 脑科学 建模 计算神经科学

云网翼连智算未来| 重温天翼云全球行•亚太站精彩盛况

天翼云开发者社区

云计算

如何在HarmonyOS对数据库进行备份,恢复与加密

HarmonyOS开发者

HarmonyOS

第二届开放原子开源基金会OpenHarmony技术大会圆满举行

开放原子开源基金会

开源 OpenHarmony

NFT数字藏品(交易平台)系统开发

西安链酷科技

数字货币 dapp 去中心化 钱包系统开发 交易所

国内首个电力物联操作系统正式发布,实现电力设备万物互联、海量数据互通共享

开放原子开源基金会

开源

基金会旗下铜锁/Tongsuo项目官宣密钥管理工具RustyVault正式开源

开放原子开源基金会

开源 铜锁

“数据”如何影响“业务决策” ?

高端章鱼哥

数字化 数据可视化

「支持M1/M2」Xcode for Mac v14.3.1正式版

影影绰绰一往直前

Xcode for Mac Xcode Mac版 Xcode下载

第十五届全国交通运输领域青年学术会议,和鲸 Heywhale 携手龙船科技联合发布科研服务解决方案

ModelWhale

数据 服务 解决方案 交通运输 科研

如何释放React Hooks的力量

树上有只程序猿

Hooks React Hooks

云图说|分钟级构建业务大屏——Astro大屏应用

华为云开发者联盟

云计算 华为云 华为云开发者联盟 华为云云图说 华为云Astro

OpenSource I 探索EKS的网络基础:amazon-vpc-cni-k8s + Calico_语言 & 开发_亚马逊云科技 (Amazon Web Services)_InfoQ精选文章