Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

ClickHouse Operator API リファレンス

このドキュメントでは、ClickHouse Operator のカスタムリソースに関する詳細な API リファレンスを提供します。

AdditionalPort

AdditionalPort は、ClickHouse ポッドおよびパブリックなヘッドレス Service で公開する追加の TCP ポートを 1 つ定義します。

フィールド 説明 必須 デフォルト
name string リスト内でポートを一意に識別する名前です。コンテナーポート名と Service ポート名の両方に使用されます。
DNS_LABEL である必要があります。
true
port integer 公開する TCP ポート番号です。 true

登場箇所:

CABundleSelector

CABundleSelector は、クラスターのネームスペース内の Secret から、CA バンドルを含むキーを選択します。

フィールド 説明 必須 デフォルト
name string 選択元の、クラスターのネームスペース内にある Secret の名前。 true
key string 選択する Secret のキー。有効なシークレットキーである必要があります。 false ca.crt

以下で使用されます:

ClickHouseCluster

ClickHouseCluster は clickhouseclusters API のスキーマです。

API バージョンと Kind

apiVersion: clickhouse.com/v1alpha1
kind: ClickHouseCluster
フィールド 説明 必須 デフォルト
spec ClickHouseClusterSpec true
status ClickHouseClusterStatus true

次に含まれます:

ClickHouseClusterList

ClickHouseClusterList には、ClickHouseCluster の一覧が含まれます。

APIバージョンと Kind

apiVersion: clickhouse.com/v1alpha1
kind: ClickHouseClusterList
フィールド Type 説明 必須 デフォルト
items ClickHouseCluster の配列 true

ClickHouseClusterSpec

ClickHouseClusterSpec は ClickHouseCluster の望ましい状態を定義します。

Field Type Description Required Default
replicas integer 単一分片内のレプリカ数。 false 3
shards integer クラスター内の分片数。 false 1
keeperClusterRef KeeperClusterReference ClickHouse の協調に使用される KeeperCluster への参照。
ネームスペースが省略された場合は、ClickHouseCluster のネームスペースが使用されます。
true
podTemplate PodTemplateSpec ClickHouse ポッドスペックに渡されるパラメーター。 false
containerTemplate ContainerTemplateSpec ClickHouse コンテナースペックに渡されるパラメーター。 false
dataVolumeClaimSpec PersistentVolumeClaimSpec ClickHouse データ用の永続ストレージの仕様。 false
additionalVolumeClaimTemplates PersistentVolumeClaimTemplate array JBOD / マルチディスクストレージ用の、ポッドごとの追加 PVC テンプレート。
各エントリは StatefulSet の volumeClaimTemplate に反映され、/var/lib/clickhouse/disks/<name> にマウントされ、
生成される JBOD storage policy に追加されます。
ディスクのセットは作成時に固定されます。
false
labels object (keys:string, values:string) リソースに追加されるラベル。 false
annotations object (keys:string, values:string) リソースに追加されるアノテーション。 false
podDisruptionBudget PodDisruptionBudgetSpec PodDisruptionBudget は各 分片 に対して作成される PDB を設定します。
未設定の場合、オペレーターは単一レプリカの
分片には maxUnavailable=1、複数レプリカの 分片 には minAvailable=1 をデフォルトで設定します。
false
networkPolicy ClickHouseNetworkPolicySpec NetworkPolicy はクラスター用に管理される NetworkPolicy を設定します。 false
settings ClickHouseSettings ClickHouse サーバー の設定パラメーター。 false { }
clusterDomain string ClusterDomain は、DNS 名前解決 に使用される Kubernetes のクラスター ドメイン接尾辞です。 false cluster.local
upgradeChannel string UpgradeChannel は、major version の upgrade チェックに使用する リリースチャネル を指定します。
空の場合は、minor updates のみが提案されます。使用可能な値は stable、lts、または特定の major.minor バージョン (例: 25.8) です。
false
versionProbeTemplate VersionProbeTemplate バージョン検出 に対する VersionProbeTemplate overrides。 false
externalSecret ExternalSecret ExternalSecret は、クラスター secrets を含む外部管理の Secret へのオプション参照です。
この secret はクラスターと同じネームスペース内に存在する必要があります。
false
additionalPorts AdditionalPort array AdditionalPorts は、ClickHouse ポッド とパブリックなヘッドレス Service で公開する追加の TCP ポートを宣言します。
オペレーターは Kubernetes リソースにポートを追加するだけで、ClickHouse サーバー がそれらのポートで待ち受けるようには設定しません。
false

