GitLab Shellチャートの使用
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab Self-Managed
gitlab-shell GitLab Shell Helmチャートは、GitLabへのGitアクセス用に設定されたサーバーを提供します。
要件
このチャートは、完全なGitLabチャートの一部として、またはこのチャートがデプロイされているKubernetesクラスタから到達可能な外部サービスとして提供されるWorkhorseサービスへのアクセスに依存します。
設計上の選択
SSHレプリカを容易にサポートし、SSH認証キーの共有ストレージの使用を避けるために、GitLab認証キーエンドポイントに対して認証するために、SSH AuthorizedKeysCommandを使用しています。その結果、これらのポッド内のAuthorizedKeysファイルを永続化または更新しません。
設定
gitlab-shellチャートは、外部サービスとチャートの設定の2つの部分で構成されています。Ingressを介して公開されるポートは、global.shell.portで構成され、22がデフォルトです。Serviceの外部ポートもglobal.shell.portによって制御されます。
インストールコマンドラインオプション
| パラメータ | デフォルト | 説明 |
|---|---|---|
affinity | {} | アフィニティルール(ポッドの割り当て用) |
annotations | ポッドの注釈 | |
podLabels | 追加のポッドラベル。セレクターには使用されません。 | |
common.labels | このチャートによって作成されたすべてのオブジェクトに適用される追加のラベル。 | |
config.ciphers | 説明を参照してください。 | 許可される暗号を特定します。デフォルトは、Goでサポートされているアルゴリズムです。FIPSビルドについては、FIPS承認済み暗号を参照してください。 |
config.kexAlgorithms | 説明を参照してください。 | 利用可能なKEX(キー交換)アルゴリズムを指定します。デフォルトは、Goでサポートされているアルゴリズムです。FIPSビルドについては、FIPS承認済みキー交換アルゴリズムを参照してください。 |
config.macs | 説明を参照してください。 | 利用可能なMAC(メッセージ認証コード)アルゴリズムを指定します。デフォルトは、Goでサポートされているアルゴリズムです。FIPSビルドについては、FIPS承認済みMACを参照してください。 |
config.clientAliveInterval | 0 | それ以外の場合はアイドル状態の接続でのキープアライブpingの間隔。デフォルト値0は、このpingを無効にします。 |
config.loginGraceTime | 60 | ユーザーが正常にログインしていない場合、サーバーが切断するまでの時間を指定します |
config.maxStartups.full | 100 | 認証されていない接続数が指定された数に達すると、SSHd拒否確率が直線的に増加し、すべての認証されていない接続試行が拒否されます |
config.maxStartups.rate | 30 | 認証されていない接続が多すぎる場合、SSHdは指定された確率で接続を拒否します(オプション) |
config.maxStartups.start | 10 | 現在、指定された数を超える認証されていない接続がある場合、SSHdはいくつかの確率で接続試行を拒否します(オプション) |
config.proxyProtocol | false | gitlab-sshdデーモンのPROXYプロトコルサポートを有効にします |
config.proxyPolicy | "use" | PROXYプロトコルを処理するためのポリシーを指定します。値は、use, require, ignore, rejectのいずれかである必要があります |
config.proxyHeaderTimeout | "500ms" | gitlab-sshdがPROXYプロトコルヘッダーの読み取りをあきらめる前に待機する最大時間。単位(ms、s、またはm)を含める必要があります。 |
config.publicKeyAlgorithms | [] | 公開キーアルゴリズムのカスタムリスト。空の場合、デフォルトのアルゴリズムが使用されます。 |
config.gssapi.enabled | false | gitlab-sshdデーモンのGSS-APIサポートを有効にします |
config.gssapi.keytab.secret | gssapi-with-mic認証方式のキータブを保持するKubernetesシークレットの名前 | |
config.gssapi.keytab.key | keytab | Kubernetesシークレット内のキータブを保持するキー |
config.gssapi.krb5Config | GitLab Shellコンテナ内の/etc/krb5.confファイルの内容 | |
config.gssapi.servicePrincipalName | gitlab-sshdデーモンで使用されるKerberosサービス名 | |
config.lfs.pureSSHProtocol | false | LFS Pure SSHプロトコルサポートを有効にします |
config.pat.enabled | true | SSHを使用したPATを有効にします |
config.pat.allowedScopes | [] | SSHで生成されたPATに許可されるスコープの配列 |
opensshd.supplemental_config | 追加構成、sshd_configに追加。manページへの厳密なアラインメント | |
deployment.livenessProbe.initialDelaySeconds | 10 | Livenessプローブが開始されるまでの遅延 |
deployment.livenessProbe.periodSeconds | 10 | Livenessプローブを実行する頻度 |
deployment.livenessProbe.timeoutSeconds | 3 | Livenessプローブがタイムアウトした場合 |
deployment.livenessProbe.successThreshold | 1 | 障害発生後、Livenessプローブが成功したと見なされるための最小連続成功数 |
deployment.livenessProbe.failureThreshold | 3 | 成功後、Livenessプローブが失敗したと見なされるための最小連続失敗数 |
deployment.readinessProbe.initialDelaySeconds | 10 | Readinessプローブが開始されるまでの遅延 |
deployment.readinessProbe.periodSeconds | 5 | Readinessプローブを実行する頻度 |
deployment.readinessProbe.timeoutSeconds | 3 | Readinessプローブがタイムアウトした場合 |
deployment.readinessProbe.successThreshold | 1 | 障害発生後、Readinessプローブが成功したと見なされるための最小連続成功数 |
deployment.readinessProbe.failureThreshold | 2 | 成功後、Readinessプローブが失敗したと見なされるための最小連続失敗数 |
deployment.strategy | {} | デプロイで使用される更新ストラテジを構成できます |
deployment.terminationGracePeriodSeconds | 30 | Kubernetesがポッドの強制終了を待機する秒数 |
enabled | true | Shell有効フラグ |
extraContainers | 含めるコンテナのリストを含む複数行のリテラルスタイルの文字列 | |
extraInitContainers | 含める追加のinitコンテナのリスト | |
extraVolumeMounts | 実行する追加のボリュームマウントのリスト | |
extraVolumes | 作成する追加のボリュームのリスト | |
extraEnv | 公開する追加の環境変数のリスト | |
extraEnvFrom | 公開する他のデータソースからの追加の環境変数のリスト | |
hpa.behavior | {scaleDown: {stabilizationWindowSeconds: 300 }} | 動作には、アップスケールおよびダウンスケール動作の仕様が含まれています(autoscaling/v2beta2以上が必要です) |
hpa.customMetrics | [] | カスタムメトリクスには、目的のレプリカ数を計算するために使用する仕様が含まれています(targetAverageUtilizationで構成された平均CPU使用率のデフォルトの使用をオーバーライドします) |
hpa.cpu.targetType | AverageValue | オートスケールCPUターゲットタイプを設定します。UtilizationまたはAverageValueのいずれかである必要があります |
hpa.cpu.targetAverageValue | 100m | オートスケールCPUターゲット値を設定します |
hpa.cpu.targetAverageUtilization | オートスケールCPUターゲット使用率を設定します | |
hpa.memory.targetType | オートスケールメモリターゲットタイプを設定します。UtilizationまたはAverageValueのいずれかである必要があります | |
hpa.memory.targetAverageValue | オートスケールメモリターゲット値を設定します | |
hpa.memory.targetAverageUtilization | オートスケールメモリターゲット使用率を設定します | |
hpa.targetAverageValue | 非推奨 オートスケールCPUターゲット値を設定します | |
image.pullPolicy | IfNotPresent | Shellイメージプルポリシー |
image.pullSecrets | イメージリポジトリのシークレット | |
image.repository | registry.gitlab.com/gitlab-org/build/cng/gitlab-shell | Shellイメージリポジトリ |
image.tag | master | Shellイメージタグ |
init.image.repository | initContainerイメージ | |
init.image.tag | initContainerイメージタグ | |
init.containerSecurityContext | initContainer固有のセキュリティコンテキスト | |
init.containerSecurityContext.allowPrivilegeEscalation | false | initContainer固有: プロセスが親プロセスよりも多くの特権を取得できるかどうかを制御します |
init.containerSecurityContext.runAsNonRoot | true | initContainer固有: コンテナを非rootユーザーで実行するかどうかを制御します |
init.containerSecurityContext.capabilities.drop | [ "ALL" ] | initContainer固有: コンテナのLinuxケイパビリティを削除します |
keda.enabled | false | HorizontalPodAutoscalersの代わりにKEDA ScaledObjectsを使用します |
keda.pollingInterval | 30 | 各トリガーをチェックする間隔 |
keda.cooldownPeriod | 300 | 最後トリガーがアクティブであると報告されてから、リソースを0にスケールバックするまで待機する期間 |
keda.minReplicaCount | minReplicas | KEDAがリソースをスケールダウンする最小レプリカ数。 |
keda.maxReplicaCount | maxReplicas | KEDAがリソースをスケールアップする最大レプリカ数。 |
keda.fallback | KEDAフォールバック構成、ドキュメントを参照してください | |
keda.hpaName | keda-hpa-{scaled-object-name} | KEDAが作成するHPAリソースの名前。 |
keda.restoreToOriginalReplicaCount | ScaledObjectが削除された後、ターゲットリソースを元のレプリカ数にスケールバックするかどうかを指定します | |
keda.behavior | hpa.behavior | アップスケールおよびダウンスケール動作の仕様。 |
keda.triggers | ターゲットリソースのスケールをアクティブにするトリガーのリスト。hpa.cpuおよびhpa.memoryから計算されたトリガーにデフォルト設定されています | |
logging.format | json | 非構造化ログの場合はtextに設定 |
logging.sshdLogLevel | ERROR | 基になるSSHデーモンのログレベル |
priorityClassName | に割り当てられるPriority class。 | |
replicaCount | 1 | Shellレプリカ |
serviceLabels | {} | 追加のサービスラベル |
service.allocateLoadBalancerNodePorts | Kubernetesのデフォルト値を使用するように設定されていません。 | ロードバランサーサービスでのNodePort割り当てを無効にすることができます。ドキュメントを参照してください |
service.externalTrafficPolicy | Cluster | Shellサービス外部トラフィックポリシー(クラスタまたはローカル) |
service.internalPort | 2222 | Shell内部ポート |
service.nodePort | 設定されている場合、shell nodePortを設定します | |
service.name | gitlab-shell | Shellサービス名 |
service.type | ClusterIP | Shellサービスタイプ |
service.loadBalancerIP | ロードバランサーに割り当てるIPアドレス(サポートされている場合) | |
service.loadBalancerSourceRanges | ロードバランサーへのアクセスを許可されたIP CIDRのリスト(サポートされている場合) | |
serviceAccount.annotations | {} | ServiceAccountの注釈 |
serviceAccount.automountServiceAccountToken | false | デフォルトのServiceAccountアクセストークンをポッドにマウントするかどうかを示します |
serviceAccount.create | false | ServiceAccountを作成するかどうかを示します |
serviceAccount.enabled | false | ServiceAccountを使用するかどうかを示します |
serviceAccount.name | ServiceAccountの名前。設定されていない場合、チャートのフルネームが使用されます | |
securityContext.fsGroup | 1000 | ポッドを開始するグループID |
securityContext.runAsUser | 1000 | ポッドを開始するユーザーID |
securityContext.fsGroupChangePolicy | ボリュームの所有権と許可を変更するためのポリシー(Kubernetes 1.23が必要です) | |
securityContext.seccompProfile.type | RuntimeDefault | 使用するSeccompプロファイル |
containerSecurityContext | コンテナの起動元のセキュリティコンテキストをオーバーライドします | |
containerSecurityContext.runAsUser | 1000 | コンテナの起動元の特定のセキュリティコンテキストを上書きできるようにします |
containerSecurityContext.allowPrivilegeEscalation | false | コンテナのプロセスが親プロセスよりも多くの特権を取得できるかどうかを制御します |
containerSecurityContext.runAsNonRoot | true | コンテナを非rootユーザーで実行するかどうかを制御します |
containerSecurityContext.capabilities.drop | [ "ALL" ] | GitalyコンテナのLinuxケイパビリティを削除します |
sshDaemon | openssh | 実行するSSHデーモンを選択します。可能な値(openssh、gitlab-sshd) |
tolerations | [] | ポッド割り当ての容認ラベル |
traefik.entrypoint | gitlab-shell | traefikを使用する場合、GitLab Shellに使用するtraefikエントリポイント。デフォルトはgitlab-shellです。 |
traefik.tcpMiddlewares | [] | traefikを使用する場合、IngressRouteTCPリソースに追加するTCPミドルウェア。デフォルトでは、ミドルウェアはありません |
workhorse.serviceName | webservice | Workhorseサービス名(デフォルトでは、Workhorseはwebserviceポッド / Serviceの一部です) |
metrics.enabled | false | メトリクスエンドポイントをスクレイプできるようにする必要がある場合(sshDaemon=gitlab-sshdが必要です)。 |
metrics.port | 9122 | メトリクスエンドポイントポート |
metrics.path | /metrics | メトリクスエンドポイントパス |
metrics.serviceMonitor.enabled | false | Prometheus Operatorがメトリクスのスクレイプを管理できるようにServiceMonitorを作成する必要がある場合は、これを有効にすると、prometheus.ioスクレイプ注釈が削除されることに注意してください |
metrics.serviceMonitor.additionalLabels | {} | ServiceMonitorに追加する追加のラベル |
metrics.serviceMonitor.endpointConfig | {} | ServiceMonitorの追加のエンドポイント構成 |
metrics.annotations | 非推奨 明示的なメトリクス注釈を設定します。テンプレートコンテンツに置き換えられました。 |
チャート設定
extraEnv
extraEnvを使用すると、ポッド内のすべてのコンテナに追加の環境変数を公開できます。
extraEnvの使用例を以下に示します:
extraEnv:
SOME_KEY: some_value
SOME_OTHER_KEY: some_other_valueコンテナが起動されると、環境変数が公開されていることを確認できます:
env | grep SOME
SOME_KEY=some_value
SOME_OTHER_KEY=some_other_valueextraEnvFrom
extraEnvFromを使用すると、内のすべてので、他のデータソースからの追加のを公開できます。
extraEnvFromの使用例を以下に示します:
extraEnvFrom:
MY_NODE_NAME:
fieldRef:
fieldPath: spec.nodeName
MY_CPU_REQUEST:
resourceFieldRef:
containerName: test-container
resource: requests.cpu
SECRET_THING:
secretKeyRef:
name: special-secret
key: special_token
# optional: boolean
CONFIG_STRING:
configMapKeyRef:
name: useful-config
key: some-string
# optional: booleanimage.pullSecrets
pullSecretsを使用すると、プライベートレジストリに対して認証して、ポッドのイメージをプルできます。
プライベートレジストリとその認証方法の詳細については、Kubernetesドキュメントを参照してください。
pullSecretsの使用例を以下に示します:
image:
repository: my.shell.repository
tag: latest
pullPolicy: Always
pullSecrets:
- name: my-secret-name
- name: my-secondary-secret-nameserviceAccount
このセクションでは、ServiceAccountを作成するかどうか、およびデフォルトのアクセストークンをポッドにマウントするかどうかを制御します。
| 名前 | 型 | デフォルト | 説明 |
|---|---|---|---|
annotations | マップ | {} | ServiceAccountの注釈。 |
automountServiceAccountToken | ブール値 | false | デフォルトのをにマウントするかどうかを制御します。これは、特定のサイドカーが正常に機能するために必要という場合(Istioなど)を除き、有効にしないようにしてください。 |
create | ブール値 | false | ServiceAccountを作成するかどうかを示します。 |
enabled | ブール値 | false | ServiceAccountを使用するかどうかを示します。 |
name | 文字列 | ServiceAccountの名前。設定されていない場合、チャートのフルネームが使用されます。 |
livenessProbe/readinessProbe
deployment.livenessProbeとdeployment.readinessProbeは、一部のシナリオでポッドの終了を制御するのに役立つメカニズムを提供します。
大規模なリポジトリは、通常実行時間の長い接続に一致するように、livenessプローブとreadinessプローブの時間を調整するとメリットがあります。cloneおよびpush操作中の潜在的な中断を最小限に抑えるために、readinessプローブの期間をlivenessプローブの期間よりも短く設定します。terminationGracePeriodSecondsを増やし、スケジューラがポッドを終了する前に、これらの操作により多くの時間を与えます。より大きなリポジトリのワークロードで安定性と効率性を高めるために、GitLab Shellポッドを調整するための開始ポイントとして、以下の例を検討してください。
deployment:
livenessProbe:
initialDelaySeconds: 10
periodSeconds: 20
timeoutSeconds: 3
successThreshold: 1
failureThreshold: 10
readinessProbe:
initialDelaySeconds: 10
periodSeconds: 5
timeoutSeconds: 2
successThreshold: 1
failureThreshold: 3
terminationGracePeriodSeconds: 300この構成に関する追加の詳細については、公式のKubernetesドキュメントを参照してください。
tolerations
tolerationsを使用すると、taintされたワーカーノードでポッドをスケジュールできます
tolerationsの使用例を以下に示します:
tolerations:
- key: "node_label"
operator: "Equal"
value: "true"
effect: "NoSchedule"
- key: "node_label"
operator: "Equal"
value: "true"
effect: "NoExecute"affinity
詳細については、affinityを参照してください。
annotations
annotationsを使用すると、注釈をGitLab Shellポッドに追加できます。
annotationsの使用例を以下に示します。
annotations:
kubernetes.io/example-annotation: annotation-value外部サービス
このチャートは、Workhorseサービスに接続する必要があります。
Workhorse
workhorse:
host: workhorse.example.com
serviceName: webservice
port: 8181| 名前 | 型 | デフォルト | 説明 |
|---|---|---|---|
host | 文字列 | Workhorseサーバーのホスト名。serviceNameの代わりとして省略できます。 | |
port | 整数 | 8181 | Workhorseサーバーに接続するポート。 |
serviceName | 文字列 | webservice | Workhorseサーバーを操作しているserviceの名前。デフォルトでは、Workhorseはwebserviceポッド / Serviceの一部です。これが存在し、hostが存在しない場合、チャートはhost値の代わりにサービスのホスト名(および現在の.Release.Name)をテンプレート処理します。これは、を全体の一部として使用する場合に便利です。 |
チャートの設定
次の値は、GitLab Shellポッドを構成するために使用されます。
hostKeys.secret
SSHホストキーを取得するKubernetes secretの名前。シークレット内のキーは、GitLab Shellで使用するために、キー名ssh_host_で始まる必要があります。
authToken
GitLab Shellは、Workhorseとの通信で認証トークンを使用します。共有シークレットを使用して、GitLab ShellおよびWorkhorseとトークンを共有します。
authToken:
secret: gitlab-shell-secret
key: secret| 名前 | 型 | デフォルト | 説明 |
|---|---|---|---|
authToken.key | 文字列 | は、上記ののうちを含むの名前を定義します。 | |
authToken.secret | 文字列 | Secretは、プル元のの名前を定義します。 |
ロードバランサーサービス
service.typeがLoadBalancerに設定されている場合は、オプションでservice.loadBalancerIPを指定して、ユーザー指定のIPでLoadBalancerを作成できます(クラウドクラウドプロバイダーがサポートしている場合)。
(クラウドプロバイダーがサポートしている場合)、LoadBalancerにアクセスできるCIDR範囲を制限するために、オプションでservice.loadBalancerSourceRangesのリストを指定することもできます。
LoadBalancerサービスタイプの詳細については、Kubernetesドキュメントを参照してください。
service:
type: LoadBalancer
loadBalancerIP: 1.2.3.4
loadBalancerSourceRanges:
- 5.6.7.8/32
- 10.0.0.0/8OpenSSHの追加設定
OpenSSHのsshd(.sshDaemon: openssh経由)を使用する場合、追加の設定を行う方法は2つあります。.opensshd.supplemental_config、および/etc/ssh/sshd_config.d/*.confへのスニペットのマップ。
提供される設定は、必ずsshd_configの機能要件を満たしている必要があります。マニュアルページを必ずお読みください。
opensshd.supplemental_config
.opensshd.supplemental_configの内容は、コンテナ内のsshd_configファイルの末尾に直接配置されます。この値は、複数行の文字列である必要があります。
例: ssh-rsaキー交換アルゴリズムを使用して、古いクライアントを有効にする。ssh-rsaなどの非推奨アルゴリズムを有効にすると、重大なセキュリティ脆弱性が発生することに注意してください。これらの変更により、公開されているGitLabインスタンスでの悪用の可能性が大幅に拡大します。
opensshd:
supplemental_config: |-
HostKeyAlgorithms +ssh-rsa,ssh-rsa-cert-v01@openssh.com
PubkeyAcceptedAlgorithms +ssh-rsa,ssh-rsa-cert-v01@openssh.com
CASignatureAlgorithms +ssh-rsasshd_config.d
sshdに完全な設定スニペットを提供するには、/etc/ssh/sshd_config.dにコンテンツをマウントし、ファイルが*.confと一致するようにします。これらは、_後_デフォルトの設定に含まれており、アプリケーションがコンテナおよびチャート内で機能するために必要であることに注意してください。これらの値は、しません sshd_configの内容をオーバーライドするのではなく、それらを拡張します。
例: extraVolumesおよびextraVolumeMountsを介して、ConfigMapの単一のアイテムをコンテナにマウントする:
extraVolumes: |
- name: gitlab-sshdconfig-extra
configMap:
name: gitlab-sshdconfig-extra
extraVolumeMounts: |
- name: gitlab-sshdconfig-extra
mountPath: /etc/ssh/sshd_config.d/extra.conf
subPath: extra.confnetworkpolicyの設定
このセクションでは、NetworkPolicyを制御します。この設定はオプションであり、特定のエンドポイントへのポッドのエグレスとIngressを制限するために使用されます。
| 名前 | 型 | デフォルト | 説明 |
|---|---|---|---|
enabled | ブール値 | false | この設定により、NetworkPolicyが有効になります |
ingress.enabled | ブール値 | false | trueに設定すると、Ingressネットワークポリシーがアクティブになります。これにより、ルールが指定されていない限り、すべてのIngress接続がブロックされます。 |
ingress.rules | 配列 | [] | Ingressポリシーのルール。詳細については、https://kubernetes.io/docs/concepts/services-networking/network-policies/#the-networkpolicy-resourceおよび以下の例を参照してください |
egress.enabled | ブール値 | false | trueに設定すると、Egressネットワークポリシーがアクティブになります。これにより、ルールが指定されていない限り、すべてのエグレス接続がブロックされます。 |
egress.rules | 配列 | [] | エグレスポリシーのルール。詳細については、https://kubernetes.io/docs/concepts/services-networking/network-policies/#the-networkpolicy-resourceおよび以下の例を参照してください |
ネットワークポリシー
gitlab-shellサービスには、ポート22のIngress接続と、デフォルトのworkhorseポート8181へのさまざまなエグレス接続が必要です。この例では、次のネットワークポリシーを追加します:
Ingressリクエストを許可します:
nginx-ingressポッドからポート2222へprometheusポッドからポート9122へprometheusからポート9122へのアクセスは、SSHデーモンがgitlab-sshdに設定されている場合にのみ必要です
エグレスリクエストを許可します:
webserviceポッドからポート8181へgitalyポッドからポート8075へ
提供されている例は単なる例であり、完全ではない可能性があることに注意してください
この例は、kube-dnsがネームスペースkube-systemにデプロイされ、prometheusがネームスペースmonitoringにデプロイされ、nginx-ingressがネームスペースnginx-ingressにデプロイされたという前提に基づいています。
networkpolicy:
enabled: true
ingress:
enabled: true
rules:
- from:
- namespaceSelector:
matchLabels:
kubernetes.io/metadata.name: nginx-ingress
podSelector:
matchLabels:
app: nginx-ingress
component: controller
ports:
- port: 2222
- from:
- namespaceSelector:
matchLabels:
kubernetes.io/metadata.name: monitoring
podSelector:
matchLabels:
app: prometheus
component: server
release: gitlab
ports:
- port: 9122
egress:
enabled: true
rules:
- to:
- podSelector:
matchLabels:
app: gitaly
ports:
- port: 8075
- to:
- podSelector:
matchLabels:
app: webservice
ports:
- port: 8181
- to:
- namespaceSelector:
matchLabels:
kubernetes.io/metadata.name: kube-system
podSelector:
matchLabels:
k8s-app: kube-dns
ports:
- port: 53
protocol: UDPKEDAの設定
このkedaセクションでは、通常のHorizontalPodAutoscalersの代わりにKEDA ScaledObjectsのインストールを有効にします。この設定はオプションであり、カスタムメトリクスまたは外部メトリクスに基づいてオートスケールが必要な場合に使用できます。
ほとんどの設定は、該当する場合、hpaセクションで設定された値にデフォルト設定されます。
次が当てはまる場合、hpaセクションで設定されたCPUとメモリのしきい値に基づいて、CPUとメモリのトリガーが自動的に追加されます:
triggersが設定されていません。- 対応する
request.cpu.requestまたはrequest.memory.request設定も、ゼロ以外の値に設定されています。
トリガーが設定されていない場合、ScaledObjectは作成されません。
これらの設定の詳細については、KEDAドキュメントを参照してください。
| 名前 | 型 | デフォルト | 説明 |
|---|---|---|---|
enabled | ブール値 | false | HorizontalPodAutoscalersの代わりにKEDA ScaledObjectsを使用します |
pollingInterval | 整数 | 30 | 各トリガーをチェックする間隔 |
cooldownPeriod | 整数 | 300 | 最後のトリガーがアクティブであるとレポートされた後、リソースを0にスケールバックするまで待機する期間 |
minReplicaCount | 整数 | minReplicas | KEDAがリソースをスケールダウンする最小レプリカ数。 |
maxReplicaCount | 整数 | maxReplicas | KEDAがリソースをスケールアップする最大レプリカ数。 |
fallback | マップ | KEDAフォールバック設定については、ドキュメントを参照してください | |
hpaName | 文字列 | keda-hpa-{scaled-object-name} | KEDAが作成するHPAリソースの名前。 |
restoreToOriginalReplicaCount | ブール値 | ScaledObjectが削除された後、ターゲットリソースを元のレプリカ数にスケールバックするかどうかを指定します | |
behavior | マップ | hpa.behavior | アップスケールとダウンスケールの動作の仕様。 |
triggers | 配列 | ターゲットリソースのスケーリングをアクティブにするトリガーのリスト。hpa.cpuおよびhpa.memoryから計算されたトリガーにデフォルト設定されます |
kedaの使用例については、examples/keda/gitlab-shell.ymlを参照してください。