【云驻共创】华为云云原生之Kubernetes网络架构原理深度剖析(下)

简介: 【云驻共创】华为云云原生之Kubernetes网络架构原理深度剖析(下)

前言

上一篇文章大家了解了kubernetes容器网络和Service的基本模型


Kubernetes基本网络模型剖析

Service基本网络模型剖析

华为云CCE Yantse网络方案和架构剖析

本文主要介绍


Ingress Controller机制剖析

CNI接口机制与插件实现原理

云原生网络最佳实践与典型问题案例

一、Ingress Controller机制剖析

1.Ingress API接口模型与演进

Ingress为K8S集群内服务提供聚合统一的访问入口。除了提供丰富的七层(HTTP)路由功能外,Ingress实现中也提供了丰富服务治理能力,但不同实现(IngressClass)在部署方式和功能特性上存在差异。


SSL终结

认证鉴权

IP白名单

限流

日志与监控

响应缓存

Web应用防火墙

GZIP压缩

静态内容服务

image.png


2.Ingress Controller架构剖析


image.png

二、CNI接口机制与插件实现原理

1.CNI接口与插件能力模型

1.JSON-based配置

2.支持内置标准配置关键字和插件扩展关键字

3.通过标准输入stdin向插件二进制传入配置

4.配置可以保存在磁盘也可以由运行时生成

image.png

CNI配置样例:

{
  "name":
  "mynet",
  "type": "bridge"
  "bridge": "mynete",
  "isDefaultGateway": true,
  "forceAddress": false,
  "ipMasq": true,
  "hairpinMode": true,
  "ipam":{
  "type": "host-local",
  "subnet":"10.10.0.0/16"
  }
}

相关网址:


SPEC:https://github.com/containernetworking/cni

Pluains: https://github.com/containernetworking/plugins


2.CNI在K8S中是如何工作的

CNI调用过程:


1.CNI支持的接口命令:


ADD,DEL,CHECK and VERSION

2.插件名即是可执行文件名

3.运行时根据网络操作发起相应的插件进程命令

4.通过标准输入传入JSON格式的配置

5.指定容器的特殊配置也从标准输入stdin传入

6.插件的返回结果从标准输出传回stdout

7.多种插件或能力链式调用,失败即终止,成功则继续,由将最终插件结果返回给运行时

image.png



3.CNI高级特性举例

image.png

CNI支持多网口、多网络平面方案:


https://github.com/k8snetworkplumbingwg/multus-cni

https://github.com/cni-genie/CNl-Genie

三、云原生网络最佳实践

1.IDC与CEE集群共享DNS方案

某企业APP微服务:


管理后台部署在华为云CCE集群

内容审核服务部署在企业原有的IDC

使用华为云图像识别服务

CCE所在的VPC和原有的IDC之间通过专线进行连接的图示如下:

image.png


2.微服务容器实例访问云数据库等中间件的网络隔离方案

CCETurbo容器安全组:


按访问控制要求为访问端和被访 问端创建相应的安全组及关联规 则

将相应的安全组关联到被访问服 务的实例网口,如:SG-RDS

创建安全组CRD对象,通过选择 POD标签,将安全组ID关联到特 定的微服务工作负载的POD网口

image.png


四、云原生网络典型问题案例

1.源地址保持的"锅"?

容器服务通过ELB访问集群内的其他服务出现时延陡增异常

image.png


2.时延去哪儿了?

某客户从虚机迁移到CCE容器集群:


业务容器化部署,通过LoadBalance服务由ELB对外暴露

压测工具测试结果显示,同等压力下平均响应23ms,比原 虚机部署性能下降5ms,与LB的监控数据一致

业务监控普罗显示,业务的平均响应时延15ms,怀疑8ms 由于网络转发时延造成



总结

1.ingress的理解

ingress相当于一个7层的负载均衡器,是k8s对反向代理的一个抽象。可以理解成在 Ingress 里建立一个个映射规则 , ingress Controller 通过监听 Ingress这个api对象里的配置规则并转化成 Nginx 的配置(kubernetes声明式API和控制循环) , 然后对外部提供服务。ingress包括:ingress controller和ingress resources


ingress controller: 核心是一个deployment,实现方式有很多,比如nginx, Contour,Haproxy, trafik, Istio,需要编写的yaml有:Deployment, Service, ConfigMap,ServiceAccount(Auth),其中service的类型可以是NodePort或者LoadBalancer。

ingress resources: 这个就是一个类型为Ingress的k8s api对象了,这部分则是面向开发人员。

Kubernetes给出的方案就是Ingress,Ingress包含了两大主件Ingress Controller和Ingress。


Ingress解决的是新的服务加入后,域名和服务的对应问题,基本上是一个ingress的对象,通过yaml进行创建和更新进行加载。

Ingress Controller是将Ingress这种变化生成一段Nginx的配置,然后将这个配置通过Kubernetes API写到Nginx的Pod中,然后reload.(注意:写入 nginx.conf 的不是service的地址,而是service backend 的 pod 的地址,避免在 service 在增加一层负载均衡转发)

image.png


2.CNI的理解

CNI的全称是Container Network Interface,Google和CoreOS联合定制的网络标准,这个标准基于rkt实现多容器通信的网络模型。


生产中的网络环境可能是多种多样的,有可能是二层连通的,也可能用的公有云的环境,所以各个厂商的网络解决方案百花争鸣,这些解决方案也不能全都集成在kubelet的代码中,所以CNI就是能让各个网络厂商对接进来的接口。