Appears in:

ClickHouseClusterStatus

ClickHouseClusterStatus は、ClickHouseCluster の観測された状態を定義します。

フィールド 説明 必須 デフォルト
conditions Condition 配列 false
readyReplicas integer ReadyReplicas は、リクエストを処理できる状態にあるレプリカの総数です。 false
configurationRevision string ConfigurationRevision は、各レプリカの対象構成リビジョンを示します。 true
statefulSetRevision string StatefulSetRevision は、各レプリカの対象 StatefulSet リビジョンを示します。 true
currentRevision string CurrentRevision は、最後に適用された ClickHouseCluster spec リビジョンを示します。 true
updateRevision string UpdateRevision は、最後に要求された ClickHouseCluster spec リビジョンを示します。 true
observedGeneration integer ObservedGeneration は、コントローラーが観測した最新の generation を示します。 true
version string Version は、コンテナーイメージから報告されたバージョンを示します。 false
versionProbeRevision string VersionProbeRevision は、最後に成功したバージョンプローブのイメージハッシュです。
これが現在のイメージハッシュと一致する場合は、cache された Version がそのまま使用されます。
false

以下に登場します:

ClickHouseNetworkPolicySpec

ClickHouseNetworkPolicySpec は、ClickHouse クラスター用に管理される NetworkPolicy を設定します。 この管理対象ポリシーは、クラスター内部のトラフィックを対象とします。

  • レプリカ間の接続
  • operator からクラスターへのアクセス

クライアント接続やメトリクスのスクレイピングなど、その他のイングレスには、ユーザー定義の NetworkPolicy が必要です。

フィールド 種類 説明 必須 デフォルト
policy NetworkPolicyPolicy operator が、クラスターのポッドへのイングレスを制限する NetworkPolicy を管理するかどうかを制御します。
未設定の場合、デフォルトは「Disabled」です。
false Disabled

次に含まれます。

ClickHouseSettings

ClickHouseSettings は、ClickHouse サーバーの設定オプションを定義します。

Field Type Description Required Default
defaultUserPassword DefaultPasswordSelector default ClickHouse ユーザーのパスワードの取得元と種類を指定します。 false
logger LoggerConfig ClickHouse サーバーのログ設定です。 false
tls ClusterTLSSpec TLS の設定です。ClickHouse サーバーのセキュアなエンドポイントや証明書検証を構成できます。 false
encryption EncryptionSettings 暗号化の設定です。設定すると、専用の storage policy を通じてテーブルデータの保存時暗号化が有効になります。
各テーブルでは SETTINGS storage_policy = '<policyName>' で有効にできます。
false
enableDatabaseSync boolean 新しく作成されたレプリカへの ClickHouse データベースの同期と、スケールダウン後の古いレプリカのクリーンアップを有効にします。
Replicated およびインテグレーションデータベースのみをサポートします。
false true
extraConfig RawExtension デフォルト設定にマージされる追加の ClickHouse 設定です。 false
extraUsersConfig RawExtension デフォルト設定にマージされる追加の ClickHouse ユーザー設定です。 false

Appears in:

ClusterTLSSpec

ClusterTLSSpec は、クラスターの TLS 設定を定義します。

