[TOC]
### **整体架构图**
* ipblock-initializer:Deployment起的一个容器,使用hostnet,容器的IP范围作为它的启动参数,它负责把这个IP范围创建成一个CR对象名字叫default
* limdiag-node:以daemonset起的容器, 它有一个容器:一个initial-container叫install-cni;一个limdiag-node负责创建cni网桥把物理网卡桥接到网桥上
* CNI:在每个节点上,会有两个可执行文件,limdiag和limdiag-ipam
* limdiag:该二进制文件负责创建veth-pair,把容器连到网桥上,设置容器内的IP,路由,DNS信息;它会调用limdiag-ipam获取IP
* limdiag-ipam:该二进制文件负责给容器分配IP,IP的分配机制见后面
### **IPAM**
当ipblock-initializer初始化了IPblock对象后,limdiag-ipam就可以从这些对象中,去获取未分配的IP,然后从这些对象中把未分配的IP去掉。当删除一个容器时,limdiag-ipam就需要把这个IP归还回IPblock对象。
### **CR对象**
```
apiVersion:
kind: IPblock.limdiag
spec:
startIP: x.x.x.x
endIP: x.x.x.x
unallocated:
- x.x.x.1
- x.x.x.2
```
### **部署的yaml文件**
```
to be continued
```
### **说明**
* 此次设计不考虑多个IP地址范围
- 应用层
- HTTP
- Cookie
- Session
- HTTP报文格式
- HTTP的Header字段
- HTTPS
- 简介
- 原理
- RSA加密与解密
- 证书签名与验证
- TLS双向认证
- openssl命令汇总
- DNS
- DNS的记录类型
- DNS的报文格式
- FAQ
- 传输层
- TCP
- CloseWait
- 网络层
- IPv6
- 链路层
- 链接层基础知识
- VLAN
- FAQ
- Linux网络收发包
- 网卡收包
- 网卡发包
- 收发包FAQ
- LVS
- 安装-DR模式
- 基本原理
- Ipvsadm命令
- Netfilter
- Netfilter简介
- 注册钩子函数
- Netfilter中数据包流向
- Iptables的数据结构
- 连接跟踪
- 初识连接跟踪
- 连接跟踪详解
- 连接跟踪数据结构
- 数据包与连接的状态
- NAT
- IPVS
- KubeProxy的IPVS模式
- Linux虚拟网络设备
- 虚拟网络设备简介
- Tap
- VethPair
- Vlan
- Vxlan
- Flannel的VXLAN原理
- Openstack的VXLAN原理
- VXLAN总结
- Bridge
- 给容器设置主机网段IP
- Macvlan
- Ipvlan
- IPIP
- IPIP使用介绍
- IPIP源码分析
- Limdiag网络
- 详细设计
- kubeovn
- IP命令
- Calico
- Calico常见问题
- ARP无响应
- 其他