以编程方式在新的GKE集群上运行Kubernetes命令

时间:2016-06-15 07:48:48

标签: kubernetes google-kubernetes-engine

为了运行我正在开发的应用程序的负载测试,我正在创建一个Google容器引擎(GKE)集群,创建几个永久磁盘,运行一大堆kubectl命令,运行我的基准测试,保存结果,然后再次删除GKE集群。

kubectl命令负责标记GKE集群的节点子集(以保证它们只运行我的应用程序,而基准测试基础结构位于其余节点上)并创建机密,复制控制器和服务。

我正在寻找一种自动化所有这一切的方法。我知道我可以编写一个自定义程序来为我完成所有这些,但我想知道是否已经有这样的程序。

我简要介绍了https://www.terraform.io/,但看起来只会覆盖GKE设置,而不是Kubernetes资源。

是否可以将terraform与运行kubectl命令的脚本结合起来?还是有其他工具可以协调Kubernetes吗?

3 个答案:

答案 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带来的额外价值很好。

希望有帮助。