如何在不使用kubectl的情况下在GKE上扩展kubernetes部署

时间:2019-07-11 09:39:24

标签: kubernetes google-cloud-platform google-kubernetes-engine

这似乎有点奇怪,但是我需要扩展在GKE上运行的kubernetes部署,但是在发起呼叫的地方,我无权访问kubectl。

因此,我们有一个正在运行气流的VM(气流是用于构建自动数据ETL管道的工具)。负责它的团队不想直接给VM访问GKE,也不想在上面安装kubectl。因此,我正在尝试解决此限制的方法。

我目前的想法是使用pub / sub并让气流发布一个通知,该通知要求扩展规模,但是我不确定在订阅端需要什么来实际处理吗?我一直在研究运算符SDK,这看起来很有希望,但是让我感到奇怪的是,我是否需要努力构建自定义运算符并设置所有内容,或者是否已经可以使用?

3 个答案:

答案 0 :(得分:1)

  

我目前的想法是使用pub / sub并让气流发布一个通知,该通知要求扩展规模,但是我不确定在订阅端需要什么来实际处理吗?

我想您可以在发布/订阅消息上trigger a Cloud Function,然后在Cloud Function中使用Kubernetes python client之类的东西来扩展集群。

另一种不同的方法是让您的Airflow VM publish a custom metric to Stackdriver,然后使用该custom metric to configure autoscaling

答案 1 :(得分:0)

如果您具有对kubernetes集群的访问权限(身份验证凭据),则可以使用凭据调用kubernetes api服务器并创建水平Pod自动缩放。您也可以使用python sdk进行相同的操作。

答案 2 :(得分:0)

在您的情况下,也许部署bastion host是一个很好的解决方案。 您可以在此article中了解有关这种方法的详细信息。

  

堡垒主机提供K8S群集的入口点(在此   上下文)并提供其他资源管理功能。通常   这是在同一VPC和子网中创建的Google Compute Engine VM。   ...由于此VM位于同一VPC中,并且子网IP范围为   该虚拟机可以在K8S群集的主访问列表中列入白名单   用于管理集群。所以这个虚拟机应该有Google Cloud   已安装SDK和必需的工具,例如kubectl。