AWS发布用于Kubernetes的云计算开发组件cdk8s,这是一个开源开发工具组件,让用户可以在Kubernetes集群中更简单地进行构建和维护工作。
目前有不少企业运用Kubernetes大规模的部署应用程序,或是大规模地训练机器学习模型,用户会构建自动化工具来替代手动操作流程,并为其基础设施的每一部分,实例操作工作管线,让开发团队能够更细致地控制应用程序执行的方式。
Kubernetes应用程序是通过静态YAML资料文件来定义,YAML是一种人类可读的文件格式,但每当构建新的应用程序,就需要编写大量的样板配置,通常开发人员会从其他项目复制程序代码,手动调整或加以自定义,随着应用程序和团队的发展,管理YAML文件会越来越困难,无论是共享最佳实例或是更新,都需要大量的手动变更和复杂的搬迁。
AWS提到,虽然YAML是一个好用的格式,能够描述集群需要的状态,但是其缺乏表达逻辑和可重复使用的抽象原语,而这与用户使用CloudFormation模板定义应用程序遇到的问题相同,AWS在2018年的时候,推出AWS Cloud Development Kit(AWS CDK)来解决这个问题。
AWS CDK是可让用户利用TypeScript、Python、Java或.NET自己熟悉的程序语言,定义云计算基础设施的开源框架,AWS CDK可以简化开发程序,其可组合的特性,能够让用户编写设置和样本细节,现在AWS将CDK的概念,扩展应用到Kubernetes上,发布全新项目cdk8s。
cdk8s让用户同样可以利用熟悉的程序语言,定义Kubernetes应用程序和可重复使用的组件,生成标准的Kubernetes YAML,也就是说,用户无论是在企业本地部署,抑或是在任何云计算平台,都可以利用cdk8s来定义Kubernetes集群应用程序。
cdk8s让用户能够以强类型类别,导入核心Kubernetes API对象和自定义资源(CRD),作为构建模块(Construct),使用户可以利用面向对象原语来定义Kubernetes应用程序,AWS提到,cdk8s最强大的地方在于让用户编写自己的抽象。用户利用cdk8s,可将常用的Kubernetes模式发布为函数库,然后其他应用程序就能参照这些函数库,这种方式简化了所有Kubernetes用户定义和维护应用程序的程序。
目前cdk8s仍处于Alpha测试阶段,有兴趣的开发者可以抢先开始试用,不过AWS也提到,在未来几个月,cdk8s还是会有重大变化,这个改进过程会一直到进入稳定版为止。