注意: 缓解对虚拟网络接口,实例,裸机服务器和文件共享的行为更改
2024 年 3 月 12 日,在 Virtual Private Cloud (VPC) 服务中提供了一个扩展 虚拟网络接口 支持的功能。 如果在您的帐户中使用,那么此功能会引入对实例,裸机服务器和文件共享的行为更改。 这些更改可能会影响用于管理这些资源的自动化或工作流程。
您可以选择通过 IBM 支持 延迟对此功能部件的访问。 具有延迟访问权的帐户中的用户将无法创建具有虚拟网络接口的实例或裸机服务器。 如果需要更多时间来评估,补救和测试虚拟网络接口的更改,请在使用测试帐户完成缓解时请求延迟生产帐户。
如果您没有延迟访问此功能,请阅读所提供的指导信息,即使您不打算使用虚拟网络接口也是如此。
什么改变了?
以下功能可用于虚拟网络接口:
- 您可以使用连接到称为网络连接的新子资源的虚拟网络接口来创建 实例 和 裸机服务器。 您可以指定
primary_network_attachment
(而不是primary_network_interface
),并提供已创建的虚拟网络接口的身份,或者提供子网来为实例或裸机服务器创建新的虚拟网络接口。 - 虚拟网络接口具有独立于它们所连接到的资源的生命周期。 您可以将
auto_delete
属性 更新 到false
,以允许虚拟网络接口在其原始裸机服务器或实例的生命周期之外持久存储,并重新连接到另一个裸机服务器或实例。 - 虚拟网络接口支持 辅助 IP 地址。 您可以在虚拟网络接口中 添加 和 除去 保留 IP。
- 为了与现有客户机兼容,具有虚拟网络接口的实例和裸机服务器将其网络连接和虚拟网络接口的只读表示作为旧式网络接口子资源。 了解 对旧 API 客户机的支持。
- 对于具有虚拟网络接口的实例和裸机服务器,将在其连接的虚拟网络接口上管理用于允许 IP 电子欺骗或禁用基础结构 NAT 的选项的 IAM 许可权。 当 创建 或 更新 虚拟网络接口时,仅当您分别具有
is.virtual-network-interface.virtual-network-interface.manage-ip-spoofing
和is.virtual-network-interface.virtual-network-interface.manage-infrastructure-nat
IAM 许可权时,才能为allow_ip_spoofing
和enable_infrastructure_nat
属性设置非缺省值。 - 您可以使用 流日志收集器 将实例网络连接和虚拟网络接口作为目标。 不支持裸机服务器和共享安装目标的流日志。
我们为什么要做这个改变?
虚拟网络接口提供了一种机制,用于将网络策略合并到一个可保留和复用的资源中,该资源具有独立于它所连接的资源的生命周期。 特定于网络的 IAM 许可权与计算 IAM 许可权分别进行管理。 当发布新的网络功能部件时,它们将通过虚拟网络接口提供,从而允许新的网络功能部件支持虚拟网络接口可以连接到的所有资源。
这一变化有哪些影响?
除非您具有对此功能的延迟访问权,否则如果您具有与实例,裸机服务器,网络接口或文件共享进行交互的 API 客户机 (例如,定制自动化,审计脚本或仪表板),那么此更改会影响您的帐户。
这些操作可能会导致 API 客户机和工作流程失败。
您可以采取哪些操作来避免发生故障?
本节中描述的行为更改表示在您的帐户未延迟访问此功能时可能会影响代码的危险类型。 帐户中的某人可能会开始执行可能会破坏您的自动化的操作。
将这些更改与您创建的任何客户机自动化进行比较。 使用本指南可通过更新和测试自动化设计来缓解可能导致 API 客户机和工作流程失败的行为更改。
虚拟网络接口修复
您可以创建具有虚拟网络接口的实例和裸机服务器,这些虚拟网络接口连接到称为网络连接的新子资源。 虚拟网络接口具有独立于它们所连接的资源的生命周期,并且在虚拟网络接口上管理特定于网络的 IAM 操作。
- 行为更改 1
-
对于使用网络连接创建的实例或裸机服务器,该实例或裸机服务器的网络接口子资源是其网络连接 (及其关联的虚拟网络接口) 的 只读表示。
-
可能失败: 尝试更新这些只读资源的客户机将失败。
-
缓解: 查看用于检索和更新实例和裸机服务器的
network_interfaces
子资源的客户机代码。 根据需要更新代码,以检查实例或裸机服务器是否存在primary_network_attachment
属性。 更改客户机逻辑以改为更新network_attachments
子资源及其关联的虚拟网络接口。 - 行为更改 2
-
虚拟网络接口具有独立于它们所连接到的资源的生命周期。 在删除
auto_delete
设置为false
的虚拟网络接口的目标之后,该虚拟网络接口将持久存储,并且绑定到该虚拟网络接口的保留 IP 将保持绑定状态。 随后可以将虚拟网络接口连接到另一个资源。 -
可能的失败: 用于删除实例,然后创建新实例以复用已删除实例中的保留 IP 的工作流程可能会失败。 尝试复用未释放的保留 IP 时发生故障,因为该 IP 仍与已删除实例的虚拟网络接口绑定。
-
缓解: 请查看客户机代码,以了解实例和裸机服务器所使用的保留 IP 与
network_interfaces
子资源绑定的任何假设,并且在删除实例或裸机服务器后将始终立即取消绑定。 更改客户机以执行下列其中一项操作:- 在删除与实例或裸机服务器的
network_attachments
相关联的虚拟网络接口上,将auto_delete
属性设置为true
- 在复用所有虚拟网络接口的保留 IP 之前单独删除这些虚拟网络接口
- 复用虚拟网络接口,这将复用虚拟网络接口的所有属性,例如
primary_ip
,任何辅助ips
,任何security_groups
等。
- 在删除与实例或裸机服务器的
- 行为更改 3
-
对于具有虚拟网络接口的实例和裸机服务器,在其关联的虚拟网络接口上管理用于允许 IP 电子欺骗或禁用基础架构 NAT 的选项的 IAM 许可权。
-
可能的故障: 当使用网络连接创建实例或裸机服务器时,更新子网络接口上的属性以允许 IP 电子欺骗或禁用基础结构 NAT 的客户机和工作流程将失败。
-
缓解: 查看用于更新
network_interfaces
子资源上的allow_ip_spoofing
或enable_infrastructure_nat
属性的客户机代码。 更新代码以检查是否存在primary_network_attachment
属性,这表示network_interfaces
子资源是只读的。 请更新客户机逻辑,以根据需要在与实例或裸机服务器的network_attachments
相关联的虚拟网络接口上更新allow_ip_spoofing
或enable_infrastructure_nat
属性。
IP 地址修复
- 行为变化
-
虚拟网络接口支持辅助 IP 地址。
-
可能的故障: 如果
network_interfaces
是network_attachments
及其关联虚拟网络接口的向后兼容表示,那么尝试通过在network_interfaces
子资源上检索primary_ip.address
来枚举实例的 IP 地址的客户机将丢失辅助 IP 地址。 -
缓解: 查看用于枚举或审计实例和裸机服务器的 IP 地址的客户机代码。 更新客户机代码以检查是否存在
primary_network_attachment
属性,这表示实例或裸机服务器具有具有关联虚拟网络接口的network_attachments
。 请更新客户机逻辑,以改为在每个关联的虚拟网络接口上检索ips
数组的所有address
属性。
流日志收集器补救
- 行为变化
-
流日志收集器可以将实例网络连接和虚拟网络接口作为目标。 当接口绑定到实例网络连接时,将为虚拟网络接口收集流日志,并且收集的流日志的 Cloud Object Storage(COS)命名约定 在
vnic-id
字段中具有实例网络连接标识。 在其生存期内,虚拟网络接口可能连接到多个实例。 -
可能的故障: 用于分析从 COS 存储区收集的流日志的工具,审计或故障诊断过程可能无法将日志与虚拟网络接口相关联。
-
缓解: 复审并更新用于创建流日志收集器和分析流日志的工具,审计或故障诊断过程。 以流日志收集器的虚拟网络接口为目标时,请确保分析流日志的过程考虑到收集器可能会在虚拟网络接口的生存期内收集多个实例的流日志。 实例的标识位于 流日志 Object Storage 存储区 的名称的
instance-id
部分中。 因此,通过将虚拟网络接口与新实例相关联来更新虚拟网络接口的target
时,将创建新的流日志 Object Storage 存储区。
Activity Tracker 事件补救
实例模板补救
- 行为更改 1
-
实例模板可以用于具有旧式
network_interfaces
子资源的实例,也可以用于具有network_attachments
子资源和关联虚拟网络接口的实例。 根据实例模板创建实例时,网络接口或附件类型必须与源模板的网络接口或附件类型相匹配。 -
可能的故障: 如果模板用于具有
primary_network_attachment
或network_attachments
的实例,那么根据实例模板创建实例并覆盖primary_network_interface
或network_interfaces
属性的客户机和工作流程将失败。 -
缓解: 在根据模板创建实例之前,请检索实例模板并确定该模板是具有
primary_network_interface
和network_interfaces
属性,还是具有primary_network_attachment
和network_attachments
属性。 根据模板创建实例时,请根据需要将实例属性与模板的实例属性相匹配。 - 行为更改 2
-
实例模板可以用于具有旧式
network_interfaces
子资源的实例,也可以用于具有network_attachments
子资源和关联虚拟网络接口的实例。 根据实例模板创建实例模板时,网络接口或附件类型必须与源模板的网络接口或附件类型相匹配。 -
可能的故障: 如果源模板用于具有
primary_network_attachment
和network_attachments
的实例,那么根据其他实例模板创建实例模板并覆盖primary_network_interface
或network_interfaces
属性的客户机和工作流程将失败。 -
缓解: 在根据源模板创建实例模板之前,请检索源模板并确定源模板是具有
primary_network_interface
和network_interfaces
属性,还是具有primary_network_attachment
和network_attachments
属性。 从源模板创建新模板时,请根据需要将新模板属性与源模板的属性进行匹配。注: 如果下列其中一项为 true,那么您将受到这些模板行为更改的影响:
- API 客户机或帐户中的用户创建具有网络附件的模板,并且客户机尝试使用新模板来创建具有网络接口的实例或模板
- 客户机尝试使用具有网络接口的模板来创建具有网络附件的实例或模板