如何在 Google Cloud Composer 工作节点上更新 gcloud?

How to update gcloud on Google Cloud Composer worker nodes?

这里有一个类似的问题,但从 2018 年开始,解决方案需要更改工作人员的基本图像。另一个建议是通过 ssh 进入每个节点并在那里安装 apt-get。这似乎没有用,因为当自动缩放生成新节点时,您需要一次又一次地执行此操作。

无论如何,有没有合理的方法在 2020 年底升级基础 gcloud?

因为共享执行环境中的任务实例运行,通常不建议尽可能在 Composer Airflow 任务中使用 gcloud CLI,以避免状态或版本冲突。例如,如果您有多个用户使用同一个 Cloud Composer 环境,并且他们中的任何一个更改了 gcloud 使用的活动凭据,那么他们可能会在不知不觉中破坏另一个的工作流程。

相反,请考虑使用 Cloud SDK Python 库以编程方式执行您需要执行的操作,或者使用 airflow.providers.google.cloud 运算符,它们可能已经具备您需要的功能。

如果您确实需要使用 gcloud CLI 并且不共享环境,那么您可以使用 BashOperator 和 install/upgrade 脚本为需要使用 CLI 的任何任务创建先决条件。或者,您可以构建安装了 gcloud 的自定义 Docker 映像,并使用 GKEPodOperatorKubernetesPodOperator 到 运行 Kubernetes pod 到 运行 CLI 命令。这会比每次都验证依赖关系更慢,但更可靠。