注意: 減輕虛擬網路介面、實例、裸機伺服器及檔案共用的行為變更

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-spoofingis.virtual-network-interface.virtual-network-interface.manage-infrastructure-nat IAM 許可權時,才能設定 allow_ip_spoofingenable_infrastructure_nat 內容的非預設值。
  • 您可以使用 流程日誌收集器 來設定實例網路連接及虛擬網路介面的目標。 不支援裸機伺服器和共用裝載目標的流程日誌。

我們為什麼要做這種改變?

虛擬網路介面提供一種機制,可將網路原則合併在可保留及重複使用的資源中,且其生命週期與它所連接的資源無關。 網路特定的 IAM 許可權與計算 IAM 許可權分開管理。 當發行新的網路特性時,它們將透過虛擬網路介面提供,容許新的網路特性支援虛擬網路介面可以連接的所有資源。

這項改變有何影響?

除非您具有此特性的延遲存取權,否則如果您具有與實例、裸機伺服器、網路介面或檔案共用互動的 API 用戶端 (例如自訂自動化、審核 Script 或儀表板),則您的帳戶會受到此變更的影響。

這些作業可能會導致 API 用戶端及工作流程失敗。

您可以採取哪些動作來避免失敗?

本節中說明的行為變更代表如果您的帳戶未延遲存取此特性,則可能會影響程式碼的危險類型。 您帳戶中的某人可能會開始執行可能會中斷自動化的作業。

將這些變更與您所建立的任何用戶端自動化進行比較。 使用此指引,透過更新及測試自動化的設計,來減輕可能導致 API 用戶端及工作流程失敗的行為變更。

虛擬網路介面補救

您可以建立實例及裸機伺服器,其虛擬網路介面連接至稱為網路連接的新子項資源。 虛擬網路介面具有與所連接資源無關的生命週期,並且在虛擬網路介面上管理網路特定的 IAM 動作。

行為變更 1

對於使用網路連接建立的實例或裸機伺服器,實例或裸機伺服器的網路介面子項資源是其網路連接 (及其相關聯虛擬網路介面) 的 唯讀表示法

可能的失敗: 嘗試更新這些唯讀資源的用戶端將會失敗。

緩解: 檢閱用戶端程式碼,以擷取並更新實例及裸機伺服器的 network_interfaces 子項資源。 視需要更新程式碼,以檢查實例或裸機伺服器是否存在 primary_network_attachment 內容。 變更用戶端邏輯,以改為更新 network_attachments 子項資源及其相關聯的虛擬網路介面。

行為變更 2

虛擬網路介面的生命週期與它們所連接的資源無關。 將 auto_delete 設為 false 的虛擬網路介面在刪除其目標之後將持續保存,且連結至虛擬網路介面的保留 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_spoofingenable_infrastructure_nat 內容。 更新程式碼以檢查 primary_network_attachment 內容是否存在,這表示 network_interfaces 子項資源是唯讀的。 更新用戶端邏輯,以改為視需要在與實例或裸機伺服器的 network_attachments 相關聯的虛擬網路介面上更新 allow_ip_spoofingenable_infrastructure_nat 內容。

IP 位址補救

行為變更

虛擬網路介面支援次要 IP 位址。

可能的失敗: 如果 network_interfacesnetwork_attachments 及其相關聯虛擬網路介面的向後相容表示法,則嘗試透過在 network_interfaces 子項資源上擷取 primary_ip.address 來列舉實例的 IP 位址的用戶端將會遺失次要 IP 位址。

緩解: 檢閱列舉或審核實例及裸機伺服器的 IP 位址的用戶端程式碼。 更新用戶端程式碼以檢查 primary_network_attachment 內容是否存在,這表示實例或裸機伺服器具有具有相關聯虛擬網路介面的 network_attachments。 更新用戶端邏輯,以改為擷取每一個相關聯虛擬網路介面上 ips 陣列的所有 address 內容。

流程日誌收集器補救

行為變更

流程日誌收集器可以將實例網路連接及虛擬網路介面設為目標。 當介面連結至實例網路連接時,會收集虛擬網路介面的流程日誌,且所收集流程日誌的 Cloud Object Storage(COS)命名慣例vnic-id 欄位中具有實例網路連接 ID。 在其生命期限內,虛擬網路介面可以連接至多個實例。

