在Google Cloud Run或GKE上的Cloud Run上从另一个容器创建服务或容器

时间:2019-09-16 04:30:21

标签: docker google-cloud-platform google-cloud-run knative

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

我基本上想从另一个容器动态地管理我的容器/服务,并且不确定如何做

添加更多详细信息:

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

我也查看了Cloud Run API,但不确定如何通过API运行“ kubectl create ...”之类的东西吗?那是正确的方法吗?

1 个答案:

答案 0 :(得分:1)

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

  • 在Cloud Run(托管)上:默认情况下,服务在具有Editor权限的情况下运行,因此无需任何额外配置即可实现
    • 请注意,如果使用需要设置IAM权限的--allow-unauthenticated部署应用,则“编辑”角色将是不够的,因为您需要GCP项目上的“所有者”角色。
  • on on Cloud在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 Client库:您可以使用可用于Cloud Run的客户端库(例如此Go library)来构造内存服务对象,并使用更高版本将其发送到API级别的客户端库(推荐方法)