全新的強化版執行階段

Migrate to Containers 的原始 Linux 服務管理工具會依賴 sysv initsystemd。簡化版 Linux 服務管理員會以簡化且容器友善的替代方案取代。

這個簡化的 Linux 服務管理工具新增了功能,可讓您將遷移的容器工作負載部署至下列位置:

  • GKE Autopilot 叢集

  • Cloud Run

簡化的 Linux 服務管理工具也解決了 Kubernetes 外掛程式相容性問題。舉例來說,簡化的 Linux 服務管理員已移除在 deployment_spec.yaml 檔案中為 /sys/fs/cgroup 定義 hostpath 的需求,也無需建立特權容器。

事前準備

  • Migrate to Containers 提供的工具可在 VM 工作負載上執行,用於判斷工作負載是否適合遷移至容器。詳情請參閱「使用適配評估工具」。

關於 GKE Autopilot 叢集

Autopilot 是 Google Kubernetes Engine (GKE) 中的作業模式。Autopilot 可降低管理叢集的作業成本、針對實際工作環境最佳化叢集,並增加工作負載的可用性。在 Autopilot 模式下,GKE 會佈建及管理叢集的基礎架構 (包括節點和節點集區),為您提供經過最佳化調整的叢集,而且免人工管理。

詳情請參閱「Autopilot 總覽」。

關於 Cloud Run

Cloud Run 是一種代管運算平台,能夠讓您執行可透過網路要求或 Pub/Sub 事件叫用的無狀態容器。簡化的 Linux 服務管理工具可讓您在 Cloud Run 上部署已遷移的容器工作負載。

搭配 Migrate to Containers 和 GKE 使用工作負載身分識別資訊

您可以使用 Migrate to Containers 和 GKE 將遷移的工作負載部署至 Google Distributed Cloud。有時,您可能會使用相同的叢集做為處理叢集和部署叢集。如果您已在部署叢集中啟用工作負載身分,請務必設定部署環境,以便支援遷移至容器和 GKE。

此外,您必須確保在初始化程序中啟動的所有服務,都已正確設定工作負載身分。您執行的步驟取決於叢集的服務管理員。如需設定步驟,請參閱「將 Linux 工作負載部署至目標叢集」。

與現有執行階段的差異

如要使用簡化的 Linux 服務管理器,請注意現有執行階段的下列變更和限制。

新增 services-config.yaml 構件檔案

如果您啟用簡化的 Linux 服務管理工具,在產生遷移構件時,「Migrate to Containers」會建立新的構件檔案 services-config.yaml。您可以使用這個檔案控制已部署容器中的應用程式初始化作業。詳情請參閱「使用 services-config.yaml」。

完備性探測

使用目前的執行階段時,Migrate to Containers 會在 deployment_spec.yaml 檔案中新增就緒探針。啟用簡易版 Linux 服務管理工具時,系統不會新增就緒探測。

如果您想新增就緒探針,建議您使用 HTTP 就緒探針。詳情請參閱「定義就緒探針」。

        readinessProbe:
          exec:
            command:
            - /.m4a/gamma status

不過,這個探針可能會傳回偽陰性結果。

支援 syslog

簡化的 Linux 服務管理員會在 /dev/log 建立 Unix 通訊端,以支援 syslog。簡化的 Linux 服務管理員會將這些記錄訊息轉送至 stdout,以便 Kubernetes 將其記錄為容器記錄。

限制

使用簡易版 Linux 服務管理工具時,請注意下列限制。

工作負載限制

簡化的 Linux 服務管理工具最適合用於下列類型的工作負載:

圖片 作業系統 服務
Compute Engine Ubuntu 12.04 Ubuntu 12.04 apache2
Compute Engine Ubuntu 14.04 Ubuntu 14.04 redis、MySQL、Apache2
Compute Engine Ubuntu 18.04 Ubuntu 18.04 apache2、mysql、redis-server、Tomcat
RHEL SAP 7.4 Red Hat httpd
Bitnami Ubuntu bitnami
Compute Engine Memcached 映像檔 Debian 10.9 bitnami
Compute Engine Marketplace wordpress Debian 9.13 apache2、mysql、php
Compute Engine Marketplace tomcat Debian 9.13 tomcat8
Compute Engine Marketplace jenkins Debian 10.9 apache2、jenkins
Compute Engine Marketplace 模組 Debian 9.13 apache2、mysql、php7.4 fpm、phpsessionclean
Compute Engine Marketplace Odoo Debian 9.13 odoo、nginx
Compute Engine Marketplace Opencart Debian 9.13 apache2、mysql、php7.0 fpm、supervisor、mariadb
Compute Engine 市集 Erpnext Debian 10.9 nginx、Redis 伺服器、supervisor、MariaDB
Compute Engine Marketplace wildfly Debian 10.10 wildfly、cron

systemd 限制

如果您使用 systemd 做為初始化系統,請注意下列限制:

  • simpleexecnotifysystemd 服務類型會視為 exec 服務。也就是說,當 exec 成功時,系統會將服務視為已啟動。

  • sd_notify() 僅支援通知通訊端,用於 READY=1 訊息。

    如有需要,您可以提供其他就緒性檢查。例如 HTTP 檢查或其他類型的檢查。

  • 不支援 Socket 類型的單位檔案。系統不會建立 Socket 和環境變數。

1.9.0 版更新

1.9.0 版的簡易 Linux 服務管理工具包含下列更新項目:

  • Linux 服務管理員已正式發布,不再處於公開預先發布階段。

  • 轉換現有的容器工作負載以支援 Autopilot 的程序已變更。您現在需要編輯 Dockerfile 和現有遷移作業的 deployment_spec.yaml 檔案,才能進行轉換。

  • config.yaml 檔案已重新命名為 services-config.yaml

1.8.1 版更新

簡化版 Linux 服務管理工具最初是在「遷移至容器」(Migrate to Containers) 1.8 版的 Public Preview 中發布。1.8.1 版的簡易 Linux 服務管理工具包含下列更新:

  • 您不再需要在遷移計畫中設定註解,以便啟用簡易版 Linux 服務管理器。您現在改為設定 v2kServiceManager。詳情請參閱「將容器部署到 Autopilot 叢集」。

  • 環境變數 HC_GAMMA_RUNTIME 已重新命名為 HC_V2K_SERVICE_MANAGER

  • services-config.yaml 檔案中的 prestartpoststart 項目現在會自動填入。詳情請參閱「使用 services-config.yaml」。

  • 新增支援功能至 services-config.yaml 檔案,讓您在全球層級或應用程式層級指定環境變數。詳情請參閱「使用 services-config.yaml」。

  • 新增記錄功能支援,讓您自訂寫入 Cloud Logging 的記錄資料。詳情請參閱「自訂寫入 Cloud Logging 的記錄資料」。

後續步驟