可能的故障:分析從 IBM Cloud® Object Storage 儲存桶收集的流量記錄的工具、稽核或故障排除程序,可能無法將記錄與虛擬網路介面相關聯。

緩解: 檢閱並更新建立流程日誌收集器及分析流程日誌的工具、審核或疑難排解程序。 以具有流程日誌收集器的虛擬網路介面為目標時,請確保分析流程日誌的程序考慮到在虛擬網路介面的生命期限內,收集器可能會收集多個實例的流程日誌。 實例的 ID 位於 流程日誌 Object Storage 儲存區 名稱的 instance-id 區段中。 因此,當透過將虛擬網路介面與新實例相關聯來更新虛擬網路介面的 target 時,會建立新的流程日誌 Object Storage 儲存區。

活動追蹤事件補救

行為變更

擴大對虛擬網路介面的支援,增加許多新的 活動追蹤事件

可能發生的故障:未針對新活動追蹤事件更新的用戶端工具和稽核程序會報告不完整的事件序列。

緩解措施:檢閱消耗活動追蹤事件的工具,並視需要更新工具,以包含新事件。 考慮到網路附件的 唯讀表示 不會產生活動追蹤事件。

實例範本補救

行為變更 1

實例範本可以適用於具有舊式 network_interfaces 子項資源的實例,也可以適用於具有 network_attachments 子項資源及相關聯虛擬網路介面的實例。 從實例範本建立實例時,網路介面或連接類型必須符合來源範本的網路介面或連接類型。

可能的失敗: 如果範本適用於具有 primary_network_attachmentnetwork_attachments 的實例,則從實例範本建立實例並置換 primary_network_interfacenetwork_interfaces 內容的用戶端及工作流程將失敗。

緩解: 從範本建立實例之前,請先擷取實例範本,並判斷範本是否具有 primary_network_interfacenetwork_interfaces 內容,或 primary_network_attachmentnetwork_attachments 內容。 從範本建立實例時,視需要將實例內容與範本內容進行比對。

行為變更 2

實例範本可以適用於具有舊式 network_interfaces 子項資源的實例,也可以適用於具有 network_attachments 子項資源及相關聯虛擬網路介面的實例。 從實例範本建立實例範本時,網路介面或附件類型必須符合來源範本的網路介面或附件類型。

可能的失敗: 如果來源範本適用於具有 primary_network_attachmentnetwork_attachments 的實例,則從另一個實例範本建立實例範本並置換 primary_network_interfacenetwork_interfaces 內容的用戶端及工作流程將失敗。

緩解: 從來源範本建立實例範本之前,請先擷取來源範本,並判斷來源範本是否具有 primary_network_interfacenetwork_interfaces 內容,或 primary_network_attachmentnetwork_attachments 內容。 從來源範本建立新範本時,視需要將新範本內容與來源範本內容進行比對。

附註: 如果下列一項為真,則您會受到這些範本行為變更的影響:

  • API 用戶端或帳戶中的使用者會建立具有網路連接的範本,且用戶端會嘗試使用新範本來建立具有網路介面的實例或範本
  • 用戶端嘗試使用具有網路介面的範本來建立具有網路連接的實例或範本

檔案共用補救

行為變更

連接至檔案共用裝載目標的虛擬網路介面可能會將其 auto_delete 內容設為 false。 刪除與此類虛擬網路介面相關聯的檔案共用裝載目標時,不會自動刪除虛擬網路介面。 虛擬網路介面隨後可以針對另一個資源 (例如另一個檔案共用裝載目標) 重複使用。

可能的失敗: 刪除檔案共用裝載目標,然後刪除子網路的工作流程可能會失敗。 當子網路包含未自動刪除的虛擬網路介面時發生失敗。

緩解: 檢閱用戶端程式碼是否有 auto_delete 一律 true 的任何假設,並視需要更新用戶端的刪除邏輯,以查閱與共用裝載目標相關聯的 virtual_network_interface。 接著請選擇以下其中一項操作:

  • 在刪除共用裝載目標之前,將虛擬網路介面的 auto_delete 內容設為 true
  • 在後續步驟中刪除虛擬網路介面
  • 保留虛擬網路介面,以便稍後與新的共用裝載目標一起重複使用