4.3. 安装后的网络配置
默认情况下,OpenShift Virtualization 安装了一个内部 pod 网络。
4.3.1. 安装网络 Operator
4.3.2. 配置 Linux 网桥网络
安装 Kubernetes NMState Operator 后,您可以为实时迁移或外部访问虚拟机(VM)配置 Linux 网桥网络。
4.3.2.1. 创建 Linux 网桥 NNCP
您可以为 Linux 网桥网络创建一个 NodeNetworkConfigurationPolicy
(NNCP) 清单。
先决条件
- 已安装 Kubernetes NMState Operator。
流程
创建
NodeNetworkConfigurationPolicy
清单。本例包含示例值,您必须替换为您自己的信息。apiVersion: nmstate.io/v1 kind: NodeNetworkConfigurationPolicy metadata: name: br1-eth1-policy 1 spec: desiredState: interfaces: - name: br1 2 description: Linux bridge with eth1 as a port 3 type: linux-bridge 4 state: up 5 ipv4: enabled: false 6 bridge: options: stp: enabled: false 7 port: - name: eth1 8
4.3.2.2. 使用 Web 控制台创建 Linux 网桥 NAD
您可以使用 Red Hat OpenShift Service on AWS web 控制台创建网络附加定义(NAD),为 Pod 和虚拟机提供第 2 层网络。
Linux 网桥网络附加定义是将虚拟机连接至 VLAN 的最有效方法。
不支持在虚拟机的网络附加定义中配置 IP 地址管理(IPAM)。
流程
-
在 Web 控制台中,点 Networking
NetworkAttachmentDefinitions。 点 Create Network Attachment Definition。
注意网络附加定义必须与 pod 或虚拟机位于同一个命名空间中。
- 输入唯一 Name 和可选 Description。
- 从 Network Type 列表中选择 CNV Linux 网桥。
- 在 Bridge Name 字段输入网桥名称。
- 可选:如果资源配置了 VLAN ID,请在 VLAN Tag Number 字段中输入 ID 号。
- 可选: 选择 MAC Spoof Check 来启用 MAC spoof 过滤。此功能只允许单个 MAC 地址退出 pod,从而可以防止使用 MAC 欺骗进行的安全攻击。
- 点 Create。
4.3.3. 配置网络以进行实时迁移
配置了 Linux 网桥网络后,您可以为实时迁移配置专用网络。专用的网络可最小化实时迁移期间对租户工作负载的网络饱和影响。
4.3.3.1. 为实时迁移配置专用的二级网络
要为实时迁移配置专用的二级网络,您必须首先使用 CLI 创建桥接网络附加定义(NAD)。然后,您可以将 NetworkAttachmentDefinition
对象的名称添加到 HyperConverged
自定义资源(CR)。
先决条件
-
已安装 OpenShift CLI(
oc
)。 -
您以具有
cluster-admin
角色的用户身份登录到集群。 - 每个节点至少有两个网络接口卡 (NIC)。
- 用于实时迁移的 NIC 连接到同一 VLAN。
流程
根据以下示例创建
NetworkAttachmentDefinition
清单:配置文件示例
apiVersion: "k8s.cni.cncf.io/v1" kind: NetworkAttachmentDefinition metadata: name: my-secondary-network 1 namespace: openshift-cnv spec: config: '{ "cniVersion": "0.3.1", "name": "migration-bridge", "type": "macvlan", "master": "eth1", 2 "mode": "bridge", "ipam": { "type": "whereabouts", 3 "range": "10.200.5.0/24" 4 } }'
运行以下命令,在默认编辑器中打开
HyperConverged
CR:oc edit hyperconverged kubevirt-hyperconverged -n openshift-cnv
将
NetworkAttachmentDefinition
对象的名称添加到HyperConverged
CR 的spec.liveMigrationConfig
小节中:HyperConverged
清单示例apiVersion: hco.kubevirt.io/v1beta1 kind: HyperConverged metadata: name: kubevirt-hyperconverged spec: liveMigrationConfig: completionTimeoutPerGiB: 800 network: <network> 1 parallelMigrationsPerCluster: 5 parallelOutboundMigrationsPerNode: 2 progressTimeout: 150 # ...
- 1
- 指定要用于实时迁移的 Multus
NetworkAttachmentDefinition
对象的名称。
-
保存更改并退出编辑器。
virt-handler
Pod 会重启并连接到二级网络。
验证
当运行虚拟机的节点置于维护模式时,虚拟机会自动迁移到集群中的另一个节点。您可以通过检查虚拟机实例(VMI)元数据中的目标 IP 地址,验证迁移是否在二级网络中发生,而不是默认 pod 网络。
$ oc get vmi <vmi_name> -o jsonpath='{.status.migrationState.targetNodeAddress}'
4.3.3.2. 使用 Web 控制台选择专用网络
您可以使用 Red Hat OpenShift Service on AWS Web 控制台为实时迁移选择专用网络。
先决条件
- 为实时迁移配置了 Multus 网络。
- 为网络创建了网络附加定义。
流程
- 在 Red Hat OpenShift Service on AWS web 控制台中进入到 Virtualization > Overview。
- 点 Settings 选项卡,然后点 Live migration。
- 从 Live migration network 列表中选择网络。
4.3.4. 使用 Web 控制台启用负载均衡器服务创建
您可以使用 Red Hat OpenShift Service on AWS web 控制台为虚拟机(VM)启用负载均衡器服务。
先决条件
- 已为集群配置负载均衡器。
-
以具有
cluster-admin
角色的用户身份登录。 - 为网络创建了网络附加定义。
流程
-
进入到 Virtualization
Overview。 - 在 Settings 选项卡中,点 Cluster。
- 展开 General settings 和 SSH 配置。
- 将 SSH over LoadBalancer 服务 设置为 on。