3.结尾

本文介绍的内容主要有:Ingress Controller机制剖析、CNI接口机制与插件实现原理、云原生网络最佳实践、云原生网络典型问题案例。通过以上讲解相信大家对Kubernetes网络架构理解更深了,Kubernetes网络架构原理深度剖析内容就到此完结,谢谢光看。


华为云官网链接:


https://support.huaweicloud.com/usermanual-cce/cce_01_0249.html

https://support.huaweicloud.com/usermanual-cce/cce_01_0094.html

Kubernetes官方文档:


. Ingress: https://kubernetes.io/docs/concepts/services-networking/ingress/

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
运维 Kubernetes Cloud Native
智联招聘 × 阿里云 ACK One:云端弹性算力颠覆传统 IDC 架构,打造春招技术新范式
在 2025 年春季招聘季的激战中,智联招聘凭借阿里云 ACK One 注册集群与弹性 ACS 算力的深度融合,成功突破传统 IDC 机房的算力瓶颈,以云上弹性架构支撑千万级用户的高并发访问,实现招聘服务效率与稳定性的双重跃升。
|
8月前
|
机器学习/深度学习 PyTorch TensorFlow
卷积神经网络深度解析:从基础原理到实战应用的完整指南
蒋星熠Jaxonic,深度学习探索者。深耕TensorFlow与PyTorch,分享框架对比、性能优化与实战经验,助力技术进阶。
|
运维 Kubernetes 前端开发
如何用 eBPF 实现 Kubernetes 网络可观测性?实战指南
本文深入探讨了Kubernetes网络观测的挑战与eBPF技术的应用。首先分析了传统工具在数据碎片化、上下文缺失和性能瓶颈上的局限性,接着阐述了eBPF通过零拷贝观测、全链路关联和动态过滤等特性带来的优势。文章进一步解析了eBPF观测架构的设计与实现,包括关键数据结构、内核探针部署及生产环境拓扑。实战部分展示了如何构建全栈观测系统,并结合NetworkPolicy验证、跨节点流量分析等高级场景,提供具体代码示例。最后,通过典型案例分析和性能数据对比,验证了eBPF方案的有效性,并展望了未来演进方向,如智能诊断系统与Wasm集成。
593 0
|
机器学习/深度学习 存储 算法
NoProp:无需反向传播,基于去噪原理的非全局梯度传播神经网络训练,可大幅降低内存消耗
反向传播算法虽是深度学习基石,但面临内存消耗大和并行扩展受限的问题。近期,牛津大学等机构提出NoProp方法,通过扩散模型概念,将训练重塑为分层去噪任务,无需全局前向或反向传播。NoProp包含三种变体(DT、CT、FM),具备低内存占用与高效训练优势,在CIFAR-10等数据集上达到与传统方法相当的性能。其层间解耦特性支持分布式并行训练,为无梯度深度学习提供了新方向。
838 1
NoProp:无需反向传播,基于去噪原理的非全局梯度传播神经网络训练,可大幅降低内存消耗
|
8月前
|
监控 负载均衡 安全
WebSocket网络编程深度实践:从协议原理到生产级应用
蒋星熠Jaxonic,技术宇宙中的星际旅人,以代码为舟、算法为帆,探索实时通信的无限可能。本文深入解析WebSocket协议原理、工程实践与架构设计,涵盖握手机制、心跳保活、集群部署、安全防护等核心内容,结合代码示例与架构图,助你构建稳定高效的实时应用,在二进制星河中谱写极客诗篇。
WebSocket网络编程深度实践:从协议原理到生产级应用
|
9月前
|
机器学习/深度学习 人工智能 算法
卷积神经网络深度解析:从基础原理到实战应用的完整指南
蒋星熠Jaxonic带你深入卷积神经网络(CNN)核心技术,从生物启发到数学原理,详解ResNet、注意力机制与模型优化,探索视觉智能的演进之路。
784 11
|
9月前
|
机器学习/深度学习 算法 搜索推荐
从零开始构建图注意力网络:GAT算法原理与数值实现详解
本文详细解析了图注意力网络(GAT)的算法原理和实现过程。GAT通过引入注意力机制解决了图卷积网络(GCN)中所有邻居节点贡献相等的局限性,让模型能够自动学习不同邻居的重要性权重。
1619 0
从零开始构建图注意力网络:GAT算法原理与数值实现详解
|
8月前
|
机器学习/深度学习 自然语言处理 监控
23_Transformer架构详解:从原理到PyTorch实现
Transformer架构自2017年Google发表的论文《Attention Is All You Need》中提出以来,彻底改变了深度学习特别是自然语言处理领域的格局。在短短几年内,Transformer已成为几乎所有现代大型语言模型(LLM)的基础架构,包括BERT、GPT系列、T5等革命性模型。与传统的RNN和LSTM相比,Transformer通过自注意力机制实现了并行化训练,极大提高了模型的训练效率和性能。
1948 0
|
9月前
|
安全 测试技术 虚拟化
VMware-三种网络模式原理
本文介绍了虚拟机三种常见网络模式(桥接模式、NAT模式、仅主机模式)的工作原理与适用场景。桥接模式让虚拟机如同独立设备接入局域网;NAT模式共享主机IP,适合大多数WiFi环境;仅主机模式则构建封闭的内部网络,适用于测试环境。内容简明易懂,便于理解不同模式的优缺点与应用场景。
1311 0

推荐镜像

更多