Field Type Description Required Default
enabled boolean Enabled は、TLS を有効にするかどうかを示し、セキュアなポートを開くかどうかを決定します。 false false
required boolean Required は、すべての接続で TLS を必須にするかどうかを指定します。非セキュアポートは無効になります。 false false
serverCertSecret LocalObjectReference ServerCertSecret は、サーバー証明書を含む TLS Secret への参照です。
Secret は cert-manager によって生成される証明書と同じ構造であることが想定されており、
証明書と秘密鍵はそれぞれ "tls.crt" と "tls.key" キーに格納されます。
false
caBundle CABundleSelector CABundle は、ピア証明書の検証に使用される CA バンドルを保持する Secret キーへの参照です。
空の場合は、システムで信頼されている CA バンドルが使用されます。
指定がない場合、Key のデフォルト値は "ca.crt" です。
false

以下で使用されます:

ConfigMapKeySelector

ConfigMapKeySelector は、ConfigMap のキーを選択します。

フィールド 説明 必須 デフォルト
name string 選択元の、クラスターのネームスペース内にある ConfigMap の名前。 true
key string 選択する ConfigMap のキー。有効なキーである必要があります。 true

以下に登場します:

ContainerImage

ContainerImage は、repository、tag、または hash を指定したコンテナーイメージを定義します。

フィールド 説明 必須 デフォルト
repository String コンテナーイメージのレジストリ名
例: docker.io/clickhouse/clickhouse
false
tag String コンテナーイメージのタグ。hash と同時には指定できません。
例: 25.3
false
hash String コンテナーイメージのハッシュ。tag と同時には指定できません。 false

以下で使用されます:

ContainerTemplateSpec

ContainerTemplateSpec は、クラスター内のコンテナーに対する設定のオーバーライドを定義します。

フィールド 説明 必須 デフォルト
image ContainerImage Image は、デプロイするコンテナーイメージです。 true
imagePullPolicy PullPolicy image の ImagePullPolicy です。デフォルトは IfNotPresent です。 false
resources ResourceRequirements Resources は、サーバーコンテナーのリソース要件です。
全体として適用されます。すべての resource フィールドが空の場合にのみ、オペレーターのデフォルトが使用されます。
false
volumeMounts VolumeMount array VolumeMounts は、コンテナーのボリュームマウントの一覧です。
オペレーターが生成したマウントと連結されます。オペレーターのマウントと mountPath を共有するエントリは、
projected volume にマージされます。
false
env EnvVar array Env は、コンテナーに設定する環境変数の一覧です。
名前を基準にオペレーターのデフォルトとマージされます。
false
securityContext SecurityContext SecurityContext は、コンテナーの実行時に使用するセキュリティオプションを定義します。
nil ではない SecurityContext を指定すると、オペレーターのデフォルトは完全に置き換えられます。つまり、
構造体全体の管理はユーザー側の責任となります。nil の場合は、オペレーターのデフォルトが保持されます。
詳細: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
false
livenessProbe Probe LivenessProbe は、オペレーターのデフォルトの liveness probe をオーバーライドします。 false
readinessProbe Probe ReadinessProbe は、オペレーターのデフォルトの readiness probe をオーバーライドします。 false

次で使用されます:

DefaultPasswordSelector

DefaultPasswordSelector は、デフォルトユーザーのパスワードの参照元を選択します。

フィールド 説明 必須 デフォルト
passwordType string 指定したパスワードの種類です。設定可能な値については https://clickhouse.com/docs/operations/settings/settings-users#user-namepassword のドキュメントを参照してください true password
secret SecretKeySelector Secret のキーからパスワード値を選択します false
configMap ConfigMapKeySelector ConfigMap のキーからパスワード値を選択します false

次に登場します:

EncryptionSettings

EncryptionSettings は、テーブルデータの保存時暗号化を有効にします。これが指定されている場合、operator は各データディスクを対象とする 暗号化された ClickHouse の storage policy を生成します。テーブルでは SETTINGS storage_policy でこれを有効にします。 一度有効にすると、暗号化を無効にすることはできません。

