使用默认的 Compose Bridge 转换

实验性

Compose Bridge 是一个 实验性产品。

Compose Bridge 为您的 Compose 配置文件提供开箱即用的转换功能。基于任意的 compose.yaml 文件,Compose Bridge 可生成:

  • A 命名空间,因此您的所有资源都是隔离的,不会与其他部署的资源发生冲突。
  • 一个 ConfigMap,其中包含您 Compose 应用中每个配置资源的条目。
  • 部署 用于应用服务。这可确保在 Kubernetes 集群中维持指定数量的应用实例。
  • 服务用于您的服务所暴露的端口,服务于服务间通信。
  • 服务用于由您的服务发布的端口,类型为LoadBalancer,以便 Docker Desktop 也在主机上暴露相同的端口。
  • 网络策略,用于复制您在 compose.yaml 文件中定义的网络拓扑。
  • 持久卷声明 用于您的卷,使用 hostpath 存储类,以便 Docker Desktop 管理卷的创建。
  • 密钥,使用您的密钥进行编码。此功能专为在测试环境中本地使用而设计。

它还提供专用于 Docker Desktop 的 Kustomize 叠加层,包含:

  • Loadbalancer 用于需要暴露主机端口的服务。
  • 使用 PersistentVolumeClaim 来利用 Docker Desktop 存储供应器 desktop-storage-provisioner,以更有效地处理卷供应。
  • 一个用于链接所有资源的 Kustomize 文件。

使用默认的 Compose Bridge 转换

要使用默认转换,请运行以下命令:

$ compose-bridge convert

Compose 会在当前目录中查找 compose.yaml 文件,然后将其转换。

显示以下输出

$ compose-bridge convert -f compose.yaml 
Kubernetes resource api-deployment.yaml created
Kubernetes resource db-deployment.yaml created
Kubernetes resource web-deployment.yaml created
Kubernetes resource api-expose.yaml created
Kubernetes resource db-expose.yaml created
Kubernetes resource web-expose.yaml created
Kubernetes resource 0-avatars-namespace.yaml created
Kubernetes resource default-network-policy.yaml created
Kubernetes resource private-network-policy.yaml created
Kubernetes resource public-network-policy.yaml created
Kubernetes resource db-db_data-persistentVolumeClaim.yaml created
Kubernetes resource api-service.yaml created
Kubernetes resource web-service.yaml created
Kubernetes resource kustomization.yaml created
Kubernetes resource db-db_data-persistentVolumeClaim.yaml created
Kubernetes resource api-service.yaml created
Kubernetes resource web-service.yaml created
Kubernetes resource kustomization.yaml created

这些文件随后会存储在您的项目中的 /out 文件夹内。

然后可以使用 Kubernetes 清单,通过标准部署命令 kubectl apply -k out/overlays/desktop/ 在 Kubernetes 上运行应用程序。

注意

在部署 Compose Bridge 转换之前,请确保已在 Docker Desktop 中启用 Kubernetes。

如果您想转换位于其他目录中的 compose.yaml 文件,可以运行:

$ compose-bridge convert -f <path-to-file>/compose.yaml 

要查看所有可用标志,请运行:

$ compose-bridge convert --help

提示

您现在可以从 Compose 文件查看器将 Compose 项目转换并部署到 Kubernetes 集群。

请确保您已登录 Docker 账户,在 容器 视图中导航到您的容器,然后在右上角选择 查看配置,接着选择 转换并部署到 Kubernetes

接下来是什么?