Skaffold:简单Kubernetes 开发工具
使用Kubernetes的公司,他们的目标是为开发人员提供一个方便部署的体验。为了帮助企业实现这一目标,我们最近推出了一项功能:Skaffold,这是一款可帮助Kubernetes应用程式持续开发的命令行工具。有了Skaffold,开发人员可以在本地推送程式码,同时持续更新并准备好在本地或远程Kubernetes丛集中进行验证或测试。自动化流程节省了开发时间,并通过其生产之过程提高了应用程式的品质。
Kubernetes为使用者提供了灵活、且可促进套件可靠部署的API和方法。Kubernetes采用定制的部署方法,并为了不太复杂的程序提供程序化的方法来实现。Kubernetes的功能可帮助运营团队实行常见的最佳实践,常见的例子如基础设施程式码化、统一日志记录,不可变的基础架构和更安全的API驱动的部署策略,如金丝雀部署(canary )和蓝/绿部署。运营商现在可以将重点放在管理对其架构最为关键的基础设施,以最小的服务风险来支援快速的发布。
但在某些情况下,即使运营团队熟悉其部署方法的优点,开发人员也是组织中最后一个引入Kubernetes的人员。开发人员可能已经使用Docker等Linux容器为其应用程式包装。Docker可以重复生成运行时环境,在这些环境中,他们可以通过简单且可重复的方式定义应用程式的依赖关系和配置。这让开发人员能在团队中与其开发运行时间保持同步,但是Docker并未引入常见的部署和验证方法。为此,开发人员将希望复制已使用的Kubernetes API和方法来创建类似的集成和手动测试环境。
一旦开发人员弄清楚Kubernetes 如何工作,他们需要启动Kubernetes API 来完成他们的任务。在这个过程中,他们需要:
1.找寻或部署Kubernetes丛集
2.创建Docker映像档并将其上传到其丛集内已启用的registry
3.使用参考文档和范例来创建他们的第一个Kubernetes manifest档案
4.使用kubectl CLI或Kubernetes UI介面来部署其应用程式
5.重复步骤2到步骤4,直到其功能,错误修复或完成改版
6.检查他们的更动并运行CI流程,包括:
•单元测试
•集成测试
•部署到测试环境
步骤2 到步骤5 要求开发人员通过多个界面使用许多工具来更新其应用程式。这些步骤中的大多步骤对于开发人员来说是无差别的,并且可以自动化,而工具都是针对开发人员的经验量身定制。
使用Skaffold,便可自动完成构建,推送和部署应用程式的工作流程。开发人员可以在开发程式的同时在后台启动Skaffold,并在不需要任何输入或附加命令的情况下不断更新其应用程式。它还可以用于自动化环境中,如CI / CD 管道,以便在将应用程式移至正式环境时利用相同的工作流程和工具。
Skaffold 功能
Skaffold 是一个早期的开源项目,包含以下注意事项和功能 :
•没有服务器端组件意味着没有额外的成本
•检测程式码中的更改并自动创建/推送/部署
•映像档标签管理。不用再担心更新Kubernetes清单中的映像档标签,以便在开发过程中推出更改
•支持现有的工具和工作流程。创建和部署API使支持许多不同的工作流程变得可能
•支持多个应用程式元件。仅创建和部署已更改的部分
•在存档时自动部署,或利用相同设定重复部署
可插拔性(Pluggability)
Skaffold 有一个可插拔的架构,允许开发人员在工作流程中选择最适合的工具。
按照入门指南开始使用Kubernetes Engine上的Skaffold,或按照自述文件中的说明使用Minikube。