フィールド 説明 必須 デフォルト
policyName string PolicyName は、生成される暗号化 storage policy の名前です。 false encrypted

次に含まれます:

ExternalSecret

ExternalSecret は、同じネームスペース内の Secret への参照です。

フィールド 説明 必須 デフォルト
name string Secret の名前。 true
policy ExternalSecretPolicy ポリシーは、オペレーター が Secret の内容をどのように扱うかを制御します。
Observe (デフォルト) : 必須の key がいずれか不足している場合、reconciliation を停止します。
Manage: 不足している必須の key を既存の Secret に生成します。
false Observe

以下に登場します。

ExternalSecretPolicy

ExternalSecretPolicy は、オペレーター が external secret の内容をどのように扱うかを制御します。

フィールド 説明
Observe ExternalSecretPolicyObserve はデフォルトのポリシーで、オペレーター は secret を読み取って検証します。
必要なキーが 1 つでも欠けている場合、reconciliation はブロックされます。
不足している必須キーとその想定フォーマットは、実行時に ExternalSecretValid ステータス条件を通じて報告されます。
Manage ExternalSecretPolicyManage は、オペレーター が不足している必須キーを補うために、
その値を生成するポリシーです。secret は更新されますが、オペレーター が所有したり削除したりすることはありません。

次に登場します:

KeeperCluster

KeeperCluster は keeperclusters API のスキーマです。

APIバージョンと Kind

apiVersion: clickhouse.com/v1alpha1
kind: KeeperCluster
フィールド 説明 必須 デフォルト
spec KeeperClusterSpec true
status KeeperClusterStatus true

以下に含まれます:

KeeperClusterList

KeeperClusterList は、KeeperCluster の一覧を含みます。

APIバージョンとKind

apiVersion: clickhouse.com/v1alpha1
kind: KeeperClusterList
フィールド 説明 必須 デフォルト
items KeeperCluster 配列 true

KeeperClusterReference

KeeperClusterReference は、ClickHouseCluster で使用される KeeperCluster を参照します。

フィールド 説明 必須 デフォルト
name string KeeperCluster リソースの名前。 true
namespace string KeeperCluster リソースのネームスペース。
省略した場合は ClickHouseCluster のネームスペースが使用されます。
false

使用箇所:

KeeperClusterSpec

KeeperClusterSpec は、KeeperCluster の望ましい状態を定義します。

Field Type Description Required Default
replicas integer クラスター内のレプリカ数 false 3
podTemplate PodTemplateSpec Keeper ポッドスペックに渡されるパラメーター。 false
containerTemplate ContainerTemplateSpec Keeper コンテナースペックに渡されるパラメーター。 false
dataVolumeClaimSpec PersistentVolumeClaimSpec ClickHouse Keeper データ用の永続ストレージ仕様。 false
labels object (keys:string, values:string) リソースに追加されるラベル。 false
annotations object (keys:string, values:string) リソースに追加されるアノテーション。 false
podDisruptionBudget PodDisruptionBudgetSpec PodDisruptionBudget は、Keeper クラスター用に作成される PDB を設定します。
未設定の場合、オペレーターは既定で maxUnavailable=replicas/2 を使用します
(2F+1 クラスターでクォーラムを維持するため)。単一レプリカのクラスターでは maxUnavailable=1 を使用します。
false
networkPolicy KeeperNetworkPolicySpec NetworkPolicy は、Keeper クラスター用に管理される NetworkPolicy を設定します。 false
settings KeeperSettings ClickHouse Keeper サーバーの設定パラメーター。 false
clusterDomain string ClusterDomain は、DNS 名前解決に使用される Kubernetes クラスターのドメイン接尾辞です。 false cluster.local
upgradeChannel string UpgradeChannel は、メジャーバージョンのアップグレード確認に使用するリリースチャネルを指定します。
空の場合、マイナーアップデートのみが提案されます。指定可能な値は stable、lts、または特定の major.minor バージョン (例: 25.8) です。
false
versionProbeTemplate VersionProbeTemplate バージョン検出ジョブ用の VersionProbeTemplate を上書きします。
非推奨: Keeper のバージョンプローブ Job は使用されません。このフィールドは後方互換性のために保持されています。
false

