为了运行我正在开发的应用程序的负载测试,我正在创建一个Google容器引擎(GKE)集群,创建几个永久磁盘,运行一大堆kubectl命令,运行我的基准测试,保存结果,然后再次删除GKE集群。
kubectl命令负责标记GKE集群的节点子集(以保证它们只运行我的应用程序,而基准测试基础结构位于其余节点上)并创建机密,复制控制器和服务。
我正在寻找一种自动化所有这一切的方法。我知道我可以编写一个自定义程序来为我完成所有这些,但我想知道是否已经有这样的程序。
我简要介绍了https://www.terraform.io/,但看起来只会覆盖GKE设置,而不是Kubernetes资源。
是否可以将terraform与运行kubectl命令的脚本结合起来?还是有其他工具可以协调Kubernetes吗?
答案 0 :(得分:3)
结帐Cloud Deployment Manager。它允许您以声明方式创建GKE集群,然后向集群添加资源。我不确定它是否会为您标记节点。要做到这一点,一个选择是创建多个node pools。每个节点池将自动标记为节点池的名称,这可以帮助您减少需要运行的手动kubectl
命令的数量。
答案 1 :(得分:1)
对于现在登陆的任何人,Terraform现在(7月18日)也支持预配置kubernetes资源,因此您的terraform可以生成Kubernetes部署,服务等。
唯一真正的警告是,提供者已决定仅支持GA(非alpha或beta)资源,截至撰写本文时,这些资源仍然很少(例如,没有Ingress)。
答案 2 :(得分:0)
我正在使用terraform在不同的云中创建基础结构,然后提供Helm。如果未使用K8s PaaS,我将添加到循环Ansible。
Ansible也可以在kubernetes中进行部署,但是我认为Helm带来的额外价值很好。
希望有帮助。