在 Satellite 位置上設定虛擬化

您可以設定您的 Bare Metal Servers,以便在您的 Satellite 網站中使用 Red Hat OpenShift 虛擬化功能。 透過虛擬化技術,您可以在受管理的 Red Hat OpenShift 環境中,於您的 Bare Metal Servers 上配置 Windows 或其他虛擬機器。

支援的主機作業系統
Red Hat CoreOS (RHCOS)

必要條件

  • 建立啟用 RHCOS 的位置。 若要檢查您的位置是否啟用了 RHCOS,請參閱 我的位置是否已啟用Red HatCoreOS?。 如果未啟用您的位置,請 使用 RHCOS 建立新的位置
  • 將主機連接至您的位置,並設定 位置控制平面
  • 尋找並記錄裸機主機名稱。
  • 尋找裸機伺服器網路資訊。 記錄系統的公用及專用介面的 CIDR 及閘道資訊。
  • 如果您想要使用 IBM Cloud Object Storage 來儲存您的 ignition 檔案,請建立或識別儲存區。
  • 在執行受支援作業系統的 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 版本。 例如,如果您想要使用 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 啟動至記憶體之後,請設定網路連線,以便您可以提供位置 ignition 檔案,並將伺服器連接至您的位置。

  7. 下載 Satellite 位置的 ignition Script。

    ibmcloud sat host attach --location LOCATION_NAME --operating-system RHCOS
    
  8. 編輯您的 ignition 檔案,以包括裸機主機名稱及網路資訊。 如需新增這些詳細資料的相關資訊,請參閱 配置 ignition 檔案。 請注意,您必須編輯要連接至位置之每一個裸機伺服器的 ignition 檔案。

  9. 將您的 ignition 檔案放置在裸機伺服器可以呼叫到的位置。 例如,您可以將它上傳至 IBM Cloud Object Storage 儲存區。

  10. 將 ignition Script 下載至裸機伺服器。

    curl <ignition_file_location > ignition.ign
    
  11. 執行下列 install 指令,以啟動 ignition 檔案。 將 <diskName> 取代為您要安裝 Red Hat CoreOS 之磁碟位置的完整路徑,並將 <filename> 取代為 ignition 檔案的路徑。

    sudo coreos-installer install <diskName> --ignition-file <filename>
    

    安裝程序可能需要一或兩個小時才能完成。

  12. 安裝完成之後,請拔除 RHCOS ISO 檔案並從硬碟重新開機。

  13. 請檢查 Satellite 位置,以確認已連接裸機伺服器。

  14. 針對您要連接至位置的每一個裸機主機,重複這些步驟。

將 Bare Metal Server 主機指派給 Red Hat OpenShift 叢集

將 Bare Metal Server 附加至您的位置之後,您可以將它指派給 Red Hat OpenShift 叢集工作者節點儲存區。

  1. 尋找要新增至 Red Hat OpenShift 叢集工作者節點儲存區的主機。

    ibmcloud sat hosts --location LOCATION_ID
    
  2. 將 Bare Metal Server 指派給 Red Hat OpenShift 叢集工作者節點儲存區。

    ibmcloud sat host assign --location LOCATION_ID --cluster CLUSTER_ID --host HOST_ID --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,然後選取版本 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
    ...
    ...
    

安裝虛擬化操作器

遵循 安裝 Red Hat OpenShift 使用 CLI 虛擬化的步驟。

設定 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 網頁控制台,使用您在 VirtualMachine 設定中指定的使用者名稱和密碼,登入您的 VM。 例如,user: cloud-userpassword: 'fedora-1-password'

恭禧! 您剛剛在 Satellite 叢集上部署了 Fedora 虛擬機器。

您可以在 OpenShift 虛擬化上機實驗室中找到下一步的相關資訊。

其他資源