以下に表示されます:

KeeperClusterStatus

KeeperClusterStatus は、KeeperCluster の観測された状態を定義します。

フィールド 説明 必須 デフォルト
conditions Condition array false
readyReplicas integer ReadyReplicas は、リクエストを処理できる状態にあるレプリカの総数です。 false
configurationRevision string ConfigurationRevision は、各レプリカの目標構成リビジョンを示します。 true
statefulSetRevision string StatefulSetRevision は、各レプリカの目標 StatefulSet リビジョンを示します。 true
currentRevision string CurrentRevision は、最後に適用された KeeperCluster spec リビジョンを示します。 true
updateRevision string UpdateRevision は、最後に要求された KeeperCluster spec リビジョンを示します。 true
observedGeneration integer ObservedGeneration は、コントローラーが最後に観測した generation を示します。 true
version string Version は、Keeper サーバーから報告されたバージョンを示します。 false
versionProbeRevision string VersionProbeRevision は、最後に成功したバージョンプローブのイメージハッシュです。
非推奨: Keeper バージョンプローブ Job は使用されません。このフィールドは後方互換性のために保持されています。
false

次に記載されています:

KeeperNetworkPolicySpec

KeeperNetworkPolicySpec は、Keeper クラスター向けに管理される NetworkPolicy を設定します。 管理対象のポリシーは、クラスター内部のトラフィックを対象とします。

  • レプリカ間の接続
  • operator からクラスターへのアクセス
  • この Keeper クラスターを参照する ClickHouse クラスターからのアクセス

メトリクスのスクレイピングを含むその他のイングレスには、ユーザー定義の NetworkPolicy が必要です。

フィールド Type 説明 必須 デフォルト
policy NetworkPolicyPolicy Policy は、Keeper ポッドへのイングレスを制限する NetworkPolicy を operator が管理するかどうかを制御します。
未設定の場合、デフォルトは「Disabled」です。
false Disabled

以下に記載されています。

KeeperSettings

KeeperSettings は ClickHouse Keeper サーバーの構成を定義します。

フィールド 説明 必須 デフォルト
logger LoggerConfig ClickHouse Keeper サーバーのログ設定。 false
tls ClusterTLSSpec TLS 設定。ClickHouse Keeper サーバー向けに、安全なエンドポイントと証明書検証を構成できます。 false
extraConfig RawExtension デフォルト設定にマージされる追加の ClickHouse Keeper 設定。 false

以下で使用されます:

LoggerConfig

LoggerConfigはサーバーのログ設定を定義します。

フィールド 説明 必須 デフォルト
logToFile boolean false の場合、ファイルへのログ出力をすべて無効にします。 false true
jsonLogs boolean true の場合、JSONフォーマットでログを出力します。 false false
level string サーバーロガーの詳細レベル。 false trace
size string ログファイルの最大サイズ。 false 1000M
count integer 保持するログファイルの最大数。 false 50

以下に登場します:

NamedTemplateMeta

NamedTemplateMeta は、名前を必要とするテンプレートオブジェクトでサポートされるメタデータ設定を定義します。

フィールド 説明 必須 デフォルト
name string Name はリソース識別子です。 true
labels object (keys:string, values:string) ラベルは、テンプレートオブジェクトに適用されるラベルです。 false
annotations object (keys:string, values:string) アノテーションは、テンプレートオブジェクトに適用されるアノテーションです。 false

以下で使用されます:

NetworkPolicyPolicy

NetworkPolicyPolicy は、operator がクラスターの NetworkPolicy を管理するかどうかを制御します。

