IBM Cloud Docs
在 Satellite 位置上设置虚拟化

在 Satellite 位置上设置虚拟化

您可以将 Bare Metal Servers 设置为在 Satellite 位置中使用 Red Hat OpenShift 虚拟化。 通过使用虚拟化,可以在受管 Red Hat OpenShift 空间中的 Bare Metal Servers 上供应 Windows 或其他虚拟机。

受支持的主机操作系统
Red Hat CoreOS (RHCOS)

先决条件

  • 创建支持 RHCOS 的位置。 要检查您所在的位置是否启用了 RHCOS,请参阅 Is my location enabled for Red Hat CoreOS?。 如果未启用您的位置,请 使用 RHCOS 创建新位置
  • 将主机连接到位置并设置 位置控制平面
  • 查找并记录裸机主机名。
  • 查找裸机服务器网络信息。 记录系统的公共接口和专用接口的 CIDR 和网关信息。
  • 如果要使用 IBM Cloud Object Storage 来存储点火文件,请创建或标识存储区。
  • 在运行受支持操作系统的 Satellite 位置中创建或标识集群; 例如,本教程使用运行 4.11的 Red Hat OpenShift 集群。
  • 如果要使用 OpenShift Data Foundation 作为存储解决方案,请在供应 2 存储磁盘时将其添加到每个 Bare Metal Servers。

Bare Metal Server Satellite

要设置虚拟化,Bare Metal Server 必须满足以下需求。

  • 必须支持虚拟化技术。
    • 对于 Intel CPU,虚拟化支持称为 Intel VTVT-x
    • 对于 AMD CPU,虚拟化支持称为 AMD VirtualizationAMD-V
  • 必须至少具有 8 个核心和 32 GB RAM,以及您的 vCPU 开销所需的任何其他核心。 有关更多信息,请参阅 Red Hat OpenShift 文档中的 CPU 开销
  • 必须包含足够的内存以满足您的工作负载需求。 例如:360 MiB + (1.002 * requested memory) + 146 MiB + 8 MiB * (number of vCPUs) + 16 MiB * (number of graphics devices)。 有关更多信息,请参阅 Red Hat OpenShift 文档中的 内存开销
  • 未安装操作系统。 稍后将在此过程中安装 Red Hat CoreOS 操作系统。
  • 如果要使用 OpenShift Data Foundation 作为存储解决方案,请在供应 2 存储磁盘时将其添加到每个 Bare Metal Servers。

如果您的服务器不满足这些需求,那么可以 创建 Bare Metal Server。 有关裸机选项的列表,请参阅 裸机服务器的可用选项

将裸机服务器连接到您的位置

遵循以下常规步骤将裸机服务器连接到您的位置。 根据您的特定硬件,这些步骤可能有所不同。 有关完整教程,请参阅 连接 IBM Cloud Bare Metal Servers for Classic 主机

  1. 下载 Red Hat CoreOS ISO。 查找与要使用的 Red Hat OpenShift 版本匹配的相应 ISO 版本。 例如,如果要使用 V 4.11,请 下载 4.11的 RHCOS 版本,例如 rhcos-4.11.9-x86_64-live.x86_64.iso

  2. 登录到裸机服务器。

  3. 在 BIOS 设置中,确保已启用虚拟化。

  4. 设置引导顺序以引导您在步骤 1 中下载的 Red Hat CoreOS ISO 文件。

  5. 引导系统以安装 ISO。

  6. 在将 Red Hat CoreOS 引导到内存中之后,设置网络连接,以便您可以提供位置点火文件并将服务器连接到您的位置。

  7. 下载 Satellite 位置的点火脚本。

    ibmcloud sat host attach --location <location_name> --operating-system RHCOS
    
  8. 编辑点火文件以包含裸机主机名和网络信息。 有关添加这些详细信息的更多信息,请参阅 配置点火文件。 请注意,必须编辑要附加到位置的每个裸机服务器的点火文件。

  9. 将点火文件放在裸机服务器可到达的位置。 例如,可以将其上载到 IBM Cloud Object Storage 存储区。

  10. 将点火脚本下载到裸机服务器。

