準備 Satellite 叢集以進行自動調整

Satellite

在 Satellite 群集中使用群集自動分量器附加元件之前,請完成下列步驟。

Satellite 集群上的自動擴充功能在 Beta 版中僅適用於允許列表中的帳戶。 您可以透過在支援中心 開立案例 來新增至允許清單。

在未列入允許清單的帳戶上啟用 autoscaler 會導致 The 'cluster-autoscaler' add-on is not supported on satellite clusters 錯誤。 您可以透過在支援中心 開立案例 來新增至允許清單。

瞭解 Satellite 叢集中的自動調整大小

擴增如何針對 Satellite 叢集運作?
叢集 Autoscaler 會定期檢查是否有 Pod 因缺少記憶體或 CPU 資源而停留在擱置狀態。
  1. autoscaler 會檢查群集中的任何 Worker 池是否已啟用擴充。 如果啟用了縮放功能,autoscaler 會計算所需的 Worker 節點數量,以容納所有卡在 pending 狀態的 Pod。 如果沒有 Worker 池已啟用自動調整,則不會發生任何動作。
  2. 自動擴充器會比較所需的 Worker 節點數(在上一步中計算)與 MaxSize 或允許擴充的 Worker 節點總數。 如果容許 MaxSize 小於或等於滿足所有 Pod 所需的工作者節點計數,則 autoscaler 會將調整大小要求傳送至實例群組。
  3. autoscaler 會提取位置中的 ReadyUnassigned,以及主機標籤符合已啟用自動調整之工作者節點儲存區中工作者節點上的標籤的主機。
  4. autoscaler 會判斷是否有足夠可用的 ReadyUnassigned 主機,以滿足調整大小要求。
    • 如果該位置沒有足夠的可用主機,則會在日誌中加入警告,說明調整大小的作業未完成。
    • 如果有可用的主機是 ReadyUnassigned,且具有相符的主機標籤,則 autoscaler 會使用那些主機來滿足要求。
    • 如果沒有主機具有相符的主機標籤,則 autoscaler 會針對僅具有預設主機標籤的主機過濾 ReadyUnassigned 主機。 然後,autoscaler 會更新那些主機上的標籤,以符合已啟用調整大小之工作者節點儲存區的主機標籤,並使用這些主機來滿足要求。
縮減如何在 Satellite 叢集中運作?
當叢集自動分量器判定工作者節點在指定的 scaleDownUnneededTime 時間內使用率不足時,工作者會從叢集中刪除。 用於這些工作人員節點的主機就會在該位置處於 Reload RequiredUnassigned 狀態。 這些主機無法被其他群集使用,直到它們被重新載入並重新連接至位置。 請注意,工作者節點儲存區中的所有工作者節點都必須具有相同的特性。
如果我的位置沒有可擴增的主機,會發生什麼情況?
如果沒有足夠的主機可擴增,則不會完整部署工作量。 但是,將更多主機新增至位置之後,會自動回復擴增作業。
Satellite 上的自動調整與 IBM Cloud® Kubernetes Service 或 Red Hat® OpenShift® on IBM Cloud® 上的自動調整有何不同?
在調整大小的過程中,IBM Cloud® Kubernetes Service 或 Red Hat® OpenShift® on IBM Cloud® 可以自動供應或移除基礎架構中的主機。 使用 Satellite,因為主機位於各種不同的基礎架構上,所以 autoscaler 無法自動佈建及移除工作者節點。 相反地,在 Satellite 叢集上,叢集 Autoscaler 只會使用已在位置中可用且備妥的主機。 這表示您需要在該位置保留額外的主機,供自動擴充器在擴充期間使用。
擴增叢集時叢集 Autoscaler 使用的主機類型為何?
具有 Ready 狀態及 unassigned 狀態的主機會被視為可供叢集 Autoscaler 使用。
擴增期間可以使用哪些可用的主機?
Readyunassigned 主機中,只有其標籤符合已啟用調整大小之工作者節點儲存區的標籤的主機才能用於調整大小。 將主機連接至您的位置時,請務必標示您要在自動調整的工作者節點儲存區中使用的主機。
叢集 Autoscaler 如何影響計費?
因為叢集 Autoscaler 不會在基礎架構層次執行任何作業,所以它會將主機指派給工作者節點儲存區,這表示會產生 叢集管理費
在調整事件之後,我該如何處理現在處於 Reload required 狀態且用於調整大小的主機?
縮放之後,主機會進入 Reload required 狀態,在重新開機之前無法再用於縮放。 將這些主機從工作人員池中解除指定,將它們從您的位置移除,重新開機,然後再重新連接,使它們可以再次進行擴充。
如何在 Satellite 叢集中設定自動調整大小
若要設定自動調整大小,您必須完成下列步驟。
  1. 建立 Satellite 位置。
  2. 設定位置控制平面。
  3. 連接預設工作者節點儲存區的主機。
  4. 建立使用 Satellite 主機的叢集。
  5. 在叢集裡驗證或建立必要的儲存空間密碼。
  6. 將更多主機連接至您的位置,並在叢集裡建立第二個工作者節點儲存區。
  7. 將更多主機連接至您的位置,並將它們保留為未指派且可用於調整。
  8. 安裝 cluster-autoscaler 附加元件。
  9. 編輯 autoscaler ConfigMap 並啟用調整大小。