フィールド 説明
Enabled NetworkPolicyEnabled を指定すると、operator はクラスターのポッドへのイングレスを制限する NetworkPolicy を管理します。
Disabled NetworkPolicyDisabled を指定すると、管理対象の NetworkPolicy が無効になり、存在する場合は operator が削除します。

使用箇所:

PDBPolicy

PDBPolicy は、PodDisruptionBudget を作成するかどうかを制御します。

フィールド 説明
Enabled PDBPolicyEnabled は、オペレーターによる PodDisruptionBudget の作成を有効にします。
Disabled PDBPolicyDisabled は PodDisruptionBudget を無効にし、オペレーターは一致するラベルを持つリソースを削除します。
Ignored PDBPolicyIgnored は PodDisruptionBudget を無視します。オペレーターは PDB の作成や削除を行わず、既存の PDB は変更されません。

次に登場します:

PersistentVolumeClaimTemplate

PersistentVolumeClaimTemplate は、レプリカごとの PersistentVolumeClaim 用の名前付きテンプレートです。

フィールド 説明 必須 デフォルト
metadata NamedTemplateMeta metadata のフィールドについては、Kubernetes API ドキュメントを参照してください。 true
spec PersistentVolumeClaimSpec Spec は、ポッド作成者が要求するボリュームの望ましい特性を定義します。
詳細: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims
true

次に含まれます:

PodDisruptionBudgetSpec

PodDisruptionBudgetSpec は、クラスター用に作成される PDB を設定します。 設定できるのは MinAvailable または MaxUnavailable のいずれか 1 つだけです。 どちらも設定されていない場合、オペレーターはレプリカ数に基づいて安全なデフォルト値を選択します。

フィールド 説明 必須 デフォルト
policy PDBPolicy Policy は、オペレーターが PodDisruptionBudget を作成するかどうかを制御します。
未設定の場合、デフォルトは "Enabled" です。PDB の作成をスキップするには (たとえば開発環境では) 、"Disabled" に設定します。
false Enabled
minAvailable IntOrString MinAvailable は、障害発生時にも利用可能な状態を維持する必要がある最小のポッド数です。 false
maxUnavailable IntOrString MaxUnavailable は、障害発生時に利用不可となってよいポッドの最大数です。 false
unhealthyPodEvictionPolicy UnhealthyPodEvictionPolicyType UnhealthyPodEvictionPolicy は、異常なポッドを
エビクション対象と見なす条件を定義します。
有効な値は "IfReady" と "AlwaysAllow" です。
false

以下で使用されます:

PodTemplateSpec

PodTemplateSpec は、クラスター内のポッドに対する設定のオーバーライド内容を定義します。

