“ Pulumi新推出的K8s Operator,可直接从Git仓库中的程序,自动部署基础设施变更”
Saas厂商Pulumi推出了一系列Kubernetes方案,目标是要提供用户新的自动化部署功能,并与第三方更好的整合,同时还降低工具使用的难度,让云原生开发者,能够更简单地将Kubernetes用于生产中。
这次Pulumi推出了一个新的集群Pulumi Kubernetes Operator,能让用户以GitOps的方式,管理云端和Kubernetes集群上的基础设施,该Kubernetes Operator能够透过Git仓库,部署Pulumi更新并且执行Pulumi程序。
Pulumi现在已经与不少第三方CI/CD系统整合,能够自动将云端设施变更交付到AWS、Azure、GCP与Kubernetes等,官方提到,因为用户要求希望可以利用GitOps交付方法,在Kubernetes中执行自动化交付,因此他们才推出了Kubernetes Operator开源方案。
Kubernetes Operator提供用户一个新的Kubernetes原生基础设施交付方法,让用户可以使用Kubernetes集群中新的Stack CustomResource,指定部署的云端基础设施,Stack CustomResource可以是任何仓库中的Pulumi程序,并且利用该Pulumi程序来定义基础设施的状态,官方提到,Kubernetes集群不只能够管理该集群的基础设施,甚至还能管理其他的Kubernetes集群,包括AWS资源、Datadog以及其他Pulumi支援的平台,都可以这种方式管理。
Pulumi还推出了称为crd2pulumi的工具,可以为任何Kubernetes CRD(Custom Resource Definition)创建强类型的API,让用户能够简单地使用云端原生社群的各种API扩充,目前仅支援TypeScript以及Go,未来还会支援Python和.NET。
官方提到,在Kubernetes生态系,各方案都透过CustomResources在Kubernetes资源上,建构各种扩充功能,过去Pulumi利用核心Kubernetes API提供了强类型API,但这些强类型API并没有全面对外开放,而现在crd2pulumi工具则提供强类型API丰富的支援,让用户可以直接从CRD的OpenAPI规范,生成强类型程序语言API,并且还会在规范更新时,重新产生这些API。
强类型的好处,是让CRD程序码可以利用IDE工具,执行类型检查和自动完成等功能,减少程序码撰写错误,而这些功能在自定义资源管理的基础设施複杂性增加时,将显得特别重要。
另外,Pulumi还推出可以将Kubernetes YAML清单转换为Python、TypeScript、Go或者.NET程序语言的工具kube2pulumi,由于Pulumi支援完整的Kubernetes API,因此kube2pulumi产生的程序码,就包含了Kubernetes所有功能。用户可以利用kube2pulumi一次转换一个资源,或是整个清单资料夹,而且一经转换,用户就能够简单地部署到集群中。
最近Pulumi也强化了互通性,发布了用于持续交付平台Spinnaker的扩充套件,用户可以将相同的云原生持续交付平台,同时用于应用程序和基础设施部署上,而且还支援了Kubernetes套件管理工具Helm 3和配置管理工具Kustomize,两者可以作为Pulumi程序的一部分,使用核心Pulumi Kubernetes函数库。
小编:创作整理不易,别忘了给小编一键三连