0

我可以在 Google Cloud Run 或 Cloud Run on GKE 上从另一个容器创建服务或容器吗?

我基本上想从另一个容器动态管理我的容器/服务,但不知道该怎么做

添加更多细节:

我的一个微服务需要创建新的隔离容器来运行一些用户级代码。我想对这些容器进行完整的生命周期控制,运行代码,然后根据需要销毁。

我还查看了 Cloud Run API,但不确定如何通过 API 运行类似“kubectl create ...”的内容?这是正确的方法吗?

4

1 回答 1

1

是的,您应该能够从 Cloud Run 服务部署 Cloud Run 服务。

  • 在 Cloud Run(托管)上:服务默认以编辑者权限运行,因此无需任何额外配置即可实现
    • 请注意,如果您部署--allow-unauthenticated需要设置 IAM 权限的应用程序,那么 Editor 角色是不够的,因为您需要 GCP 项目的 Owner 角色。
  • on Cloud Run on GKE:服务默认在有限范围内运行(因为它们默认继承 GKE 节点的权限/范围)。您应该将服务帐户添加到 Kubernetes Pod 并使用它进行身份验证。

从那里,您有几个选择:

  1. 直接使用 REST API:由于run.googleapis.com其行为类似于 Kubernetes API 服务器,您可以直接应用 Knative Services 的 JSON 对象。(您可以gcloud ... --log-http用来了解如何使用 REST API 请求进行部署)。

  2. 使用gcloud:您可以使用 gcloud 运送您的容器映像并从您的进程中调用它。

  3. 使用 Google Cloud 客户端库:您可以使用 Cloud Run 可用的客户端库(例如这个Go 库)来构建内存中的 Service 对象,并使用更高级别的客户端库将它们发送到 API (推荐方法)

于 2019-09-17T20:04:28.763 回答