Kubernetes 网络概念及策略控制|学习笔记

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
简介: 快速学习 Kubernetes 网络概念及策略控制

开发者学堂课程【Kubernetes 入门  Kubernetes 网络概念及策略控制】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/51/detail/1019


Kubernetes 网络概念及策略控制


内容介绍:

一、Kubernetes 基本网络模型

二、Netns 探秘

三、主流网络方案简介

四、Network Policy 的用处

五、思考时间

 

一、Kubernetes 基本网络模型

1、基本法:约法三章+四大目标

l Kubernetes 对于 Pod 间的网络没有任何限制,只需满足如下「三个基本条件」:

l 所有 Pod 可以与其他 Pod 直接通信,无需显式使用 NAT

l 所有 Node 可以与所有 Pod 直接通信,无需显式使用 NAT

l Pod 可见的IP地址确为其他 Pod 与其通信时所用,无需显式转换

l 基于以上准入条件,我们在审视一个网络方案的时候,需要考虑如下

「四大目标」︰

l 容器与容器间的通信

l pod 与 Pod 之间的通信

l Pod 与 Service 间的通信

l 外部世界与 Service 间的通信

2、对基本约束的解释

容器与其宿主存在寄生关系,从而在实现上,容器网络方案可分为Underlay/Overlay 两大派别,其主要的差异在于是否与 Host 网络同层,这样对于微服务发现及治理,容器可访问方式都造成很大的差异,所以社区的同学以 perPodperIP 这种简单武断的模型,摈弃了显示端口映射等 NAT 配置,统一了容器网络对外服务的视角。

 

二、Netns 探秘

1、Netns 究竟实现了什么

Network namespace 是实现网络虚拟化的内核基础,创建了隔离的网络空间

l 拥有独立的附属网络设备( lo、veth 等虚设备/物理网卡)

l 独立的协议栈,IP 地址和路由表

l iptables 规则

l ipvs 等

nsproxy 相当于运行环境

image.png

2、Pod 与 Netns 的关系

每个 Pod 拥有独立的 Netns 空间,Pod 内的 Container 共享该空间,可通过 Loopback 接口 实现通信,或通过共享的 Pod-IP 对外提供服务。别忘记,宿主上还有个 Root Netns,可以看做一个特殊的容器空间。

 

三、主流网络方案简介

1、典型容器网络实现方案

l 容器网络可能是 Kubernetes 领域最为百花齐放的一个领域,依照 IaaS 层的配置、外部物理网络的设备、性能 or 灵活优先,可以有不同的实现︰

l Flannel,最为普遍的实现,提供多种网络 backend 实现,覆盖多种场景

l Calico,采用 BGP 提供网络直连,功能丰富,对底层网络有要求

l Canal (Flannel for network + Calico for firewalling),嫁接型创新项目

l Cilium,基于 eBPF 和 XDP 的高性能 Overlay 网络方案

l Kube-router,同样采用 BGP 提供网络直连,集成基于 LVS 的负载均衡能力

l Romana,采用 BGP or OSPF 提供网络直连能力的方案

l WeaveNet,采用 UDP 封装实现 L2Overlav,支持用户态(慢,可加密)/内核态(快,不能加宓)两种实现

2、Flannel 方案

Flannel 是目前使用最为普遍的方案,通过将 backend 机制独立,它目前已经支持多种数据路径,也可以适用于 overlay/underlay 等多种场景,封装可以选用用户态 udp(纯用户态实现),内核 Vxlan(性能好),如集群规模不大,处于同一二层域,也可以选择 host-gw 方式。

 

四、Network Policy 的用处

1、Network Policy 基本概念

Network Policy 提供了基于策略的网络控制,用于隔离应用并减少攻击面。它使用标签选择器模拟传统的分段网络,并通过策略控制它们之间的流量以及来自外部的流量。

在使用 Network Policy 之前,需要注意︰

.apiserver 开启 extensions/v1beta1/networkpolicies

·网络插件要支持 Network Policy,如 Calico、Romana、Weave Net 和 trireme 等

2、配置实例

功能∶通过使用标签选择器(包括 namespaceSelector 和 podSelector )来控制 Pod 之间的流量。

要决定三件事:

l 控制对象︰通过 spec 字段,podSelector 等条件筛选;

l 流方向:Ingress (入 Pod 流量)+from ,

Egress(出 Pod 流量)+to ;

l 流特征︰对端(通过 name/pod Selector ) ,

IP 段( ibBlock ) ,

协议(protocol ),端口( port )

3、小节总结

l Pod 在容器网络中的核心概念是 IP,每个 Pod 必须有内外视角一致的独立 IP 地址

l 影响容器网络性能的关键是拓扑设计,也就数据包端到端的路径设计

l 牢记 Overlay/Underlay 下各种网络方案的设计选择,如果不知道,可以这样选∶普适性最强——Flannel-VxLan,2层可直连——Calico/Flannel-Hostgw

l Network Policy 是个强大的工具,可以实现 I/Engress 的流量精确控制,关键是选择好 PodSelector,定义好流特征


