使用預設的 Compose Bridge 轉換
目錄
Compose Bridge 為您的 Compose 設定檔提供了開箱即用的轉換功能。根據任意的 compose.yaml 檔案,Compose Bridge 可產生:
- 一個 Namespace (命名空間),讓您的所有資源都能被隔離,且不會與其他部署的資源發生衝突。
- 一個 ConfigMap,其中包含 Compose 應用程式中每一個 config 資源的項目。
- 應用程式服務的 Deployments (部署)。這可確保您的應用程式在 Kubernetes 叢集中維持指定數量的執行個體。
- 用於服務所暴露連接埠的 Services (服務),用於服務對服務之間的通訊。
- 用於服務所發布連接埠的 Services (服務),類型為
LoadBalancer,以便 Docker Desktop 同時在主機上暴露相同的連接埠。 - 用來複製
compose.yaml檔案中所定義網路拓撲的 Network policies (網路原則)。 - 用於您的磁碟區 (Volumes) 的 PersistentVolumeClaims,使用
hostpath儲存類別,以便 Docker Desktop 管理磁碟區的建立。 - 包含您已加密 Secret 的 Secrets。這是專為測試環境中的本地使用所設計的。
它也提供了專用於 Docker Desktop 的 Kustomize 疊加層 (overlay),包含:
- 針對需要於主機暴露連接埠之服務的
Loadbalancer。 - 一個
PersistentVolumeClaim,用於使用 Docker Desktop 儲存供應器desktop-storage-provisioner來更有效地處理磁碟區配置。 - 一個用來將所有資源連結在一起的 Kustomize 檔案。
使用預設的 Compose Bridge 轉換
若要使用預設轉換,請執行下列指令:
$ docker compose bridge convert
Compose 會在目前目錄中尋找 compose.yaml 檔案,然後進行轉換。
成功時,Compose Bridge 會產生 Kubernetes 資訊清單 (manifests) 並記錄類似下方的輸出:
$ 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 資料夾中。
接著即可使用標準部署指令 kubectl apply -k out/overlays/desktop/,透過這些 Kubernetes 資訊清單在 Kubernetes 上執行應用程式。
重要請確保在部署 Compose Bridge 轉換之前,已在 Docker Desktop 中啟用 Kubernetes。
如果您想要轉換位於其他目錄中的 compose.yaml 檔案,您可以執行:
$ docker compose bridge convert -f <path-to-file>/compose.yaml
若要查看所有可用的旗標 (flags),請執行:
$ docker compose bridge convert --help
提示您可以從 Compose 檔案檢視器中轉換並部署您的 Compose 專案到 Kubernetes 叢集。
請確保您已登入 Docker 帳號,瀏覽至 **Containers (容器)** 檢視畫面中的容器,並在右上角選取 **View configurations (檢視設定)**,然後選擇 **Convert and Deploy to Kubernetes (轉換並部署至 Kubernetes)**。