使用預設的 Compose Bridge 轉換

要求: Docker Desktop 4.43.0 及更高版本

Compose Bridge 為您的 Compose 配置檔案提供開箱即用的轉換。基於任意 compose.yaml 檔案,Compose Bridge 生成:

  • 一個 名稱空間,以便您的所有資源都被隔離,並且不與其他部署的資源衝突。
  • 一個 ConfigMap,其中包含 Compose 應用程式中每個 配置 資源的條目。
  • 應用程式服務的 部署。這確保了您的應用程式的指定例項數量在 Kubernetes 叢集中得以維護。
  • 用於服務暴露埠的 服務,用於服務間通訊。
  • 用於服務釋出埠的 服務,型別為 LoadBalancer,以便 Docker Desktop 也會在主機上暴露相同的埠。
  • 網路策略,以複製您 compose.yaml 檔案中定義的網路拓撲。
  • 您的卷的 PersistentVolumeClaims,使用 hostpath 儲存類,以便 Docker Desktop 管理卷的建立。
  • 包含您編碼的秘密的 Secrets。這旨在用於測試環境中的本地使用。

它還提供了一個專門用於 Docker Desktop 的 Kustomize 覆蓋,包括:

  • 需要暴露主機埠的服務的 LoadBalancer
  • 一個 PersistentVolumeClaim,用於使用 Docker Desktop 儲存提供程式 desktop-storage-provisioner 更有效地處理卷供應。
  • 一個 Kustomize 檔案,用於將所有資源連結在一起。

使用預設的 Compose Bridge 轉換

要使用預設轉換,請執行以下命令:

$ docker compose bridge convert

Compose 在當前目錄中查詢 compose.yaml 檔案,然後將其轉換。

成功後,Compose Bridge 生成 Kubernetes 清單並記錄類似於以下內容的輸出:

$ docker 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 檔案,可以執行:

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

要檢視所有可用標誌,請執行:

$ docker compose bridge convert --help
提示

您可以從 Compose 檔案檢視器將 Compose 專案轉換並部署到 Kubernetes 叢集。

確保您已登入 Docker 賬戶,導航到“**容器**”檢視中的容器,然後在右上角選擇“**檢視配置**”,然後選擇“**轉換並部署到 Kubernetes**”。

下一步是什麼?