配置 Google Cloud Compute Engine (GCE) 实例的自动修复,可以确保实例在发生故障时自动重启或重新创建,提高应用程序的可用性。以下是配置自动修复的几种方法:
方法一:使用健康检查和实例组 (Managed Instance Group, MIG)
这是推荐的方法,因为它提供了最全面的自动修复和弹性伸缩功能。
-
创建健康检查 (Health Check):
健康检查用于定期检查实例是否健康。
-
导航到 Google Cloud 控制台 -> Compute Engine -> 健康检查。
-
点击“创建健康检查”。
-
配置健康检查:
- 名称:health-check-example
- 协议:HTTP 或 HTTPS(根据你的应用程序)
- 端口:应用程序监听的端口(例如 80 或 443)
- 请求路径:用于检查健康状态的路径(例如 /healthz 或 /)
- 检查间隔:多久检查一次(例如 5 秒)
- 超时:等待响应的最长时间(例如 5 秒)
- 健康阈值:连续多少次成功检查才认为实例健康(例如 2 次)
- 不健康阈值:连续多少次失败检查才认为实例不健康(例如 3 次)
-
点击“创建”。
-
创建实例模板 (Instance Template):
实例模板定义了创建实例的配置。
-
导航到 Google Cloud 控制台 -> Compute Engine -> 实例模板。
-
点击“创建实例模板”。
-
配置实例模板:
- 名称:instance-template-example
- 机器类型:选择合适的机器类型(例如 e2-medium)
- 操作系统镜像:选择操作系统镜像(例如 Debian GNU/Linux 11)
- 启动磁盘:配置启动磁盘大小和类型
- 网络:选择网络和子网
- 防火墙:允许 HTTP/HTTPS 流量(如果需要)
- (重要)在“管理”选项卡下,设置“自动重启”为“开启”
- (重要)在“管理”选项卡下,设置“抢占性”为“关闭”(如果需要)
-
点击“创建”。
-
创建托管实例组 (Managed Instance Group, MIG):
MIG 使用实例模板创建和管理实例,并集成健康检查。
-
导航到 Google Cloud 控制台 -> Compute Engine -> 实例组。
-
点击“创建实例组”。
-
配置实例组:
- 名称:instance-group-example
- 实例模板:选择之前创建的实例模板 (instance-template-example)
- 位置:选择区域或可用区
- 实例组类型:选择“托管实例组”
- 自动伸缩:配置自动伸缩策略(例如基于 CPU 利用率)
- 最小实例数:设置最小实例数(例如 1)
- 最大实例数:设置最大实例数(例如 3)
- 健康检查:选择之前创建的健康检查 (health-check-example)
- 初始延迟:实例启动后等待健康检查开始的时间(例如 60 秒)
-
点击“创建”。
现在,MIG 会根据实例模板创建实例,并使用健康检查监控实例的健康状态。如果实例变得不健康,MIG 会自动重启或重新创建实例。🎉
方法二:使用自动重启选项
这是一个更简单的方法,但功能有限。它只会在实例崩溃时自动重启实例,而不会检测应用程序级别的健康状态。
-
导航到 Google Cloud 控制台 -> Compute Engine -> 实例。
-
点击要配置自动重启的实例。
-
点击“编辑”。
-
在“管理”选项卡下,找到“自动重启”选项。
-
选择“开启”。
-
点击“保存”。
现在,如果实例崩溃,Google Cloud 会自动重启它。👍
方法三:使用 Cloud Monitoring 和 Cloud Functions
这种方法允许你根据自定义指标和警报触发自动修复操作。这需要编写一些代码。
-
创建 Cloud Monitoring 警报:
配置 Cloud Monitoring 以监控实例的特定指标(例如 CPU 利用率、内存使用率)。当指标超出预定义的阈值时,触发警报。
-
创建 Cloud Function:
编写一个 Cloud Function,该函数在收到 Cloud Monitoring 警报时执行自动修复操作(例如重启实例)。
-
配置 Cloud Monitoring 警报触发 Cloud Function:
配置 Cloud Monitoring 警报以触发 Cloud Function。
这种方法更复杂,但提供了更大的灵活性。👨💻
总结:
-
对于大多数用例,建议使用健康检查和 MIG,因为它提供了最全面的自动修复和弹性伸缩功能。
-
如果只需要基本的自动重启功能,可以使用自动重启选项。
-
如果需要根据自定义指标和警报触发自动修复操作,可以使用 Cloud Monitoring 和 Cloud Functions。
希望这些信息能帮助你配置 GCE 实例的自动修复! Good luck! 🍀