五、思考时间

思考一下

l 为什么网络接口标准化了(CNI ),而网络方案没有标准化?

l 为什么 Network Policy 没有交给一个标准 Controller 来实现,而是交给方案提供方?

l 能不能完全不用 Net-dev 型的设备,实现一个容器网络?

l 网络问题排查,值不值得做一个开源工具实现?

相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
3天前
|
数据采集 监控 安全
网络安全中的威胁情报与风险管理:技术解析与策略
【7月更文挑战第4天】网络安全中的威胁情报与风险管理是保障网络安全的重要手段。通过收集、分析和处理各种威胁情报,可以及时发现并应对潜在的网络威胁;而通过科学的风险管理流程,可以构建稳固的防御体系,降低安全风险。未来,随着技术的不断进步和应用场景的拓展,威胁情报与风险管理技术将不断发展和完善,为网络安全提供更加坚实的保障。
|
3天前
|
安全 算法 网络安全
网络安全与信息安全:保护数据的关键策略
【7月更文挑战第4天】在数字化时代,网络安全和信息安全已成为组织和个人不可忽视的议题。本文将深入探讨网络安全漏洞的成因、当前加密技术的应用以及提升安全意识的重要性。文章旨在为读者提供一套综合性的知识体系,帮助他们更好地理解和应对网络环境中的安全威胁。
10 3
|
3天前
|
云安全 机器学习/深度学习 安全
云计算与网络安全的协同演进:挑战、策略与未来展望
随着数字化转型的深入,云计算已成为企业信息技术架构的核心。然而,云服务的快速发展同时带来了前所未有的网络安全挑战。本文通过分析云计算环境中的安全威胁,探讨了当前网络安全的最佳实践和策略,并预测了未来技术发展对云安全的影响。文章旨在为读者提供一个关于如何在享受云计算便利的同时,有效管理和缓解网络安全风险的全面视角。
|
3天前
|
云安全 安全 网络安全
云计算与网络安全:技术融合下的安全挑战与应对策略
在数字化转型的浪潮中,云计算作为一种强大的技术推动力,正日益成为企业IT架构的核心。然而,随着云服务模式的普及,网络安全问题也变得愈加复杂。本文旨在深入探讨云计算环境下网络安全的挑战,并基于最新的研究成果和统计数据,提出有效的安全策略和技术解决方案。通过对云计算环境中潜在风险的系统分析,结合先进的网络安全技术,如加密算法、身份认证机制等,文章将阐述如何在享受云计算带来的便利的同时,保障数据的安全性和完整性。
|
3天前
|
存储 安全 网络安全
云端守护者:云计算时代的网络安全策略
【7月更文挑战第4天】在数字化浪潮中,云计算以其灵活性和可扩展性成为企业数字化转型的重要推手。然而,随着数据和应用逐渐迁移到云端,网络安全问题也变得日益严峻。本文将深入探讨云计算与网络安全的交织点,分析云服务中的安全风险,并针对这些挑战提出有效的防御措施。文章旨在为读者提供一套全面的云计算网络安全指南,帮助企业构建更加坚固的信息安全防线。
7 1
|
5天前
|
人工智能 安全 网络安全
云计算时代的网络安全挑战与应对策略
随着云计算技术的飞速发展,其在各行各业的应用日益广泛。然而,云服务在带来便利的同时,也引入了新的网络安全问题。本文将探讨云计算环境下的网络安全挑战,包括数据泄露、身份认证、服务可用性等方面的问题,并分析当前网络安全技术如何应对这些挑战。通过引用最新的科研研究和权威统计数据,本文旨在提供一个科学严谨的视角,以理解云计算与网络安全之间的复杂关系,并提出有效的安全策略和建议。
|
5天前
|
Kubernetes 负载均衡 Cloud Native
Kubernetes经典理论与核心概念解析
Kubernetes经典理论与核心概念解析
|
2天前
|
JSON Kubernetes 网络架构
Kubernetes CNI 网络模型
【7月更文挑战第5天】CNI定义了容器运行时与插件间的简单交互,允许容器加入多个网络,通过JSON配置。
|
3天前
|
监控 安全 网络安全
云计算时代的网络安全挑战与应对策略
在数字化浪潮的推动下,云计算已成为信息技术领域的一颗璀璨明星。然而,随着其快速发展和应用范围的扩大,网络安全问题亦随之凸显。本文旨在探讨云计算环境下的网络安全挑战,并提出相应的解决策略。通过分析云服务模型、网络威胁类型及信息安全管理实践,文章揭示了云计算和网络安全之间的复杂关系,并基于最新研究数据,提出了一系列针对性的安全措施和建议。目的在于为云计算服务提供商和使用者提供一套全面的安全框架,以应对不断演变的网络威胁,保障数据和信息的安全。
9 0
|
4天前
|
数据采集 存储 缓存
使用Scrapy进行网络爬取时的缓存策略与User-Agent管理
使用Scrapy进行网络爬取时的缓存策略与User-Agent管理