代理政策会在与用户指定的条件匹配的 Compute Engine 虚拟机舰队中自动安装并维护 Ops Agent。您可以为某个 Google Cloud 项目创建政策,以管理与该 Google Cloud 项目关联的现有虚拟机和新虚拟机,从而确保在这些虚拟机上正确安装和卸载 Ops Agent。
Ops Agent 的代理政策
Google Cloud SDK 采用两个版本级别为 Ops Agent 的代理政策提供支持:正式版和 Beta 版。这两种类型的政策都依赖于虚拟机管理器提供的 OS Config 功能,但实现方式不同。我们建议您尽可能使用正式版政策。在大多数情况下,您可以将 Beta 版政策转换为正式版政策。
本部分介绍了 Beta 版和正式版代理政策之间的区别。如需了解如何创建和管理代理政策,请参阅以下内容:
Beta 版和正式版代理政策之间的区别
Beta 版和正式版代理政策在以下方面有所不同:
创建机制
- Beta 版代理政策是使用以下工具创建的:
- Google Cloud SDK 中的
gcloud beta compute instances ops-agents policies
命令组。 agent-policy
Terraform 模块
- Google Cloud SDK 中的
- 正式版代理政策是使用以下工具创建的:
- Google Cloud SDK 中的
gcloud compute instances ops-agents policies
命令组。 ops-agent-policy
Terraform 模块
- Google Cloud SDK 中的
- Beta 版代理政策是使用以下工具创建的:
对旧版 Monitoring 代理和 Logging 代理的支持
- Beta 版代理政策可以管理旧版 Monitoring 代理和 Logging 代理以及 Ops Agent。
- 正式版代理政策仅管理 Ops Agent。
代理版本的自动升级
- Beta 版代理政策可以通过升级代理使代理保持为最新版本。
- 正式版代理政策不支持自动升级操作。如需了解替代方法,请参阅替换 Beta 版代理升级政策。
政策在命名 Compute Engine 实例方面的应用
- Beta 版代理政策可应用于命名实例列表。
- 正式版代理政策不支持命名实例。如需了解如何使用正式版政策获取相同行为,请参阅将 Beta 版命名实例政策转换为正式版政策。
Google Cloud 项目中的代理政策的全球性或可用区级应用
- Beta 版代理政策会在全球应用于 Google Cloud 项目中根据政策条件选择的所有实例。
- 正式版代理政策会应用于政策指定的可用区中根据政策条件选择的所有实例。例如,在
us-central1-a
可用区中创建的政策不会影响其他可用区中的虚拟机。
Beta 版和正式版政策在结构上也不同:
使用
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_IDagent-policy Terraform 模块提供相同的功能。
使用
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_IDops-agent-policy Terraform 模块提供相同的功能。
同时使用 Beta 版和正式版政策
只要考虑好政策类型之间的区别,您便可以将 Beta 版和正式版代理政策与 Ops Agent 搭配使用。
Beta 版和正式版代理政策之间最大的行为区别是,正式版政策是可用区级的,而 Beta 版代理政策在项目中是全球性的。也就是说,正式版代理政策仅选择创建政策的可用区中的虚拟机,但 Beta 版政策可以选择 Google Cloud 项目中的任何虚拟机。
如果 Beta 版政策选择一组虚拟机,而正式版政策选择另一组虚拟机,则政策不会发生冲突。
您可以将 Beta 版和正式版代理政策应用于同一虚拟机,但需要确保这些政策的用途不冲突,例如,安装 Ops Agent 的 Beta 版政策和卸载 Ops Agent 的正式版政策。
将 Beta 版政策转换为正式版政策
您可以将 Ops Agent Beta 版代理政策转换为正式版代理政策,前提是政策类型之间不存在您无法解决的区别。您无法将用于旧版 Monitoring 代理或 Logging 代理的 Beta 版代理政策转换为正式版代理政策。
如需使用 Google Cloud SDK 将 Beta 版代理政策转换为正式版政策,请执行以下操作:
通过运行以下命令生成项目中所有 Beta 版代理政策的列表:
gcloud beta compute instances ops-agents policies
list --project PROJECT_ID确定要转换为正式版政策的 Beta 版代理政策。
对于您确定进行转化的每个 Beta 版政策,请执行以下操作:
在考虑到 Beta 版政策和正式版政策之间的区别的情况下,创建尽可能接近 Beta 版政策的 YAML 配置文件。如需了解 YAML 配置格式,请参阅描述代理政策。
在需要政策的每个可用区中创建正式版代理政策。如需了解如何创建正式版代理政策,请参阅创建代理政策。
通过运行以下命令来删除 Beta 版代理政策:
gcloud beta compute instances ops-agents policies
delete POLICY_ID --project PROJECT_ID
您可能无法为 Ops Agent 编写与现有 Beta 版代理政策完全相同的正式版代理政策。但是,除了 Beta 版代理政策的自动升级选项之外,您可以获得等效的行为。
以下部分介绍了如何处理以下情况:
将 Beta 版命名实例政策转换为正式版政策
如需转换应用于一组命名虚拟机实例的 Beta 版代理政策,您可以执行以下操作:
将标签应用于您要选择的一组虚拟机中的实例。如需将标签应用于现有虚拟机,请使用
gcloud compute instances add-labels
命令,如以下命令所示:gcloud compute instances add-labels INSTANCE_NAME --labels=KEY=VALUE
使用配置中的
instanceFilter
结构描述一个正式版代理政策,以选择具有新标签的虚拟机。以下示例会创建一个名为config.yaml
的文件,其中包含与上一步中应用的标签匹配的政策:cat > config.yaml << EOF agentsRule: packageState: installed version: 2.47.0 instanceFilter: inclusionLabels: - labels: KEY: VALUE EOF
如需详细了解如何描述正式版代理政策,请参阅代理政策的配置文件。
在包含具有新标签的虚拟机的每个可用区中创建正式版代理政策:
gcloud compute instances ops-agents policies
create POLICY_ID \ --zone ZONE \ --file config.yaml --project PROJECT_ID如需详细了解如何创建正式版代理政策,请参阅创建代理政策。
替换 Beta 版代理升级政策
如需替换升级代理的 Beta 版代理政策,您可以执行以下操作:
- 如需确保 Ops Agent 始终保持最新状态,请使用操作系统修补创建并运行操作系统修补作业,以使代理保持为最新版本。
如需执行一次性升级,请执行以下操作:
- 请参阅 GitHub 上的 Ops Agent 版本说明,以确定最新版本的 Ops Agent。
创建或修改安装最新代理版本的代理政策。例如,如果最新版本为 2.51.0,则可以使用类似于以下内容的代理政策 YAML:
agentsRule: packageState: installed version: 2.51.0 instanceFilter: [...]
将政策应用于每个可用区中的虚拟机。
支持的操作系统
您可以向运行下表中所示操作系统的 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 |
gcloud beta compute instances ops-agents policies
create
调用指定的代理类型:- Ops Agent 会映射到代理类型
ops-agent
。 - Logging 代理会映射到代理类型
logging
。 - Monitoring 代理会映射到代理类型
metrics
。
rhel-7-9-sap-ha
、rhel-8-2-sap-ha
或 rhel-8-4-sap-ha
不支持 Monitoring 代理。
后续步骤
如需了解如何使用代理政策管理 Ops Agent,请参阅以下内容: