在 GKE 上的 Google Cloud 运行 或 Cloud 运行 上从另一个容器创建服务或容器
Create service or container from another container, on Google Cloud Run or Cloud Run on GKE
我可以在 GKE 上的 Google 云 运行 或云 运行 上从另一个容器创建服务或容器吗?
我基本上想从另一个容器动态管理我的 containers/services,但不确定如何去做
添加更多详细信息:
我的一个微服务需要创建新的隔离容器,这些容器将 运行 一些用户空间代码。我想对这些容器进行完整的生命周期控制,运行 代码,然后根据需要销毁。
我也查看了 Cloud 运行 API,但不确定如何通过 API 运行 类似 'kubectl create ...' 的东西?这是正确的方法吗?
是的,您应该能够从云 运行 服务部署云 运行 服务。
- on Cloud 运行(托管):默认服务 运行 具有编辑权限,因此无需任何额外配置即可实现
- 请注意,如果您使用
--allow-unauthenticated
部署需要设置 IAM 权限的应用程序,编辑者角色将不够,因为您需要 GCP 项目的所有者角色。
- on Cloud 运行 on GKE:服务默认 运行 范围有限(因为它们默认继承 GKE 节点的 permissions/scopes)。您应该向 Kubernetes Pod 添加一个服务帐户并使用它进行身份验证。
从那里,你有几个选择:
直接使用 REST API:由于 run.googleapis.com
的行为类似于 Kubernetes API 服务器,您可以直接应用 JSON Knative Services 对象. (您可以使用 gcloud ... --log-http
了解如何使用 REST API 请求进行部署)。
使用 gcloud
:您可以使用 gcloud 发送容器映像并从您的进程中调用它。
使用 Google 云客户端库:您可以使用可用于云 运行 的客户端库(例如这个 Go library)构建 in-内存服务对象并使用更高级别的客户端库 (推荐方法)
将它们发送到 API
我可以在 GKE 上的 Google 云 运行 或云 运行 上从另一个容器创建服务或容器吗?
我基本上想从另一个容器动态管理我的 containers/services,但不确定如何去做
添加更多详细信息:
我的一个微服务需要创建新的隔离容器,这些容器将 运行 一些用户空间代码。我想对这些容器进行完整的生命周期控制,运行 代码,然后根据需要销毁。
我也查看了 Cloud 运行 API,但不确定如何通过 API 运行 类似 'kubectl create ...' 的东西?这是正确的方法吗?
是的,您应该能够从云 运行 服务部署云 运行 服务。
- on Cloud 运行(托管):默认服务 运行 具有编辑权限,因此无需任何额外配置即可实现
- 请注意,如果您使用
--allow-unauthenticated
部署需要设置 IAM 权限的应用程序,编辑者角色将不够,因为您需要 GCP 项目的所有者角色。
- 请注意,如果您使用
- on Cloud 运行 on GKE:服务默认 运行 范围有限(因为它们默认继承 GKE 节点的 permissions/scopes)。您应该向 Kubernetes Pod 添加一个服务帐户并使用它进行身份验证。
从那里,你有几个选择:
直接使用 REST API:由于
run.googleapis.com
的行为类似于 Kubernetes API 服务器,您可以直接应用 JSON Knative Services 对象. (您可以使用gcloud ... --log-http
了解如何使用 REST API 请求进行部署)。使用
gcloud
:您可以使用 gcloud 发送容器映像并从您的进程中调用它。使用 Google 云客户端库:您可以使用可用于云 运行 的客户端库(例如这个 Go library)构建 in-内存服务对象并使用更高级别的客户端库 (推荐方法)
将它们发送到 API