Ops Agent 的代理政策概览

代理政策会在与用户指定的条件匹配的 Compute Engine 虚拟机舰队中自动安装并维护 Ops Agent。您可以通过一条命令为某个 Google Cloud 项目创建政策,以管理与该 Google Cloud 项目关联的现有虚拟机和新虚拟机,从而确保在这些虚拟机上正确安装和卸载 Ops Agent。

Ops Agent 的代理政策

Google Cloud SDK 采用两个版本级别为 Ops Agent 的代理政策提供支持:正式版和 Beta 版。这两种类型的政策都依赖于虚拟机管理器提供的 OS Config 功能,但实现方式不同。我们建议您尽可能使用正式版政策。在大多数情况下,您可以将 Beta 版政策转换为正式版政策

本部分介绍了 Beta 版和正式版代理政策之间的区别。如需了解如何创建和管理代理政策,请参阅以下内容:

Beta 版和正式版代理政策之间的区别

Beta 版和正式版 compute instances ops-agents policies 命令组创建的代理政策在以下方面有所不同:

  • 对旧版 Monitoring 代理和 Logging 代理的支持

    • Beta 版代理政策可以管理旧版 Monitoring 代理和 Logging 代理以及 Ops Agent。
    • 正式版代理政策仅管理 Ops Agent。
  • 代理版本的自动升级

    • Beta 版代理政策可以通过升级代理使代理保持为最新版本。
    • 正式版代理政策不支持自动升级操作。如需了解替代方法,请参阅替换 Beta 版代理升级政策
  • 政策在命名 Compute Engine 实例方面的应用

  • Google Cloud 项目中的代理政策的全球性或可用区级应用

    • Beta 版代理政策会在全球应用于 Google Cloud 项目中根据政策条件选择的所有实例。
    • 正式版代理政策会应用于政策指定的可用区中根据政策条件选择的所有实例。例如,在 us-central1-a 可用区中创建的政策不会影响其他可用区中的虚拟机。

Beta 版和正式版 compute instances ops-agents policies 命令组在结构上也不同:

  • gcloud beta compute instances ops-agents policies 命令通过将各个选项传递给命令来描述代理政策,例如:

    gcloud beta compute instances ops-agents policies create ops-agents-test-policy \
      --agent-rules="type=logging,enable-autoupgrade=false;type=metrics,enable-autoupgrade=false" \
      --description="A test policy." \
      --os-types=short-name=centos,version=7 \
      --instances=zones/us-central1-a/instances/test-instance \
      --project PROJECT_ID
    
  • gcloud compute instances ops-agents policies 命令使用 YAML 配置文件和可用区来描述代理政策,例如:

    gcloud compute instances ops-agents policies create test-policy \
      --zone us-central1-a \
      --file test-policy.yaml \
      --project PROJECT_ID
    

同时使用 Beta 版和正式版政策

只要考虑好政策类型之间的区别,您便可以将 Beta 版和正式版代理政策与 Ops Agent 搭配使用。

Beta 版和正式版代理政策之间最大的行为区别是,正式版政策是可用区级的,而 Beta 版代理政策在项目中是全球性的。也就是说,正式版代理政策仅选择创建政策的可用区中的虚拟机,但 Beta 版政策可以选择 Google Cloud 项目中的任何虚拟机。

如果 Beta 版政策选择一组虚拟机,而正式版政策选择另一组虚拟机,则政策不会发生冲突。

您可以将 Beta 版和正式版代理政策应用于同一虚拟机,但需要确保这些政策的用途不冲突,例如,安装 Ops Agent 的 Beta 版政策和卸载 Ops Agent 的正式版政策。

将 Beta 版政策转换为正式版政策

您可以将 Ops Agent Beta 版代理政策转换为正式版代理政策,前提是政策类型之间不存在您无法解决的区别。您无法将用于旧版 Monitoring 代理或 Logging 代理的 Beta 版代理政策转换为正式版代理政策。

如需将 Beta 版代理政策转换为正式版政策,请执行以下操作:

  1. 通过运行以下命令生成项目中所有 Beta 版代理政策的列表:

    gcloud beta compute instances ops-agents policies list --project PROJECT_ID
    
  2. 确定要转换为正式版政策的 Beta 版代理政策。

  3. 对于您确定进行转化的每个 Beta 版政策,请执行以下操作:

    1. 在考虑到 Beta 版政策和正式版政策之间的区别的情况下,创建尽可能接近 Beta 版政策的 YAML 配置文件。如需了解 YAML 配置格式,请参阅描述代理政策

    2. 在需要政策的每个可用区中创建正式版代理政策。如需了解如何创建正式版代理政策,请参阅创建代理政策

    3. 通过运行以下命令来删除 Beta 版代理政策:

      gcloud beta compute instances ops-agents policies delete POLICY_ID --project PROJECT_ID
      

您可能无法为 Ops Agent 编写与现有 Beta 版代理政策完全相同的正式版代理政策。但是,除了 Beta 版代理政策的自动升级选项之外,您可以获得等效的行为。

以下部分介绍了如何处理以下情况:

将 Beta 版命名实例政策转换为正式版政策

如需转换应用于一组命名虚拟机实例的 Beta 版代理政策,您可以执行以下操作:

  1. 将标签应用于您要选择的一组虚拟机中的实例。如需将标签应用于现有虚拟机,请使用 gcloud compute instances add-labels 命令,如以下命令所示:

    gcloud compute instances add-labels INSTANCE_NAME --labels=KEY=VALUE
    
  2. 使用配置中的 instanceFilter 结构描述一个正式版代理政策,以选择具有新标签的虚拟机。以下示例会创建一个名为 config.yaml 的文件,其中包含与上一步中应用的标签匹配的政策:

    cat > config.yaml << EOF
    agentsRule:
      packageState: installed
      version: 2.47.0
    instanceFilter:
      inclusionLabels:
      - labels:
        KEY: VALUE
    EOF
    

    如需详细了解如何描述正式版代理政策,请参阅代理政策的配置文件

  3. 在包含具有新标签的虚拟机的每个可用区中创建正式版代理政策:

    gcloud compute instances ops-agents policies create POLICY_ID \
      --zone ZONE \
      --file config.yaml
      --project PROJECT_ID
    

    如需详细了解如何创建正式版代理政策,请参阅创建代理政策

替换 Beta 版代理升级政策

如需替换升级代理的 Beta 版代理政策,您可以执行以下操作:

  • 如需确保 Ops Agent 始终保持最新状态,请使用操作系统修补创建并运行操作系统修补作业,以使代理保持为最新版本。
  • 如需执行一次性升级,请执行以下操作:

    1. 请参阅 GitHub 上的 Ops Agent 版本说明,以确定最新版本的 Ops Agent。
    2. 创建或修改安装最新代理版本的代理政策。例如,如果最新版本为 0f03a99be6d2db0d853bb0e91bbcc0793c0a5012,则您可以使用类似以下内容的代理政策 YAML:

      agentsRule:
        packageState: installed
        version: 0f03a99be6d2db0d853bb0e91bbcc0793c0a5012
      instanceFilter:
      [...]
      
    3. 将政策应用于每个可用区中的虚拟机。

支持的操作系统

您可以向运行下表中所示操作系统的 Compute Engine 虚拟机实例应用代理政策:

操作系统 Ops Agent
(正式版和 Beta 版 政策)
Logging 代理
(仅限 Beta 版 政策)
Monitoring 代理
(仅限 Beta 版 政策)
CentOS 8
Rocky Linux 8
RHEL 6
RHEL 7:
rhel-7、rhel-7-6-sap-ha、rhel-7-7-sap-ha、rhel-7-9-sap-ha
RHEL 8:
rhel-8、rhel-8-4-sap-ha、rhel-8-6-sap-ha、rhel-8-8-sap-ha
Debian 9 (Stretch)
Debian 11 (Bullseye)
基于 Debian 11 (Bullseye) 的 Deep Learning VM Image
Ubuntu LTS 18.04 (Bionic Beaver):
ubuntu-1804-lts、ubuntu-minimal-1804-lts
Ubuntu LTS 20.04 (Focal Fossa):
ubuntu-2004-lts、ubuntu-minimal-2004-lts
Ubuntu LTS 22.04 (Jammy Jellyfish):
buntu-2204-lts、ubuntu-minimal-2204-lts
SLES 12:
sles-12、sles-12-sp5-sap
SLES 15:
sles-15、sles-15-sp2-sap、sles-15-sp3-sap、sles-15-sp4-sap、sles-15-sp5-sap、sles-15-sp6-sap
OpenSUSE Leap 15:
opensuse-leap(opensuse-leap-15-3-*、
opensuse-leap-15-4-*)
Windows Server:
2016、2019、2022、Core 2016、Core 2019、Core 2022
  在 Beta 版代理政策中,代理列会映射到为 gcloud beta compute instances ops-agents policies create 调用指定的代理类型
  • Ops Agent 会映射到代理类型 ops-agent
  • Logging 代理会映射到代理类型 logging
  • Monitoring 代理会映射到代理类型 metrics
 rhel-7-9-sap-harhel-8-2-sap-harhel-8-4-sap-ha 不支持 Monitoring 代理。

后续步骤

如需了解如何使用代理政策管理 Ops Agent,请参阅以下内容: