栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

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

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

文章目录

前言一、Ingress Controller机制剖析

1.Ingress API接口模型与演进2.Ingress Controller架构剖析 二、CNI接口机制与插件实现原理

1.CNI接口与插件能力模型2.CNI在K8S中是如何工作的3.CNI高级特性举例 三、云原生网络最佳实践

1.IDC与CEE集群共享DNS方案2.微服务容器实例访问云数据库等中间件的网络隔离方案 四、云原生网络典型问题案例

1.源地址保持的"锅"?2.时延去哪儿了? 总结

1.ingress的理解2.CNI的理解3.结尾


前言

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

Kubernetes基本网络模型剖析Service基本网络模型剖析华为云CCE Yantse网络方案和架构剖析

本文主要介绍

Ingress Controller机制剖析CNI接口机制与插件实现原理云原生网络最佳实践与典型问题案例 一、Ingress Controller机制剖析 1.Ingress API接口模型与演进

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

SSL终结认证鉴权IP白名单限流日志与监控响应缓存Web应用防火墙GZIP压缩静态内容服务

2.Ingress Controller架构剖析

二、CNI接口机制与插件实现原理 1.CNI接口与插件能力模型

1.JSON-based配置
2.支持内置标准配置关键字和插件扩展关键字
3.通过标准输入stdin向插件二进制传入配置
4.配置可以保存在磁盘也可以由运行时生成

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/cniPluains: 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.多种插件或能力链式调用,失败即终止,成功则继续,由将最终插件结果返回给运行时

3.CNI高级特性举例


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

https://github.com/k8snetworkplumbingwg/multus-cnihttps://github.com/cni-genie/CNl-Genie 三、云原生网络最佳实践 1.IDC与CEE集群共享DNS方案

某企业APP微服务:

管理后台部署在华为云CCE集群内容审核服务部署在企业原有的IDC使用华为云图像识别服务

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


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

CCETurbo容器安全组:

按访问控制要求为访问端和被访 问端创建相应的安全组及关联规 则将相应的安全组关联到被访问服 务的实例网口,如:SG-RDS创建安全组CRD对象,通过选择 POD标签,将安全组ID关联到特 定的微服务工作负载的POD网口

四、云原生网络典型问题案例 1.源地址保持的"锅"?

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

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 在增加一层负载均衡转发)

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.htmlhttps://support.huaweicloud.com/usermanual-cce/cce_01_0094.html

Kubernetes官方文档:

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


本文整理自华为云社区【内容共创】活动第13期。

查看活动详情:https://bbs.huaweicloud.com/blogs/330939

相关任务详情:任务24.华为云云原生钻石课程07:Kubernetes网络架构原理深度剖析(下)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/740254.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号