建立网站大约多少钱,seo专员工作容易学吗,aws wordpress ssl,python进行网站开发前言 上一章讲了集群控制器的一个大概的原理#xff0c;这一章讲一下集群网络。网络是集群通信的载体#xff0c;因为该书是阿里云团队出品的#xff0c;所以也以阿里云的集群网络方案为例#xff0c;其他云厂商的网络集群方案一般来说也大同小异。所以通过本章的学习…前言 上一章讲了集群控制器的一个大概的原理这一章讲一下集群网络。网络是集群通信的载体因为该书是阿里云团队出品的所以也以阿里云的集群网络方案为例其他云厂商的网络集群方案一般来说也大同小异。所以通过本章的学习能对k8s集群网络的搭建有个大概的理解也算是有所收获。 本章分为两部分 网络搭建过程基于网络的通信 网络搭建过程
阿里云集群网络方案有2中一种是flannel方案一种是基于calico和弹性网卡eni的terway方案。terway方案相较于flannel支持Pod弹性网卡和NetworkPolicy功能。 概览
我们先看一下一个完整的集群网络的拓扑图的样子 该图可以划分为3个部分1. 集群CIDR 2.集群CIDR的子网段podCIDR 3. 每个Pod的IP 下面我们来看具体搭建过程
初始阶段
初始阶段需要创建VPC和ECS创建完VPC和ECS后ECS可以从VPC网段里分配到IP地址 集群阶段
在初始资源基础上利用集群控制台得到集群CIDR。该值会传给集群节点脚本provision),然后被脚本传给kubeadm最后kubeadm将该参数写入集群控制器Pod的yaml文件 kube-controller-manager.yaml
总结集群CIDR通过kubeadm写入kube-controller-manager.yaml 拿到集群CIDR后kubelet会给节点分配PodCIDR 节点阶段
在上溯节点PodCIDR完成后集群下发flanneId刀每个阶段上从而搭建可以给Pod使用的网络框架
集群通过Cloud Controller Manager给VPC配置路由表项路由把目标为PodCIDR的网络包发到对应的ECS上创建虚拟网桥cni0以及相关路由 Pod阶段
在前面三个阶段集群已经为Pod搭建了网络通信的干道这时如果集群把一个Pod调度到节点上kubelet会通过flnnel cni为这个Pod本身创建
网络命名空间veth 设备
然后把veth设备假如cni0虚拟网桥里并为Pod内的veth配置IP地址 基于网络的通信
本地通信
本地通信指同Pod内部不同的容器之间通信。这些容器共享一个网络协议栈所以通过lookback设备即可。
同节点Pod的通信
同节点Pod之间的通信是cni0虚拟网桥内部的通信也就相当于一个二层的局域网内部设备通信 跨节点Pod的通信
跨节点Pod之间通信则通过cni0网桥的网关流转到节点上经过节点的eth0发给VPC路由这个过程不会封包。VPC路由通过路由表将数据包发给对应的ECS节点再到目的Pod Pod和Pod网络之外的实体通信
Pod与非Pod网络的实体通信通过节点上的iptables规则做snat该规则就是flanneId依据命令行——ip-masq选项做的配置 iptables iptables 是 Linux 内核中的一个防火墙工具用于管理网络数据包的过滤和 NAT网络地址转换等功能。它基于规则链来处理数据包规则链是一系列规则的集合这些规则定义了如何处理不同类型的网络数据包。例如用户可以使用 iptables 规则允许或拒绝来自特定 IP 地址的数据包访问本地服务器或者将内部网络的私有 IP 地址转换为公有 IP 地址以实现互联网访问。在 Kubernetes 中iptables 用于实现集群内部的网络策略和服务的流量转发。Kubernetes 的网络模型依赖于 iptables 来设置复杂的规则以确保不同容器之间的通信安全和正确的流量路由。