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 网络问题排查,值不值得做一个开源工具实现?

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
17天前
|
机器学习/深度学习 人工智能
类人神经网络再进一步!DeepMind最新50页论文提出AligNet框架:用层次化视觉概念对齐人类
【10月更文挑战第18天】这篇论文提出了一种名为AligNet的框架,旨在通过将人类知识注入神经网络来解决其与人类认知的不匹配问题。AligNet通过训练教师模型模仿人类判断,并将人类化的结构和知识转移至预训练的视觉模型中,从而提高模型在多种任务上的泛化能力和稳健性。实验结果表明,人类对齐的模型在相似性任务和出分布情况下表现更佳。
44 3
|
30天前
|
Ubuntu 网络安全 图形学
Ubuntu学习笔记(二):ubuntu20.04解决右上角网络图标激活失败或者消失,无法连接有线问题。
在Ubuntu 20.04系统中解决网络图标消失和无法连接有线网络问题的方法,其中第三种方法通过检查并确保Windows防火墙中相关服务开启后成功恢复了网络连接。
350 0
Ubuntu学习笔记(二):ubuntu20.04解决右上角网络图标激活失败或者消失,无法连接有线问题。
|
1月前
|
Kubernetes 持续交付 微服务
深入浅出:理解 Kubernetes 核心概念
Kubernetes 是一个由 Google 开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。它已成为微服务架构下的行业标准。本文深入浅出地介绍了 Kubernetes 的核心概念和组件,包括 Master 和 Node 组件、Pod、Service、Deployment 等,并提供了基本操作示例和实战应用,帮助你更好地管理和利用容器环境。
|
10天前
|
网络协议 网络安全 数据安全/隐私保护
计算机网络概念:网关,DHCP,IP寻址,ARP欺骗,路由,DDOS等
【10月更文挑战第27天】计算机主机网关的作用类似于小区传达室的李大爷,负责将内部网络的请求转发到外部网络。当小区内的小不点想与外面的小明通话时,必须通过李大爷(网关)进行联系。网关不仅帮助内部设备与外部通信,还负责路由选择,确保数据包高效传输。此外,网关还参与路由表的维护和更新,确保网络路径的准确性。
29 2
|
1天前
|
Kubernetes 监控 Java
如何设置 Kubernetes的垃圾回收策略为定期
如何设置 Kubernetes的垃圾回收策略为定期
|
1天前
|
Kubernetes Java 调度
Kubernetes中的Pod垃圾回收策略是什么
Kubernetes中的Pod垃圾回收策略是什么
|
1月前
|
Kubernetes 网络协议 网络安全
k8s中网络连接问题
【10月更文挑战第3天】
103 7
|
9天前
|
存储 Kubernetes 调度
K8S中的核心概念
【10月更文挑战第26天】云原生环境下的安全问题易被忽视,导致潜在风险。应用层渗透测试和漏洞扫描是检测安全的关键,尤其是对于CVE漏洞的修复。然而,常见误解认为安全由外部防护处理且不易引入问题。
|
1月前
|
Kubernetes 应用服务中间件 nginx
搭建Kubernetes v1.31.1服务器集群,采用Calico网络技术
在阿里云服务器上部署k8s集群,一、3台k8s服务器,1个Master节点,2个工作节点,采用Calico网络技术。二、部署nginx服务到k8s集群,并验证nginx服务运行状态。
366 1
|
1月前
|
Kubernetes 应用服务中间件 nginx
k8s学习--kubernetes服务自动伸缩之水平收缩(pod副本收缩)VPA策略应用案例
k8s学习--kubernetes服务自动伸缩之水平收缩(pod副本收缩)VPA策略应用案例
下一篇
无影云桌面