設定位置及叢集以進行自動調整

  1. 建立位置 並設定控制平面。

  2. 設定控制平面之後,請在叢集的預設工作者節點儲存區中 連接更多主機

  3. 在您的位置建立叢集

  4. 複製下列 storage-secret-store 密鑰並將其儲存為檔案。 您可以在 Satellite 鏈結端點 您所在位置的頁面上找到 openshift-api 端點詳細資料。

    apiVersion: v1
    kind: Secret
    metadata:
      name: storage-secret-store
      namespace: kube-system
    type: Opaque
    stringData:
      ca_iam_api_key: "<iam_api_key>" # Enter your IAM API key
      container_api_route: "API ROUTE" # Enter the Destination IP of the openshift-api Link endpoint for your Satellite loction. For example: https://i43fb00XXX-XXXX6bf59a8XXX-ce00.us-east.satellite.appdomain.cloud
    
  5. 在叢集裡建立密碼。

    oc create -f secret.yaml -n kube-system
    
  6. 將更多主機連接至您要在自動調整的工作者節點儲存區中使用的位置。 最佳作法是不要在預設工作者節點儲存區上設定自動調整。 當您附加要在自動調整工作人員池中使用的主機時,請務必指定主機標籤,例如 cpu=16memory=64。 叢集 Autoscaler 附加程式會使用主機標籤來尋找可用於調整的主機。 指定 CPU 及記憶體的主機標籤時連接主機的範例指令。

    ibmcloud sat host attach --location LOCATION --host-label "cpu=16" --host-label "memory=64" [--operating-system SYSTEM]
    
  7. 使用您所連接的主機建立第二個工作者節點儲存區。 如需相關資訊,請參閱 Creating Red Hat OpenShift on IBM Cloud clusters in Satellite

  8. 將更多主機連接至您的位置,但不要將它們指派給工作者節點儲存區。 這些 Ready/Unassigned 主機可用於自動調整。 當您附加要留待自動調整的主機時,請務必指定主機標籤,例如 cpu=16memory=64。 叢集 Autoscaler 附加程式會使用主機標籤來尋找可用於調整的主機。

  9. 安裝 群集中的群集自動分量器附加元件。 請注意,如果您看到錯誤訊息 The 'cluster-autoscaler' add-on is not supported on satellite clusters,則您的帳戶不會列入允許使用附加程式的清單。 若要新增至允許清單,請在支援中心 開立案例

  10. 編輯叢集 Autoscaler ConfigMap,並指定您要使用的自動調整參數,例如 MinSizeMaxSize,以及您要用於調整大小的工作者節點儲存區。