Kubernetes 超详细总结
一个目标:容器操作;两地三中心;四层服务发现;五种Pod共享资源;六个CNI常用插件;七层负载均衡;八种隔离维度;九个网络模型原则;十类IP地址;百级产品线;千级物理机;万级容器;相如无亿,Kubernetes有亿:亿级日服务人次。
一个目标:容器操作
- 自动化容器部署和复制。
- 实时弹性收缩容器规模。
- 容器编排成组,并提供容器间的负载均衡。
- kubectl:客户端命令行工具,作为整个系统的操作入口。
- kube-apiserver:以REST API服务形式提供接口,作为整个系统的控制入口。
- kube-controller-manager:执行整个系统的后台任务,包括节点状态状况、Pod个数、Pods和Service的关联等。
- kube-scheduler:负责节点资源管理,接收来自kube-apiserver创建Pods任务,并分配到某个节点。
- etcd:负责节点间的服务发现和配置共享。
- kube-proxy:运行在每个计算节点上,负责Pod网络代理。定时从etcd获取到service信息来做相应的策略。
- kubelet:运行在每个计算节点上,作为agent,接收分配该节点的Pods任务及管理容器,周期性获取容器状态,反馈给kube-apiserver。
- DNS:一个可选的DNS服务,用于为每个Service对象创建DNS记录,这样所有的Pod就可以通过DNS访问服务了。
- 简单:基于http+json的API让你用curl命令就可以轻松使用。
- 安全:可选SSL客户认证机制。
- 快速:每个实例每秒支持一千次写操作。
- 可信:使用Raft算法充分实现了分布式。
- PID命名空间:Pod中的不同应用程序可以看到其他应用程序的进程ID。
- 网络命名空间:Pod中的多个容器能够访问同一个IP和端口范围。
- IPC命名空间:Pod中的多个容器能够使用SystemV IPC或POSIX消息队列进行通信。
- UTS命名空间:Pod中的多个容器共享一个主机名。
- Volumes(共享存储卷):Pod中的各个容器可以访问在Pod级别定义的Volumes。
- 内网接入交换机:也称为TOR(top of rack),是服务器接入网络的设备。每台内网接入交换机下联40-48台服务器,使用一个掩码为/24的网段作为服务器内网网段。
- 内网核心交换机:负责IDC内各内网接入交换机的流量转发及跨IDC流量转发。
- MGW/NAT:MGW即LVS用来做负载均衡,NAT用于内网设备访问外网时做地址转换。
- 外网核心路由器:通过静态互联运营商或BGP互联美团统一外网平台。
- 二层负载均衡:基于MAC地址的二层负载均衡。
- 三层负载均衡:基于IP地址的负载均衡。
- 四层负载均衡:基于IP+端口的负载均衡。
- 七层负载均衡:基于URL等应用层信息的负载均衡。
- Service可能有很多个,如果每个都绑定一个Node主机端口的话,主机需要开放外围的端口进行服务调用,管理混乱。
- 无法应用很多公司要求的防火墙规则。
- 所有容器都可以不用NAT的方式同别的容器通信。
- 所有节点都可以在不同NAT方式下同所有容器心痛,反之亦然。
- 容器的地址和别人看到的地址是同一个地址。
原文链接:https://blog.csdn.net/huakai_sun/article/details/82378856
文章转载:分布式实验室
(版权归原作者所有,侵删)