自動スケーリングのための Satellite クラスターの準備

Satellite

Satellite クラスターでクラスター自動スケーリング機能アドオンを使用するには、事前に以下の手順を実行します。

Satellite クラスターでの自動スケーリングは、許可リストに登録されているアカウントに対してのみベータ版で使用できます。 サポートで Case を開く ことで、許可リストに追加できます。

許可されていないアカウントオートスケーラーを有効にすると、 The 'cluster-autoscaler' add-on is not supported on satellite clusters エラーが発生します。 サポートで Case を開く ことで、許可リストに追加できます。

Satellite クラスターでの自動スケーリングについて

Satellite クラスターのスケールアップはどのように機能しますか?
クラスター自動スケーリング機能は、メモリーまたは CPU リソースの不足のために保留状態のままになっているポッドがないかを定期的に検査します。
  1. オートスケーラは、クラスタ内のワーカープールでスケーリングが有効になっているかどうかをチェックします。 スケーリングが有効になっている場合、オートスケーラは、ペンディング状態で立ち往生しているすべてのポッドを収容するために必要なワーカーノードの数を計算します。 どのワーカー・プールもオートスケーリングが有効になっていない場合、アクションは発生しません。
  2. オートスケーラは、前のステップで計算された必要なワーカーノード数を、 MaxSize またはスケーリングが許可されたワーカーノードの総数と比較します。 許可される MaxSize が、すべてのポッドを満たすために必要なワーカー・ノード数以下である場合、自動スケーリング機能はサイズ変更要求をインスタンス・グループに送信します。
  3. 自動スケーリング機能は、ロケーションに Ready または Unassigned があり、自動スケーリングが有効になっているワーカー・プール内のワーカー・ノードのラベルと一致するホスト・ラベルを持つホストをフェッチします。
  4. 自動スケーリング機能は、サイズ変更要求を満たすのに十分な数の使用可能な Ready または Unassigned ホストがあるかどうかを判別します。
    • その場所で利用可能なホストが十分でない場合、リサイズ操作が不完全であったという警告がログに追加されます。
    • Ready または Unassigned であり、一致するホスト・ラベルを持つ使用可能なホストがある場合、自動スケーリング機能はそれらのホストを使用して要求を満たします。
    • 一致するホスト・ラベルを持つ使用可能なホストがない場合、自動スケーリング機能は、デフォルトのホスト・ラベルのみを持つ Ready または Unassigned ホストをフィルタリングします。 その後、自動スケーリング機能は、スケーリングが有効になっているワーカー・プールのホスト・ラベルと一致するようにそれらのホストのラベルを更新し、それらのホストを使用して要求を満たします。