フィールド 説明 必須 デフォルト
terminationGracePeriodSeconds 整数 ポッドが正常に終了するまでの猶予時間を秒単位で指定する省略可能な値です。削除リクエスト時には短縮される場合があります。
値は 0 以上の整数である必要があります。値が 0 の場合は、kill シグナルにより
即座に停止することを示します (正常終了の機会はありません) 。
この値が nil の場合は、代わりにデフォルトの猶予期間が使用されます。
猶予期間とは、ポッド内で実行中のプロセスに終了シグナルが送られてから、
kill シグナルによってプロセスが強制終了されるまでの秒単位の時間です。
この値は、プロセスで想定されるクリーンアップ時間より長く設定してください。
デフォルトは 30 秒です。
false
topologySpreadConstraints TopologySpreadConstraint 配列 TopologySpreadConstraints は、ポッドのグループをトポロジー
ドメイン全体にどのように分散すべきかを示します。スケジューラは、制約を満たすようにポッドをスケジュールします。
すべての topologySpreadConstraints は AND 条件で適用されます。
topologyKey によって operator のデフォルト値とマージされます。
false
imagePullSecrets LocalObjectReference 配列 ImagePullSecrets は、この PodSpec で使用される任意のイメージの取得に使用する、同じネームスペース内の Secret への参照のオプションのリストです。
指定した場合、これらの Secret は各 puller 実装に渡され、そこで使用されます。
詳細情報: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod
名前をキーに operator のデフォルトとマージされます。
false
nodeSelector オブジェクト (キー:string, 値:string) NodeSelector は、ポッドをノードに配置できるようにするために満たされている必要があるセレクターです。
ポッドをそのノードにスケジュールするには、ノードのラベルに一致している必要があるセレクターです。
詳細: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
false
affinity アフィニティ 指定した場合、ポッドのスケジューリング制約です。
operator のデフォルトに追加されます。スケジューリング条件のリストは連結されます。
false
tolerations Toleration の配列 指定した場合、ポッドの Tolerations です。 false
schedulerName string 指定した場合、ポッドは指定したスケジューラによってスケジューリングされます。
指定しない場合、ポッドはデフォルトのスケジューラによってスケジューリングされます。
false
serviceAccountName string ServiceAccountName は、このポッドの実行に使用する ServiceAccount の名前です。
詳細: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
false
priorityClassName string PriorityClassName は、ポッドで使用する PriorityClass の名前です。 false
runtimeClassName 文字列 RuntimeClassName は、ポッドで使用する RuntimeClass の名前です。 false
volumes Volume の配列 Volumes は、ポッドに属するコンテナがマウントできるボリュームの一覧を定義します。
詳細: https://kubernetes.io/docs/concepts/storage/volumes
名前ごとにオペレーターのデフォルト設定とマージされます。同じ名前のオペレーターのボリュームがある場合は、ユーザー定義のボリュームで置き換えられます。
false
securityContext PodSecurityContext SecurityContext は、ポッドレベルのセキュリティ属性と共通のコンテナー設定を保持します。
SecurityContext に nil 以外を指定すると、オペレーターのデフォルト設定は完全に置き換えられ、
構造体全体の管理はユーザーの責任となります。nil の場合は、オペレーターのデフォルト設定が維持されます。
false
topologyZoneKey string TopologyZoneKey はノードラベルのキーです。
このキーを持ち、値が同一のラベルが設定されたノードは、同じトポロジードメインに属するとみなされます。
たとえば、"topology.kubernetes.io/zone" であれば同じ可用性ゾーン、"kubernetes.io/hostname" であれば同じノードです。
これを設定すると、同じデータを保持するポッド (ClickHouse では 1 つの分片のレプリカ、Keeper ではすべてのレプリカ) が
各ドメインに分散されるようになります。具体的には、必須の TopologySpreadConstraint (maxSkew 1、DoNotSchedule) と、優先 PodAntiAffinity ルールが適用されます。
異なる分片のポッドは同じドメインを共有できるため、1 ドメインあたり複数のポッドを配置できます。
ドメイン数がレプリカ数より少ない場合は、複数のレプリカが 1 つのドメインを共有しますが、それでも均等に分散されます。
さらに ClickHouse ポッドは、それらが使用する Keeper ポッドが配置されているドメインを優先します。
"topology.kubernetes.io/zone" に設定することを推奨します。
false
nodeHostnameKey string NodeHostnameKey はノードラベルのキーです。
このキーを持ち、かつその値が同じラベルを持つノードは、同一ノード上にあると見なされます。
これを設定すると、ノードを排他的に使用するよう強制されます。具体的には、クラスター内のすべてのポッドに対して必須の PodAntiAffinity ルールが適用され、
分片に関係なく、1 ノードあたり最大 1 つのポッドのみ配置されます。これには少なくともポッド数と同じ数のノードが必要です。
ノード数が不足している場合、超過したポッドは Pending のままになります。
同じ分片のレプリカをノード間に分散させつつ、1 ノードあたり複数のポッドを配置するには、
代わりに TopologyZoneKey を "kubernetes.io/hostname" に設定してください。
"kubernetes.io/hostname" に設定することを推奨します。
false
initContainers Container の配列 InitContainers は、メインのサーバーコンテナーが起動する前に実行される init コンテナーの一覧です。
名前を基準に operator のデフォルト設定とマージされます。
同名のもの同士が対象です。
false

