新的增强型运行时
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 会为您提供一个可在虚拟机工作负载上运行的工具,用于确定工作负载是否适合迁移到容器。如需了解详情,请参阅使用适合度评估工具。
GKE Autopilot 集群简介
Autopilot 是 Google Kubernetes Engine (GKE) 中的一种操作模式。Autopilot 旨在降低管理集群的运营费用、优化生产集群的性能,以及提高工作负载可用性。在 Autopilot 模式中,GKE 预配和管理集群的底层基础架构(包括节点和节点池),为您提供经过优化的集群和自动化的体验。
如需了解详情,请参阅 Autopilot 概览。
Cloud Run 简介
Cloud Run 是一个代管式计算平台,供您运行可通过 Web 请求或 Pub/Sub 事件调用的无状态容器。简化的 Linux 服务管理器允许您在 Cloud Run 上部署迁移的容器工作负载。
将工作负载身份与 Migrate to Containers 和 GKE 搭配使用
借助 Migrate to Containers 和 GKE,您可以将迁移后的工作负载部署到 Google Distributed Cloud Virtual for Bare Metal。有时,您可能会使用与处理集群和部署集群相同的集群。如果您已在部署集群上启用工作负载身份,请确保配置部署环境以支持 Migrate to Containers 和 GKE。
此外,您还必须确保为 Workload Identity 正确配置在 init 过程中启动的所有服务。您执行的步骤取决于集群的服务管理器。如需了解配置步骤,请参阅将 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 moodle | 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、Mardeb |
Compute Engine Marketplace Erpnext | Debian 10.9 | nginx、redis-server、supervisor、mariadb |
Compute Engine Marketplace wildfly | Debian 10.10 | wildfly、cron |
systemd 限制
如果您使用 systemd
作为 init 系统,请注意以下限制:
systemd
服务类型simple
、exec
、notify
被视为exec
服务。这意味着,如果exec
成功,则该服务被视为已启动。只有
READY=1
消息支持针对sd_notify()
的通知套接字。如果需要,您可以提供其他就绪性检查。例如,HTTP 检查或其他类型的检查。
不支持套接字类型单位文件。系统不会创建套接字,也不会创建环境变量。
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 版的一部分发布。简化的 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 的日志数据。