这似乎有点奇怪,但是我需要扩展在GKE上运行的kubernetes部署,但是在发起呼叫的地方,我无权访问kubectl。
因此,我们有一个正在运行气流的VM(气流是用于构建自动数据ETL管道的工具)。负责它的团队不想直接给VM访问GKE,也不想在上面安装kubectl。因此,我正在尝试解决此限制的方法。
我目前的想法是使用pub / sub并让气流发布一个通知,该通知要求扩展规模,但是我不确定在订阅端需要什么来实际处理吗?我一直在研究运算符SDK,这看起来很有希望,但是让我感到奇怪的是,我是否需要努力构建自定义运算符并设置所有内容,或者是否已经可以使用?
答案 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。