curl <ignition_file_location > ignition.ign
  1. 运行以下 install 命令以启动点火文件。 将 <diskName> 替换为要安装 Red Hat CoreOS 的磁盘位置的完整路径,并将 <filename> 替换为点火文件的路径。
sudo coreos-installer install <diskName> --ignition-file <filename>

安装过程可能需要一两个小时才能完成。

  1. 安装完成后,拔下 RHCOS ISO 文件并从硬盘重新引导。
  2. 检查 Satellite 位置以确认已连接裸机服务器。
  3. 对要连接到位置的每个裸机主机重复这些步骤。

将 Bare Metal Server 主机分配给 Red Hat OpenShift 集群

将 Bare Metal Server 附加到位置后,可以将其分配给 Red Hat OpenShift 集群工作程序池。

  1. 查找要添加到 Red Hat OpenShift 集群工作程序池的主机。

    ibmcloud sat hosts --location <locationID>
    
  2. 将 Bare Metal Server 分配给 Red Hat OpenShift 集群工作程序池。

    ibmcloud sat host assign --location <locationID> --cluster <clusterID> --host <hostID> --worker-pool default --zone <zone>
    

重复这些步骤以将更多 Bare Metal Servers 分配给集群。

现在,Bare Metal Server 已分配给工作程序池,您可以设置 Red Hat OpenShift 虚拟化。

为集群设置存储器

在此示例场景中,通过自动发现 Bare Metal Servers上的可用存储磁盘,可在集群中的 3 节点上部署 OpenShift Data Foundation。

将至少 3 Bare Metal Servers 连接到您的位置并将其分配为集群中的工作程序节点后,您可以使用 odf-local Satellite 存储模板来部署 OpenShift Data Foundation。

  1. Satellite 位置控制台,单击您的位置,然后单击 存储> 创建存储配置
  2. 为配置命名。
  3. 选择 OpenShift Data Foundation for local devices,然后选择 V 4.10
  4. 对于此示例,保留其余缺省设置,然后单击 下一步
  5. 等待 ODF 部署。 然后,通过列出 openshift-storage 名称空间中的 pod 来验证这些 pod 是否已就绪。
    oc get pods -n openshift-storage
    
    示例输出
    NAME                                                              READY   STATUS      RESTARTS   AGE
    ocs-metrics-exporter-5b85d48d66-lwzfn                             1/1     Running     0          2d1h
    ocs-operator-86498bf74c-qcgvh                                     1/1     Running     0          2d1h
    odf-console-68bcd54c7c-5fvkq                                      1/1     Running     0          2d1h
    rook-ceph-mgr-a-758845d77c-xjqkg                                  2/2     Running     0          2d1h
    rook-ceph-mon-a-85d65d9f66-crrhb                                  2/2     Running     0          2d1h
    rook-ceph-mon-b-74fd78856d-s2pdf                                  2/2     Running     0          2d1h
    rook-ceph-mon-c-76f9b8b5f9-gqcm4                                  2/2     Running     0          2d1h
    rook-ceph-operator-5d659cb494-ctkx6                               1/1     Running     0          2d1h
    rook-ceph-osd-0-846cf86f79-z97mc                                  2/2     Running     0          2d1h
    rook-ceph-osd-1-7f79ccf77d-8g4cn                                  2/2     Running     0          2d1h
    rook-ceph-osd-2-549cc486b4-7wf5k                                  2/2     Running     0          2d1h
    rook-ceph-osd-prepare-ocs-deviceset-0-data-0z6pn9-6fwqr           0/1     Completed   0          10d
    rook-ceph-osd-prepare-ocs-deviceset-1-data-0kkxrw-cppk9           0/1     Completed   0          10d
    rook-ceph-osd-prepare-ocs-deviceset-2-data-0pxktc-xm2rc           0/1     Completed   0          10d
    rook-ceph-rgw-ocs-storagecluster-cephobjectstore-a-54c58859nc8j   2/2     Running     0          2d1h
    ...
    ...
    

