substrate简介

背景

substrate是google开源的一个在k8s上高密度部署agent类工作负载的系统.
传统k8s使用方式使用agent的话,会导致资源的浪费,因为agent类工作负载可能存在空闲时间
substrate通过主动快照和自动恢复,来解决这个问题
仓库地址
github.com/agent-substrate/substrate

模块介绍

atenet

atenet dns

atenet dns作为一个dns控制器会和额外的coredns作为一个pod一起部署,而这个额外的coredns则负责实际的actors.resources.substrate.ate.dev后缀的域名解析

这个dns控制器,负责
1 配置k8s默认coredns的configmap的stubDomains到atenet dns这个svc对应的clusterip,来让actors.resources.substrate.ate.dev后缀的域名转发给atenet dns解析
2 配置这个额外的coredns对actors.resources.substrate.ate.dev后缀的域名解析到atenet router这个svc对应的clusterip

atenet router

作为envoy的ext proc,和envoy作为一个pod提供服务
收到对actor的请求后会请求ateapi的ResumeActor,从响应中提取ateom podip随后通过修改authority header将请求重定向到oteom podip

ateapi

核心控制面api服务,暴露用于管理actor和worker生命周期的grpc端点

atecontroller

调协WorkerPool/ActorTemplate的k8s控制器

atelet

节点级的daemonset,监督物理worker pod,协调快找,管理状态转移

atecontroller

ateom-gvisor/ateom-microvm

ateom-gvisor和ateom-microvm分别是gvisor和kata + cloud-hypervisor 在ateom service的实现
提供
1 RunWorkload
2 CheckpointWorkload
3 RestoreWorkload

kubectl-ate

kubectl的一个插件,用于快速创建actor,pause actor,resume actor等

使用步骤

1 create ns
2 create workerpool && ActorTemplate
3 kubectl ate create atespace(提前安装kubectl-ate)
4 kubectl ate create actor
5 测试

kubectl port-forward -n ate-system svc/atenet-router 8000:80
curl -X POST -H "Host: my-actor.myatespace.actors.resources.substrate.ate.dev" http://localhost:8000
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容