正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

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.clientAliveInterval0それ以外の場合はアイドル状態の接続でのキープアライブpingの間隔。デフォルト値0は、このpingを無効にします。
config.loginGraceTime60ユーザーが正常にログインしていない場合、サーバーが切断するまでの時間を指定します
config.maxStartups.full100認証されていない接続数が指定された数に達すると、SSHd拒否確率が直線的に増加し、すべての認証されていない接続試行が拒否されます
config.maxStartups.rate30認証されていない接続が多すぎる場合、SSHdは指定された確率で接続を拒否します(オプション)
config.maxStartups.start10現在、指定された数を超える認証されていない接続がある場合、SSHdはいくつかの確率で接続試行を拒否します(オプション)
config.proxyProtocolfalsegitlab-sshdデーモンのPROXYプロトコルサポートを有効にします
config.proxyPolicy"use"PROXYプロトコルを処理するためのポリシーを指定します。値は、use, require, ignore, rejectのいずれかである必要があります
config.proxyHeaderTimeout"500ms"gitlab-sshdがPROXYプロトコルヘッダーの読み取りをあきらめる前に待機する最大時間。単位(mss、またはm)を含める必要があります。
config.publicKeyAlgorithms[]公開キーアルゴリズムのカスタムリスト。空の場合、デフォルトのアルゴリズムが使用されます。
config.gssapi.enabledfalsegitlab-sshdデーモンのGSS-APIサポートを有効にします
config.gssapi.keytab.secretgssapi-with-mic認証方式のキータブを保持するKubernetesシークレットの名前
config.gssapi.keytab.keykeytabKubernetesシークレット内のキータブを保持するキー
config.gssapi.krb5ConfigGitLab Shellコンテナ内の/etc/krb5.confファイルの内容
config.gssapi.servicePrincipalNamegitlab-sshdデーモンで使用されるKerberosサービス名
config.lfs.pureSSHProtocolfalseLFS Pure SSHプロトコルサポートを有効にします
config.pat.enabledtrueSSHを使用したPATを有効にします
config.pat.allowedScopes[]SSHで生成されたPATに許可されるスコープの配列
opensshd.supplemental_config追加構成、sshd_configに追加。manページへの厳密なアラインメント
deployment.livenessProbe.initialDelaySeconds10Livenessプローブが開始されるまでの遅延
deployment.livenessProbe.periodSeconds10Livenessプローブを実行する頻度
deployment.livenessProbe.timeoutSeconds3Livenessプローブがタイムアウトした場合
deployment.livenessProbe.successThreshold1障害発生後、Livenessプローブが成功したと見なされるための最小連続成功数
deployment.livenessProbe.failureThreshold3成功後、Livenessプローブが失敗したと見なされるための最小連続失敗数
deployment.readinessProbe.initialDelaySeconds10Readinessプローブが開始されるまでの遅延
deployment.readinessProbe.periodSeconds5Readinessプローブを実行する頻度
deployment.readinessProbe.timeoutSeconds3Readinessプローブがタイムアウトした場合
deployment.readinessProbe.successThreshold1障害発生後、Readinessプローブが成功したと見なされるための最小連続成功数
deployment.readinessProbe.failureThreshold2成功後、Readinessプローブが失敗したと見なされるための最小連続失敗数
deployment.strategy{}デプロイで使用される更新ストラテジを構成できます
deployment.terminationGracePeriodSeconds30Kubernetesがポッドの強制終了を待機する秒数
enabledtrueShell有効フラグ
extraContainers含めるコンテナのリストを含む複数行のリテラルスタイルの文字列
extraInitContainers含める追加のinitコンテナのリスト
extraVolumeMounts実行する追加のボリュームマウントのリスト
extraVolumes作成する追加のボリュームのリスト
extraEnv公開する追加の環境変数のリスト
extraEnvFrom公開する他のデータソースからの追加の環境変数のリスト
hpa.behavior{scaleDown: {stabilizationWindowSeconds: 300 }}動作には、アップスケールおよびダウンスケール動作の仕様が含まれています(autoscaling/v2beta2以上が必要です)
hpa.customMetrics[]カスタムメトリクスには、目的のレプリカ数を計算するために使用する仕様が含まれています(targetAverageUtilizationで構成された平均CPU使用率のデフォルトの使用をオーバーライドします)
hpa.cpu.targetTypeAverageValueオートスケールCPUターゲットタイプを設定します。UtilizationまたはAverageValueのいずれかである必要があります
hpa.cpu.targetAverageValue100mオートスケールCPUターゲット値を設定します
hpa.cpu.targetAverageUtilizationオートスケールCPUターゲット使用率を設定します
hpa.memory.targetTypeオートスケールメモリターゲットタイプを設定します。UtilizationまたはAverageValueのいずれかである必要があります
hpa.memory.targetAverageValueオートスケールメモリターゲット値を設定します
hpa.memory.targetAverageUtilizationオートスケールメモリターゲット使用率を設定します
hpa.targetAverageValue非推奨 オートスケールCPUターゲット値を設定します
image.pullPolicyIfNotPresentShellイメージプルポリシー
image.pullSecretsイメージリポジトリのシークレット
image.repositoryregistry.gitlab.com/gitlab-org/build/cng/gitlab-shellShellイメージリポジトリ
image.tagmasterShellイメージタグ
init.image.repositoryinitContainerイメージ
init.image.taginitContainerイメージタグ
init.containerSecurityContextinitContainer固有のセキュリティコンテキスト
init.containerSecurityContext.allowPrivilegeEscalationfalseinitContainer固有: プロセスが親プロセスよりも多くの特権を取得できるかどうかを制御します
init.containerSecurityContext.runAsNonRoottrueinitContainer固有: コンテナを非rootユーザーで実行するかどうかを制御します
init.containerSecurityContext.capabilities.drop[ "ALL" ]initContainer固有: コンテナのLinuxケイパビリティを削除します
keda.enabledfalseHorizontalPodAutoscalersの代わりにKEDA ScaledObjectsを使用します
keda.pollingInterval30各トリガーをチェックする間隔
keda.cooldownPeriod300最後トリガーがアクティブであると報告されてから、リソースを0にスケールバックするまで待機する期間
keda.minReplicaCountminReplicasKEDAがリソースをスケールダウンする最小レプリカ数。
keda.maxReplicaCountmaxReplicasKEDAがリソースをスケールアップする最大レプリカ数。
keda.fallbackKEDAフォールバック構成、ドキュメントを参照してください
keda.hpaNamekeda-hpa-{scaled-object-name}KEDAが作成するHPAリソースの名前。
keda.restoreToOriginalReplicaCountScaledObjectが削除された後、ターゲットリソースを元のレプリカ数にスケールバックするかどうかを指定します
keda.behaviorhpa.behaviorアップスケールおよびダウンスケール動作の仕様。
keda.triggersターゲットリソースのスケールをアクティブにするトリガーのリスト。hpa.cpuおよびhpa.memoryから計算されたトリガーにデフォルト設定されています
logging.formatjson非構造化ログの場合はtextに設定
logging.sshdLogLevelERROR基になるSSHデーモンのログレベル
priorityClassNameに割り当てられるPriority class
replicaCount1Shellレプリカ
serviceLabels{}追加のサービスラベル
service.allocateLoadBalancerNodePortsKubernetesのデフォルト値を使用するように設定されていません。ロードバランサーサービスでのNodePort割り当てを無効にすることができます。ドキュメントを参照してください
service.externalTrafficPolicyClusterShellサービス外部トラフィックポリシー(クラスタまたはローカル)
service.internalPort2222Shell内部ポート
service.nodePort設定されている場合、shell nodePortを設定します
service.namegitlab-shellShellサービス名
service.typeClusterIPShellサービスタイプ
service.loadBalancerIPロードバランサーに割り当てるIPアドレス(サポートされている場合)
service.loadBalancerSourceRangesロードバランサーへのアクセスを許可されたIP CIDRのリスト(サポートされている場合)
serviceAccount.annotations{}ServiceAccountの注釈
serviceAccount.automountServiceAccountTokenfalseデフォルトのServiceAccountアクセストークンをポッドにマウントするかどうかを示します
serviceAccount.createfalseServiceAccountを作成するかどうかを示します
serviceAccount.enabledfalseServiceAccountを使用するかどうかを示します
serviceAccount.nameServiceAccountの名前。設定されていない場合、チャートのフルネームが使用されます
securityContext.fsGroup1000ポッドを開始するグループID
securityContext.runAsUser1000ポッドを開始するユーザーID
securityContext.fsGroupChangePolicyボリュームの所有権と許可を変更するためのポリシー(Kubernetes 1.23が必要です)
securityContext.seccompProfile.typeRuntimeDefault使用するSeccompプロファイル
containerSecurityContextコンテナの起動元のセキュリティコンテキストをオーバーライドします
containerSecurityContext.runAsUser1000コンテナの起動元の特定のセキュリティコンテキストを上書きできるようにします
containerSecurityContext.allowPrivilegeEscalationfalseコンテナのプロセスが親プロセスよりも多くの特権を取得できるかどうかを制御します
containerSecurityContext.runAsNonRoottrueコンテナを非rootユーザーで実行するかどうかを制御します
containerSecurityContext.capabilities.drop[ "ALL" ]GitalyコンテナのLinuxケイパビリティを削除します
sshDaemonopenssh実行するSSHデーモンを選択します。可能な値(opensshgitlab-sshd
tolerations[]ポッド割り当ての容認ラベル
traefik.entrypointgitlab-shelltraefikを使用する場合、GitLab Shellに使用するtraefikエントリポイント。デフォルトはgitlab-shellです。
traefik.tcpMiddlewares[]traefikを使用する場合、IngressRouteTCPリソースに追加するTCPミドルウェア。デフォルトでは、ミドルウェアはありません
workhorse.serviceNamewebserviceWorkhorseサービス名(デフォルトでは、Workhorseはwebserviceポッド / Serviceの一部です)
metrics.enabledfalseメトリクスエンドポイントをスクレイプできるようにする必要がある場合(sshDaemon=gitlab-sshdが必要です)。
metrics.port9122メトリクスエンドポイントポート
metrics.path/metricsメトリクスエンドポイントパス
metrics.serviceMonitor.enabledfalsePrometheus 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_value

extraEnvFrom

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: boolean

image.pullSecrets

pullSecretsを使用すると、プライベートレジストリに対して認証して、ポッドのイメージをプルできます。

プライベートレジストリとその認証方法の詳細については、Kubernetesドキュメントを参照してください。

pullSecretsの使用例を以下に示します:

image:
  repository: my.shell.repository
  tag: latest
  pullPolicy: Always
  pullSecrets:
  - name: my-secret-name
  - name: my-secondary-secret-name

serviceAccount

このセクションでは、ServiceAccountを作成するかどうか、およびデフォルトのアクセストークンをポッドにマウントするかどうかを制御します。

名前デフォルト説明
annotationsマップ{}ServiceAccountの注釈。
automountServiceAccountTokenブール値falseデフォルトのをにマウントするかどうかを制御します。これは、特定のサイドカーが正常に機能するために必要という場合(Istioなど)を除き、有効にしないようにしてください。
createブール値falseServiceAccountを作成するかどうかを示します。
enabledブール値falseServiceAccountを使用するかどうかを示します。
name文字列ServiceAccountの名前。設定されていない場合、チャートのフルネームが使用されます。

livenessProbe/readinessProbe

deployment.livenessProbedeployment.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整数8181Workhorseサーバーに接続するポート。
serviceName文字列webserviceWorkhorseサーバーを操作している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.typeLoadBalancerに設定されている場合は、オプションで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/8

OpenSSHの追加設定

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-rsa

sshd_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.conf

networkpolicyの設定

このセクションでは、NetworkPolicyを制御します。この設定はオプションであり、特定のエンドポイントへのポッドのエグレスとIngressを制限するために使用されます。

名前デフォルト説明
enabledブール値falseこの設定により、NetworkPolicyが有効になります
ingress.enabledブール値falsetrueに設定すると、Ingressネットワークポリシーがアクティブになります。これにより、ルールが指定されていない限り、すべてのIngress接続がブロックされます。
ingress.rules配列[]Ingressポリシーのルール。詳細については、https://kubernetes.io/docs/concepts/services-networking/network-policies/#the-networkpolicy-resourceおよび以下の例を参照してください
egress.enabledブール値falsetrueに設定すると、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: UDP

KEDAの設定

このkedaセクションでは、通常のHorizontalPodAutoscalersの代わりにKEDA ScaledObjectsのインストールを有効にします。この設定はオプションであり、カスタムメトリクスまたは外部メトリクスに基づいてオートスケールが必要な場合に使用できます。

ほとんどの設定は、該当する場合、hpaセクションで設定された値にデフォルト設定されます。

次が当てはまる場合、hpaセクションで設定されたCPUとメモリのしきい値に基づいて、CPUとメモリのトリガーが自動的に追加されます:

  • triggersが設定されていません。
  • 対応するrequest.cpu.requestまたはrequest.memory.request設定も、ゼロ以外の値に設定されています。

トリガーが設定されていない場合、ScaledObjectは作成されません。

これらの設定の詳細については、KEDAドキュメントを参照してください。

名前デフォルト説明
enabledブール値falseHorizontalPodAutoscalersの代わりにKEDA ScaledObjectsを使用します
pollingInterval整数30各トリガーをチェックする間隔
cooldownPeriod整数300最後のトリガーがアクティブであるとレポートされた後、リソースを0にスケールバックするまで待機する期間
minReplicaCount整数minReplicasKEDAがリソースをスケールダウンする最小レプリカ数。
maxReplicaCount整数maxReplicasKEDAがリソースをスケールアップする最大レプリカ数。
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を参照してください。