Kf 機能のカスタマイズ

ビルドの保持

ガベージ コレクションを行う前に、保持する Kf ビルドの数を制御できます。

kubectl patch \
kfsystem kfsystem \
--type='json' \
-p="[{'op': 'replace', 'path': '/spec/kf/config/buildRetentionCount', 'value': 1}]"

Istio サイドカーを有効または無効にする

Build Pod で Istio サイドカーが不要な場合は、値を true に設定して無効にできます。有効にするには、値を false に設定します。

kubectl patch \
kfsystem kfsystem \
--type='json' \
-p="[{'op': 'replace', 'path': '/spec/kf/config/buildDisableIstioSidecar', 'value': true}]"

Build Pod リソースの上限

非常に大きなビルドの場合は、デフォルトの Pod リソースサイズを増やすことができます。値の単位は Mi または Gi です。

kubectl patch \
kfsystem kfsystem \
--type='json' \
-p="[{'op': 'replace', 'path': '/spec/kf/config/buildPodResources', 'value': {'limits': {'memory': '234Mi'}}}]"

コンテナ リソース管理の詳細については、Kubernetes コンテナ リソースのドキュメントをご覧ください。

サービス ブローカーの自己署名証明書

サービス ブローカーの URL に TLS 用の自己署名証明書(http ではなく https)を使用する場合は、Kf コントローラで CA 証明書が必要となります。このシナリオ用に Kf を構成するには、不変の Kubernetes Secret を kf Namespace に作成し、kfsystem.spec.kf.config.secrets.controllerCACerts.name オブジェクトを指すように更新します。

  1. 自己署名証明書を格納する Secret を作成します。

    kubectl create secret generic cacerts -nkf --from-file /path/to/cert/certs.pem
    
  2. Secret を不変にします。

    kubectl patch -nkf secret cacerts \
      --type='json' \
      -p="[{'op':'add','path':'/immutable','value':true}]"
    
  3. Secret を指すように kfsystem を更新します。

    kubectl patch \
      kfsystem kfsystem \
      --type='json' \
      -p="[{'op':'add','path':'/spec/kf/config/secrets','value':{'controllerCACerts':{'name':'cacerts'}}}]"
    

CPU の最小量と比率を設定する

アプリケーションのデフォルトの CPU の比率と最小量を演算子で設定できます。

値は CPU ユニットで設定します。ユニットは通常、ミリ CPU(m)、つまり 1 CPU の 1,000 分の 1 の単位で表現されます。

spec.kf.config.appCPUMin プロパティは、アプリケーションごとの最小 CPU 量を指定します(デベロッパーがこれより小さい値を指定していても、この値が使用されます)。

kubectl patch \
    kfsystem kfsystem \
    --type='json' \
    -p="[{'op':'add','path':'/spec/kf/config/appCPUMin','value':'200m'}]"

spec.kf.config.appCPUPerGBOfRAM プロパティは、リクエストされた GB または RAM ごとに各アプリに割り当てるデフォルトの CPU 量を指定します。

希望する結果に基づいて、さまざまなアプローチを選択できます。

  • 使用率を最大化したい場合は、クラスタのノードに対して CPU 対 RAM の比率を選択します。
  • 1 CPU 対 RAM 4 GB の比率を選択します。この比率は通常、I/0 またはメモリバウンドのウェブ アプリケーションに適しています。
kubectl patch \
    kfsystem kfsystem \
    --type='json' \
    -p="[{'op':'add','path':'/spec/kf/config/appCPUPerGBOfRAM','value':'250m'}]"