Satellite クラスターではスケールダウンはどのように機能しますか?
クラスタオートスケーラが、ワーカーノードが指定された scaleDownUnneededTime 時間使用されていないと判断すると、ワーカーはクラスタから削除されます。 それらのワーカーノードに使われていたホストは、その場所で Reload Required または Unassigned の状態になります。 これらのホストはリロードされ、その場所に再接続されるまで、他のクラスタで使用することはできません。 ワーカー・プール内のすべてのワーカーが、同じフレーバーでなければなりません。
ロケーションにスケールアップに使用できるホストがない場合はどうなりますか?
スケールアップのための十分なホストがない場合、ワークロードは完全にはデプロイされません。 ただし、ロケーションにさらにホストが追加されると、スケールアップ操作が自動的に再開されます。
IBM Cloud® Kubernetes Service、 Red Hat® OpenShift® on IBM Cloud® と比較して、 Satellite ではオートスケールはどう違うのですか?
IBM Cloud® Kubernetes Service または Red Hat® OpenShift® on IBM Cloud® は、スケーリングの一環としてインフラストラクチャー内のホストを自動的にプロビジョンまたは削除できます。 Satellite では、ホストはさまざまなインフラストラクチャーに存在するため、自動スケーリング機能はワーカー・ノードを自動的にプロビジョンおよび削除することができません。 代わりに、Satellite クラスターでは、クラスター自動スケーリング機能は、そのロケーションで既に使用可能で準備ができているホストのみを使用します。 これは、スケールアップ時にオートスケーラーが使用するホストを、その場所に追加しておく必要があることを意味する。
クラスター自動スケーリング機能は、クラスターのスケールアップ中にどのようなタイプのホストを使用しますか?
Ready 状況および unassigned 状態のホストは、クラスター自動スケーリング機能で使用可能と見なされます。
スケールアップ中に使用できるホストはどれですか?
Ready ホストと unassigned ホストのうち、スケーリングが有効になっているワーカー・プールのラベルと一致するラベルを持つホストのみをスケーリングに使用できます。 ホストをロケーションに接続する場合は、自動スケーリングされるワーカー・プールで使用するホストにラベルを付けてください。
クラスター自動スケーリング機能は請求にどのように影響しますか?
クラスタ・オートスケーラはインフラストラクチャレベルでは何も実行しないが、ワーカープールにホストを割り当てるので、 クラスタ管理費用が発生する。
スケーリング・イベントの後、現在 Reload required 状態にあるスケーリングに使用されていたホストで何をすればよいですか?
スケーリング後、ホストは Reload required の状態になり、再起動するまでスケーリングに再び使用することはできません。 ワーカープールからこれらのホストの割り当てを解除し、あなたの場所から取り外し、再起動し、再びスケーリングに利用できるように再接続します。
Satellite クラスターで自動スケーリングをセットアップするにはどうすればよいですか?
自動スケーリングをセットアップするには、以下の手順を実行する必要があります。
  1. Satellite ロケーションを作成します。
  2. ロケーション・コントロール・プレーンをセットアップします。
  3. デフォルトのワーカー・プールのホストを接続します。
  4. Satellite ホストを使用するクラスターを作成します。
  5. クラスター内で必要なストレージ・シークレットを検証または作成します。
  6. ロケーションに追加のホストを接続し、クラスター内に 2 つ目のワーカー・プールを作成します。
  7. 追加のホストをロケーションに接続し、それらを未割り当てのままにして、スケーリングに使用できるようにします。
  8. cluster-autoscaler アドオンをインストールします。
  9. 自動スケーリング機能の構成マップを編集して、スケーリングを有効にします。

自動スケーリングのためのロケーションとクラスターのセットアップ

  1. ロケーションの作成を実行して、コントロール・プレーンをセットアップします。

  2. コントロール・プレーンをセットアップした後に、クラスターのデフォルト・ワーカー・プールで使用する追加のホストを接続します。

  3. ロケーションにクラスターを作成します

  4. 以下の storage-secret-store 秘密をコピーし、ファイルとして保存します。 openshift-api エンドポイントの詳細については、 Satellite ロケーションのリンク・エンドポイント のページを参照してください。

    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 などのホストラベルを指定してください。 ホスト・ラベルは、スケーリングに使用できるホストを見つけるために、クラスター自動スケーリング機能アドオンによって使用されます。 CPU およびメモリーのホスト・ラベルを指定しながらホストを接続するコマンドの例。

    ibmcloud sat host attach --location LOCATION --host-label "cpu=16" --host-label "memory=64" [--operating-system SYSTEM]
    
  7. 接続したホストを使用して、2 つ目のワーカー・プールを作成します。 詳しくは、 Creating Red Hat OpenShift on IBM Cloud clusters in Satellite を参照してください。

  8. 追加のホストをロケーションに接続します。ただし、ワーカー・プールには割り当てないでください。 これらの Ready/Unassigned ホストは、自動スケーリングに使用できます。 オートスケーリングで利用可能な状態にしたいホストをアタッチする際には、 cpu=16memory=64 などのホストラベルを必ず指定してください。 ホスト・ラベルは、スケーリングに使用できるホストを見つけるために、クラスター自動スケーリング機能アドオンによって使用されます。

  9. クラスタにクラスタオートスケーラアドオンを インストールします。 エラー・メッセージ「The 'cluster-autoscaler' add-on is not supported on satellite clusters」が表示された場合、ご使用のアカウントはアドオンの使用の許可リストに追加されていません。 許可リストに追加するには、サポートを利用して Case をオープン してください。

  10. クラスタ・オートスケーラ ConfigMap を編集し、 MinSizeMaxSize、スケーリングに使用するワーカー・プールなど、使用するオートスケーリング・パラメータを指定します。