次で使用されます:

SecretKeySelector

SecretKeySelector は、Secret のキーを選択します。

フィールド 説明 必須 デフォルト
name string 選択元の、クラスターのネームスペース内にある Secret の名前。 true
key string 選択する Secret のキー。有効なシークレットキーである必要があります。 true

以下で使用されます:

TemplateMeta

TemplateMeta は、テンプレートオブジェクトでサポートされるメタデータ設定を定義します。

フィールド 説明 必須 デフォルト
labels object (keys:string, values:string) ラベルは、テンプレートオブジェクトに適用されるラベルです。 false
annotations object (keys:string, values:string) アノテーションは、テンプレートオブジェクトに適用されるアノテーションです。 false

以下で使用されます:

VersionProbeContainer

VersionProbeContainer は、バージョンプローブのコンテナーレベルのオーバーライドを定義します。 フィールド名と JSON タグは corev1.Container に合わせており、SMP で名前ベースのマージができるようになっています。

Field Type Description Required Default
name string コンテナー名。空の場合、オペレーターがバージョンプローブコンテナー名を設定します。 true version-probe
resources ResourceRequirements バージョンプローブコンテナーに必要なコンピュートリソース要件です。
SMP により、オペレーターのデフォルト設定とディープマージされます。
false
securityContext SecurityContext バージョンプローブコンテナーのセキュリティオプションを定義する SecurityContext です。
SMP により、オペレーターのデフォルト設定とディープマージされます。
false

以下に登場します:

VersionProbeJobSpec

VersionProbeJobSpec は、バージョンプローブの Job レベルのオーバーライドを定義します。

フィールド 説明 必須 デフォルト
ttlSecondsAfterFinished integer TTLSecondsAfterFinished は、完了した Job の存続期間を制限します。 false
template VersionProbePodTemplate Template は、バージョンプローブ Job 用に作成されるポッドを記述します。 false

以下に含まれます:

VersionProbePodSpec

VersionProbePodSpec は、バージョンプローブのポッドレベルのオーバーライドを定義します。 フィールド名と JSON タグは、strategic merge patch との互換性を保つため、corev1.PodSpec と一致しています。

Field Type Description Required Default
nodeSelector object (keys:string, values:string) NodeSelector は、一致するラベルを持つノードでのみバージョンプローブのポッドが実行されるよう制限します。 false
tolerations Toleration array バージョンプローブのポッドに対する Tolerations。 false
securityContext PodSecurityContext SecurityContext は、バージョンプローブのポッドに対するポッドレベルのセキュリティ属性を保持します。 false
containers VersionProbeContainer array バージョンプローブのポッドに対する Containers のオーバーライドです。
name フィールドは省略可能で、オペレーターによってデフォルトのコンテナー名が補完されます。
別の名前を持つ追加コンテナーを指定することもできます。
false

Appears in:

VersionProbePodTemplate

VersionProbePodTemplate は、バージョンプローブ用ポッドのオーバーライドを定義します。

フィールド 説明 必須 デフォルト
metadata TemplateMeta metadata の各フィールドについては、Kubernetes API のドキュメントを参照してください。 false
spec VersionProbePodSpec バージョンプローブ用ポッドの望ましい動作の仕様。 false

次の項目で使用されます:

VersionProbeTemplate

VersionProbeTemplate は、バージョン検出 Job のオーバーライドを定義します。 この構造は batchv1.JobTemplateSpec に対応しており、サポートされているフィールドのみを公開します。

Field Type Description Required Default
metadata TemplateMeta metadata のフィールドについては、Kubernetes API のドキュメントを参照してください。 false
spec VersionProbeJobSpec バージョンプローブ Job の期待される動作を定義する仕様。 false

以下で使用されます:

Navigation