Google更新开源Minikube专案让笔电也能以GPU执行Kubernetes工作负载

社会动态2021-02-25 17:33:50
最佳答案

为了缩小开发者在本机或是Kubernetes丛集开发应用程式的环境差异,Google对Minikube以及Skaffold开源专案进行更新贡献,除了让本机端的Kubernetes支援GPU工作负载外,现在Skaffold还能自动部署Java应用程式。

由于现在机器学习和其他计算密集的应用程式越来越盛行,同时也增加了对GPU硬体加速的需求,但是Google提到,目前缺乏对本机Kubernetes开发的GPU支援,而这代表,开发者想要开发和测试GPU应用程式,除非使用不同于生产环境的本机环境进行开发,否则就是要使用远端的开发环境,而这将产生较长的回馈周期,使得开发测试速度受到限制,而且在不同于生产的环境中进行开发,不只降低生产力也容易产生微小的错误。

Minikube允许使用者在本机执行Kubernetes工作负载,而Google为最新的Minikube增加了GPU支援,改善了在Kubernetes上创建GPU工作负载的开发人员体验。因此现在开发者可以利用工作站空閑的GPU,在Minikube上执行GPU工作。Google提到,目前这项整合只能在Linux上执行,而且仍存在一些硬体限制,仅支援Nvidia的GPU。

另外,开发者把应用程式部署到云端平台,可能需要使用Kubernetes LoadBalancer类型创建负载平衡器或是外部IP,而Minikube也支持LoadBalancer类型的模拟行为,目前Minikube会将其以单独的守护进程执行,并创建网路路由到Minikube虚拟机器,使得主机可以获得ClusterIP,并複製ClusterIP到ExternalIP网域。

Google提到,目前Java应用程式无法良好的相容于Kubernetes,除了建构时间缓慢,而且重载应用程式以部署更新的程序非常麻烦。为此去年Google发布了Jib,能将Java应用程式简单的容器化,使用Jib不需要安装Docker、执行Docker守护进程或是编写Dockerfile。而现在Google对Skaffold做出更新,让Jib成为Kubernetes持续开发命令列工具Skaffold中的建置器。

使用者可以将Skaffold与使用Jib插件配置的Maven或Gradle专案一起使用,Skaffold使用Jib以容器化JVM应用程式,并在侦测到更新时将其部署至Kubernetes丛集,这将免除了开发者繁杂的手续,可以专心的执行开发工作。只需要将jibMaven或是jibGradle添加到skaffold.yaml中,就能够自动持续部署Java应用程式到Kubernetes丛集中。

Skaffold还提供了档案同步功能,当开发者只想处理一个简单的网页应用程式,小幅度修改了一个HTML文件,重建并且重新部署应用程式显得过于缺乏效率,Skaffold可以只将新版的档案注入到正在执行的容器中,藉此大幅提升更新效率。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时候联系我们修改或删除,多谢。