瞭解 VPC 群集中的虛擬網路介面
虛擬私有雲 4.20 及後 僅裸金屬工作節點
虛擬網路介面 (VNI) 可為在 Red Hat OpenShift on IBM Cloud VPC 叢集上運行的工作負載提供進階的網路連線選項,並提供裸金屬工作節點。
什麼是虛擬網路介面?
虛擬網路介面 (VNI) 是 IBM Cloud VPC 抽象,代表個別網路連線。 VNIs 嵌入了網路連線的屬性,包括
- IP 位址(主要和次要)
- MAC 位址
- VPC 子網路關聯
- 安全群組成員
VNI 只能在執行 Red Hat CoreOS (RHCOS) 的裸金屬工作節點的群集中使用。
OpenShift 集群中的 VNI 架構
靜態 VNI
在 IBM Cloud VPC 中建立基於裸金屬的 Red Hat OpenShift on IBM Cloud 群集或新增裸金屬工作站池時,會自動建立兩個 VNI,並連接到每個裸金屬工作站節點:
- 主要 VNI
- 處理常規 Worker 流量,包括 Pod 網路、overlay 使用者定義網路 (UDN) 以及與群集主站的通訊。
- 次級 VNI(載體)
- 充當您管理的動態 VNI 附件的載具。 此 VNI 可讓您為在工作節點上執行的工作負載附加額外的網路介面。
動態 VNI
動態 VNI 會在群集建立後依需求建立與管理。 這些 VNI 可以是
- 附加到特定工作節點
- 設定為在同一區域的工作人員之間浮動
- 用於直接 VPC 網路連線
重要優點
- 直接 VPC 連線
- VNI 可讓工作負載直接連接到 VPC 網路,繞過 Pod 網路覆蓋。 這提供了原生的 VPC 網路功能,例如安全群組、網路 ACL 和路由。
- 安全群組整合
- VNI 可以與 VPC 安全群組相關聯,在介面層級提供精細的網路存取控制。
- 特定區域網路
- VNI 連接到特定的 VPC 子網路和區域。 它們只能處理在配置 VNI 的同一區域中叢集工作站上執行的工作負載的流量。
- 遷移期間的網路保護
- 對於支援即時遷移的工作負載 (例如 OpenShift Virtualization 虛擬機器),VNI 可以隱含地在同一區域內的裸金屬員工實體之間浮動並跟隨工作負載,保留網路連線。
使用案例
- OpenShift 虛擬化
- 啟用虛擬機器的直接 VPC 網路連線,讓虛擬機器擁有自己的 VPC IP 位址。 請參閱 管理 OpenShift 虛擬化的虛擬網路介面。
- 多重網路工作負載
- 同時將工作負載連接到多個 VPC 子網路,實現複雜的網路拓樸和流量分隔。
- 傳統應用程式遷移
- 為需要特定 IP 位址或直接網路存取的容器化應用程式提供類似 VM 的網路。
- 網路功能虛擬化
- 部署需要直接存取 VPC 網路功能的網路功能。
限制與注意事項
- 靜態 VNI 修改
- 請勿修改自動為每個工作站節點建立的靜態 VNI。 雖然這些 VNI 在您的 VPC 帳戶中可見,但不支援對其設定進行任何變更。 這包括附加浮動 IP、變更安全群組或修改任何其他 VNI 屬性。 修改靜態 VNI 可能會導致群集連線問題。
- 浮動附件的 VNI 修改限制
- 您無法修改浮動 (群集範圍內) 動態附件的 VNI 屬性。 這包括變更 VNI 名稱、浮動 IP 位址、基礎架構 NAT 設定和安全群組指派。 若要更新這些設定,您必須先將 VNI 分離、進行變更,然後再將它重新接上群集。 此限制是暫時性的。
- 區域限制
- VNI 不能在區域之間浮動。 在多區群集中,VNI 只能處理配置 VNI 的同一區域中工作負載的流量。
- 裸機需求
- VNI 僅支援裸金屬工作節點。 虛擬伺服器實體 (VSI) 工作節點不支援 VNI。
- RHCOS 要求
- 工作節點必須執行 Red Hat CoreOS (RHCOS) 作業系統。
- OVN- Kubernetes CNI
- 叢集必須使用 OVN- Kubernetes Container Network Interface (CNI) 外掛程式。
- 跨帳戶管理
- 在 Red Hat OpenShift on IBM Cloud 中,工作節點是在 IBM 的帳戶中配置的,而不是您的帳戶。 這表示 VNI 生命週期管理與獨立的 VPC 裸金屬實體不同,而且您對 VNI 附件的能見度也不同。
- 版本需求
- VNI 支援需要 OpenShift 4.20 或更新版本。
必要條件
在群集中使用 VNIs 之前,請確保您已擁有:
- Red Hat OpenShift on IBM Cloud 集群,版本為 4.20 或更新版本
- 群集中的裸金屬工作節點
- Red Hat CoreOS (RHCOS) 作業系統的工作節點上
- OVN- Kubernetes 已配置的 CNI
- 具有適當子網路的 VPC 基礎架構
- 操作員平台存取角色為 Kubernetes Service 在 IBM Cloud IAM
- IBM Cloud IAM 中 VPC 基礎結構服務的編輯或管理員平台存取角色
管理 VNI
您可以從 IBM Cloud 主控台或使用 CLI 管理 VNI。
從主控台附加 VNI
-
從 Red Hat OpenShift on IBM Cloud 群集主控台,選擇您的群集。
-
在導覽功能表中,按一下網路 > VNI 附加元件。
-
按一下附加 VNI。
-
在附加 VNI 面板中,設定下列設定:
- 子網路:選取 VNI 所在的子網路。
- 工作節點:選擇特定工作節點,或選擇浮動 VNI 附件的所有工作節點。
- VNI:選取要附加的 VNI。
- VLAN ID:輸入符合您網路設定的 VLAN ID(範圍:1-500)。
- 自動刪除:可選。 選擇要在從群集移除時自動刪除 VNI。
-
按一下連接。
從 CLI 附加 VNI
若要將虛擬網路介面附加到特定的裸金屬工作節點,請使用 vni attach baremetal 指令。 您必須指定符合網路設定的 VLAN ID(範圍:1-500)。
ibmcloud ks vni attach baremetal --worker WORKER_ID --vni VNI_ID --vlan VLAN_ID [--auto-delete]
若要附加可跟隨同一區域內工作人員之間工作負載的浮動 VNI,請指定群集 ID 而非工作人員 ID:
ibmcloud ks vni attach baremetal --cluster-id CLUSTER_ID --vni VNI_ID --vlan VLAN_ID [--auto-delete]
--auto-delete 標誌會在 VNI 從群集移除時自動刪除。
從主控台檢視 VNI 附件
-
從 Red Hat OpenShift on IBM Cloud 群集主控台,選擇您的群集。
-
在導覽功能表中,按一下網路 > VNI 附加元件。
-
檢視已連接的 VNI 清單,詳細資訊包括 VNI 名稱、工作站節點、子網路、VLAN ID 和主要 IP。
從 CLI 檢視 VNI 附件
若要列出連接至群集的所有 VNI:
ibmcloud ks vni ls --cluster-id CLUSTER_ID
若要列出連接至特定工作站節點的 VNI:
ibmcloud ks vni ls --worker WORKER_ID
從控制台分離 VNI
-
從 Red Hat OpenShift on IBM Cloud 群集主控台,選擇您的群集。
-
在導覽功能表中,按一下網路 > VNI 附加元件。
-
找到要分離的 VNI,然後按一下動作功能表圖示 (⋯)。
-
選取 Detach 並確認動作。
從 CLI 刪除 VNI
若要從 Worker 節點分離 VNI,請同時指定 VNI ID 和 Worker ID:
ibmcloud ks vni detach --worker WORKER_ID --vni VNI_ID
對於浮動 VNI,首先列出 VNI 以找出目前的 Worker ID,然後再使用該 Worker ID 離開。
如需更詳細的範例和使用個案,請參閱 管理 OpenShift 虛擬化的虛擬網路介面。