容器编排与Kubernetes入门指南
1. 容器编排的需求
1.1 资源管理与调度
容器借助Linux cgroups来管理资源使用。作为现代资源管理器,需构建易用的资源模型,抽象CPU、RAM、磁盘和GPU等资源。要高效管理大量容器,及时分配和释放资源,以实现集群的高利用率。
调度是为每个工作负载在集群中分配合适的机器。调度器(Kubernetes的组件)需全局了解集群中各机器上容器的分布情况,确保每个容器都能在最佳机器上运行。在大型数据中心,还需根据机器物理位置或云服务可用区分布容器,避免因单台机器故障导致服务中断。
1.2 故障转移与恢复
分布式系统中,应用或机器错误很常见,必须考虑容器和机器故障。容器遇到致命错误退出时,应能在同一或其他可用机器上重启。要能检测机器故障或网络分区,将有问题机器上的容器重新调度到健康机器上。并且,协调过程应自动进行,确保应用始终处于期望状态。
1.3 可扩展性
随着需求增加,可能需要扩展应用。以Web前端应用为例,需运行多个副本,并使用负载均衡器将传入流量均匀分配到支持该服务的多个容器副本上。还可根据传入请求量动态扩展应用,包括水平扩展(增加或减少副本数量)和垂直扩展(分配更多或更少资源)。
1.4 服务暴露
解决了集群内的问题后,还需考虑应用如何被外部访问。外部端点需关联底层本地或云环境,利用基础设施API保持可访问性。同时,要动态关联内部副本,自动移除不健康副本并补充新副本,确保应用在线。此外,L4(TCP/UDP)和L7(HTTP、HTTPS)流量的数据包特性不同,需采用不同处理方式以提高效率。 </
超级会员免费看
订阅专栏 解锁全文
981

被折叠的 条评论
为什么被折叠?



