使用 K8S 几年后,这些技术专家有话要说( 五 )

腾讯自己开发的服务,包括算法服务,都能接到 K8S 里面去,其实这个已经比较成熟了,但是有些组件,包括一些存储性的东西,分布式文件存储或者 MySQL 存储等等,业界也有相关的方案,但是从整个的稳定性来说,存储目前还是用的物理机的方式,除了服务以外的存储还是用的物理机。那怎么接入算法?最原始的方式可能是让它提供二进制包或者类似的方式来帮它做。我们最终提供的就是镜像制作的方式,最终都是通过镜像。如果用户提供了一个二进制包,怎么帮他们做镜像?这里其实有两种对接方式,第一种直接对接其镜像。这是最简单的,也有容器平台。第二种是自动构建镜像。比如说它还是物理机或者是虚拟机的方式,它提供的可能是一些包,我们帮它自动做镜像。我们把每个环境抽象成一个组件,比如说你需要 JDK、OpenSL 等等环境,我们把它抽象成一些组件,你只需要把包选出来在你的页面上,这里就是一个可视化的操作,你可以在我们的平台构成完做成你的镜像,把你的二进制包上传。

这里有个难点,怎么缩短镜像制作的耗时?一个原始的 GCC 编译可能需要一个小时,CUDA 的安装也需要 20 分钟,做一个镜像如果环境变复杂,是不是需要一两个小时才能做一个镜像。那怎么缩短时间?思路是:第一次制作有可能确实需要花这么长时间。另外,腾讯也抽象了几点,把 GCC、CUDA 和镜像的版本做了绑定,因为是常用的,所以会做成基础镜像,每个用户制作的内容都会在后台分析,用户最耗时的以及最频繁使用的,可以在后台帮你分析,做成一个模板镜像,下次做的时候不会基于 Linux 来做,它可以基于镜像模板机来做,它的耗时明显就会减少。

推荐阅读