全新的強化版執行階段
Migrate to Containers 的原始 Linux 服務管理工具會依賴 sysv init
和 systemd
。簡化版 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
做為初始化系統,請注意下列限制:
simple
、exec
和notify
的systemd
服務類型會視為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
檔案中的prestart
和poststart
項目現在會自動填入。詳情請參閱「使用 services-config.yaml」。新增支援功能至
services-config.yaml
檔案,讓您在全球層級或應用程式層級指定環境變數。詳情請參閱「使用 services-config.yaml」。新增記錄功能支援,讓您自訂寫入 Cloud Logging 的記錄資料。詳情請參閱「自訂寫入 Cloud Logging 的記錄資料」。