このドキュメントでは、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 |
以下で使用されます: