【问题标题】:How to scale a kubernetes deployment on GKE without using kubectl如何在不使用 kubectl 的情况下在 GKE 上扩展 kubernetes 部署
【发布时间】:2019-11-20 23:55:45
【问题描述】:

这可能看起来有点奇怪,但我需要扩展我在 GKE 上运行的 kubernetes 部署,但是在我发起调用的地方,我无权访问 kubectl。

所以我们有一个运行气流的虚拟机(气流是我们用于构建自动化数据 ETL 管道的工具)。负责它的团队不想让虚拟机直接访问 GKE,也不想在上面安装 kubectl。所以我正在想办法绕过这个限制。

我目前的想法是使用 pub/sub 并让气流发布它希望扩展部署的通知,但我不确定订阅端需要什么来实际处理它?我一直在研究运营商 SDK,这看起来很有希望,但这让我想知道我是否需要努力构建自定义运营商并设置所有内容,或者是否已经存在可以使用的东西?

【问题讨论】:

  • 您能否详细解释一下您可以访问的内容?听起来他们不希望从气流虚拟机直接访问 GKE 集群。 可以从哪里访问集群(以编程方式)。如果您根本没有访问集群的点,那么您在气流虚拟机和集群之间构建多少层间接和中间 API 都没关系。最好与负责集群的团队进行此对话。

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


【解决方案1】:

我目前的想法是使用 pub/sub 并让气流发布它希望扩展部署的通知,但我不确定订阅端需要什么来实际处理?

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      如果您有权访问(身份验证凭据)kubernetes 集群,您可以使用凭据调用 kubernetes api 服务器并创建水平 pod 自动缩放。你也可以使用pythonsdk 来做同样的事情。

      【讨论】:

      • 这就是我要说的。我无权访问 Kubernetes 集群。这里拥有气流的团队不希望它具有那种级别的访问权限,这就是为什么我试图构建一个可以访问的更具体的 API,以最大程度地降低风险。
      • 如果您没有身份验证凭据,则无法从任何地方访问集群
      • 不是我说的;我可以拥有另一个服务,无论是虚拟机、kubernetes pod、操作员等,我可以在其中授予访问权限,然后我可以更改集群的大小,但无论是什么,都可能只使用 kubectl。我要问的是,那是什么东西?
      猜你喜欢
      • 1970-01-01
      • 2022-08-23
      • 2020-07-24
      • 1970-01-01
      • 1970-01-01
      • 2020-02-15
      • 2020-03-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多