一文带你理解云原生( 五 )


而这个端口唯一的作用 , 就是接收流入的数据包 , 然后把这些数据包全部交给对应的网桥 , 由网桥完成转发或者丢弃 。
一文带你理解云原生
本文插图
一文带你理解云原生
本文插图
Veth 提供一种连接两个 network namespace 的方法 。 Veth 是 Linux 中一种虚拟以太设备 , 总是成对出现常被称为 Veth pair 。
可以实现点对点的虚拟连接 , 可看成一条连接两张网卡的网线 。 一端网卡在容器的 NetworkNamespace 上 , 另一端网卡在宿主机 Network Namespace 上 。 任何一张网卡发送的数据包 , 都可以对端的网卡上收到 。
一文带你理解云原生
本文插图
在物理网络中 , 如果需要连接多个主机 , 会用交换机 。 在 Linux 中 , 能够起到虚拟交换机作用的网络设备 , 是网桥(Bridge) 。 它是一个工作在数据链路层的设备 , 主要功能是根据 MAC 地址学习来将数据包转发到网桥的不同端口(Port)上 。
Bridge 网桥类似交换机 , 两个以上 namespace 接入同一个二层网络 。 veth pair 一端虚拟网卡加入到 namespace , 另一端到网桥上 。
一文带你理解云原生
本文插图
路由 routing是通过互联的网络把信息从源地址传输到目的地址的活动 , 发生在 OSI 模型的第三层(网络层) 。 Linux 内核提供 IPForwarding 功能 , 实现不同子网接口间转发 IP 数据包 。
路由器工作原理:
路由器上有多个网络接口 , 每个网络接口处于不同的三层子网上 。
根据内部路由转发表将从一个网络接口中收到的数据包转发到另一个网络接口 , 实现不同三层子网间互通 。
3 容器编排-Kubernetes
3.1 概述&架构&核心组件
我认为 Kubernetes 最大成功:让容器应用进入大规模工业生产 。
Kubernetes 的提供特性 , 几乎覆盖一个分布式系统在生产环境运行的所有关键事项 。 包括:
Automated rollouts and rollbacks(自动化上线和回滚)
使用 Kubernetes 描述已部署容器的所需状态 , 受控的速率将实际状态更改为期望状态 。
Self-healing(自我修复)
Kubernetes 重新启动失败的容器、替换容器、杀死不响应用户定义的运行状况检查的容器 , 并且在准备好服务之前不将其通告给客户端 。
Service discovery and load balancing(服务发现与负载均衡)
Kubernetes 可以使用 DNS 名称或自己的 IP 地址公开容器 , 如果进入容器的流量很大 , Kubernetes 可以负载均衡并分配网络流量 , 从而实现部署稳定 。