华为云云原生钻石集训营 第六课:Kubernetes网络架构原理深度剖析(下)

网友投稿 620 2022-05-29

课程目标:

学完本课程后,您将能够:

1.理解Ingress Controller工作机制

2.理解K8S CNI接口机制与插件实现原理

3.容器网络相关的最佳实践及问题经验分享

目录:

1. Ingress Controller机制剖析

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

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

共享DNS最佳实践原理         POD安全组         源地址保持问题案例           响应延时问题分析案例

前面的课程中大家了解了kubernetes容器网络和Service的基本模型

Kubernetes基本网络模型剖析

Service基本网络模型剖析

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

华为云云原生钻石集训营 第六课:Kubernetes网络架构原理深度剖析(下)

本次课程将为你讲解Ingress和容器网络CNI在Kubernetes是如何实现的,接下来是几个最佳实践和典型问题案例。

Ingress API接口模型与演进

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

CNI接口与插件能力模型

1.JSON-based 配置

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

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

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

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

Plugins: https:/lgithub.com/containernetworking/plugins

CNI在K8S中是如何工作的

CNI调用过程:

1.CNI支持的接口命令:ADD, DEL, CHECK and VERSION

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

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

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

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

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

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

网络/容器网络因为其本身的复杂性,以及很多侧重软件开发的童鞋并不熟悉网络,导致和网络/容器网络相关问题的定位、分析和解决都比较困难,很多时候会有无从下手之感。

1. 目标主机上没有到源主机的路由,导致ping包没有返回 - route

2. Pod可以跨节点访问docker0 IP,但是不能跨节点访问Pod IP - ip_forward

3. Flannel隧道内部payload的源地址改变为flannel0设备地址 - iptables

4. 从Docker容器内可以ping通宿主机IP,但ping不通其它主机 - iptables

5. K8s集群掉电,导致所有的服务不能访问 - flannel & docker0

6. K8s Master主机上ping不通Node节点上的docker0和容器,但在Node上可以ping通 - iptables

引起网络不通的主要原因有:

路由(route)问题。这类问题多如牛毛。常见的是目标主机到源主机的路由不通。

防火墙(iptables)问题。这类问题多如牛毛,但iptables比route更复杂。主要有:(1)防火墙filter表的规则阻止icmp包;(2)防火墙NAT表的SNAT/MASQUERADE。

系统内核参数问题。较少,更隐蔽,现象怪异得会让你怀疑自己的智商和人生。例如ip_forward,rp_filter等。

Linux设备参数设置。较少,更隐蔽,现象怪异得会让你怀疑自己的智商和人生。例如MTU等。 至于IP地址配置错误等问题就太明显了,不在讨论之列。

总结:

本课程讲解重点

1: Ingress架构原理

2:CNI架构流程和高级功能剖析

3:云原生网络最佳实践与问题分析案例

参考链接:

相关内容的华为云官网链接:

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

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

Kubernetes官方文档:

Service: https://kubernetes.io/docs/concepts/services-networking/service/

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

Kubernetes 云原生 网络

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:DevOps国际峰会| 华为AIOps助力ICT智能化运维转型
下一篇:Chrome 快捷键 整理版
相关文章