安装虚拟化操作程序

执行以下步骤以 使用 CLI 安装 Red Hat OpenShift 虚拟化

设置 virtctl CLI

遵循 下载并安装 virtctl CLI 工具的步骤。

为虚拟机创建数据卷

部署 OpenShift Data Foundation 后,可以使用 sat-ocs-ceprbd-gold 存储类来创建数据卷以将存储器用于虚拟机。

  1. 复制以下示例数据卷并将其保存到名为 datavol.yaml 的文件。
    apiVersion: cdi.kubevirt.io/v1beta1
    kind: DataVolume
    metadata:
      name: fedora-1
      namespace: default
    spec:
      source:
        registry:
          pullMethod: node
          url: docker://quay.io/containerdisks/fedora@sha256:29b80ef738f9b09c19efc245aac3921deab9acd542c886cf5295c94ab847dfb5
      pvc:
        accessModes:
          - ReadWriteMany
        resources:
          requests:
            storage: 10Gi
        volumeMode: Block
        storageClassName: sat-ocs-cephrbd-gold
    
  2. 创建数据卷。
    oc apply -f datavol.yaml
    
  3. 验证是否已创建数据卷和相应的 PVC。
    oc get dv,pvc -n default
    
    示例输出。
    NAME                                  PHASE       PROGRESS   RESTARTS   AGE
    datavolume.cdi.kubevirt.io/fedora-1   Succeeded   100.0%                16h
    NAME                             STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS           AGE
    persistentvolumeclaim/fedora-1   Bound    pvc-fd8b1a5b-cc32-42bd-95d0-4ccf2e40bca7   10Gi       RWX            sat-ocs-cephrbd-gold   16h
    

创建虚拟机

  1. 复制以下 VirtualMachine 配置并将其保存到名为 vm.yaml 的文件中。 请注意,您还可以通过 OpenShift Web 控制台创建虚拟机。

    apiVersion: kubevirt.io/v1
    kind: VirtualMachine
    metadata:
      labels:
        app: fedora-1
      name: fedora-1
      namespace: default
    spec:
      running: false
      template:
        metadata:
          labels:
            kubevirt.io/domain: fedora-1
        spec:
          domain:
            cpu:
              cores: 1
              sockets: 2
              threads: 1
            devices:
              disks:
              - disk:
                  bus: virtio
                name: rootdisk
              - disk:
                  bus: virtio
                name: cloudinitdisk
              interfaces:
              - masquerade: {}
                name: default
              rng: {}
            features:
              smm:
                enabled: true
            firmware:
              bootloader:
                efi: {}
            resources:
              requests:
                memory: 8Gi
          evictionStrategy: LiveMigrate
          networks:
          - name: default
            pod: {}
          volumes:
          - dataVolume:
              name: fedora-1
            name: rootdisk
          - cloudInitNoCloud:
              userData: |-
                #cloud-config
                user: cloud-user
                password: 'fedora-1-password'
                chpasswd: { expire: False }
            name: cloudinitdisk
    
  2. 在集群中创建虚拟机。

    oc apply -f vm.yaml
    
  3. 启动虚拟机。

    virtctl start fedora-1 -n default
    
  4. 验证虚拟机是否正在运行。

    oc get vm -n default
    

    示例输出。

    NAME                                  AGE   STATUS    READY
    virtualmachine.kubevirt.io/fedora-1   16h   Running   True
    
  5. 在 OpenShift Web 控制台中,使用您在 VirtualMachine 配置中指定的用户名和密码登录到 VM。 例如,user: cloud-userpassword: 'fedora-1-password'

祝贺您! 您刚刚在 Satellite 集群上部署了 Fedora 虚拟机。

您可以在 OpenShift Virtualization Hands-on Lab中找到有关下一步操作的更多信息。

其他资源