ClickHouseCluster の設定
基本設定
レプリカと分片
- レプリカ: 各分片あたりの ClickHouse インスタンス数 (高可用性のため)
- 分片: 水平分割数 (スケーリングのため)
replicas: 3、shards: 2 のクラスターでは、ClickHouse ポッドが合計 6 つ作成されます。
Keeper インテグレーション
keeperClusterRef.namespace が設定されている場合、オペレーターは両方のネームスペースを監視する必要があります。WATCH_NAMESPACE が設定されている場合は、その一覧に ClickHouse と Keeper のネームスペースを含めてください。
KeeperCluster の設定
ストレージ構成
Operator が既存の PVC を変更できるのは、使用しているストレージクラスがボリューム拡張に対応している場合のみです。
ポッドの設定
トポロジースプレッドとアフィニティの自動設定
Kubernetesクラスターに、分散制約を満たせるだけのノードが異なるゾーンに十分にあることを確認してください。
手動設定
サポートされているすべてのポッドテンプレートオプションについては、API リファレンスを参照してください。
ポッドの停止予算
デフォルト
apply した時点で、意図しないクォーラムの喪失から保護されます。
replicas: 3 の 3 分片 ClickHouseCluster では、オペレーターは分片ごとに 1 つずつ、合計 3 つの PDB を作成し、それぞれに minAvailable: 1 を設定します。
デフォルト設定の上書き
spec.podDisruptionBudget を使用して、minAvailable または maxUnavailable のいずれか一方のみを上書きできます (必ずどちらか一方のみ) :
maxUnavailable 形式:
unhealthyPodEvictionPolicy フィールドをそのまま渡すこともできます。これは、まだ NotReady 状態のポッドのエビクションを許可する必要がある場合に便利です。
ポリシー
spec.podDisruptionBudget.policy では、オペレーターが PDB をどの程度積極的に管理するかを選択できます。
例 — 開発用クラスターで PDB 管理を完全に無効にする:
クラスター全体での無効化
ENABLE_PDB 環境変数を使用して、クラスター全体で無効にすることもできます。ENABLE_PDB=false の場合、オペレーターは すべての ClickHouseCluster と KeeperCluster について、spec.podDisruptionBudget.policy の設定にかかわらず PDB のリコンサイル手順をスキップし、PodDisruptionBudget リソースを一切監視しません。そのため、オペレーターの ServiceAccount には poddisruptionbudgets.policy/v1 に対する RBAC 権限は不要です。これは、それらの権限を意図的に含めていない制限付きの ServiceAccount でオペレーターを実行する場合に便利です。
コンテナーの設定
カスタムイメージ
コンテナーのリソース
環境変数
ボリュームマウント
同じ
mountPathに対して複数のボリュームマウントを指定できます。
Operator は、指定されたすべてのマウントを含む projected volume を作成します。サポートされているすべての コンテナー テンプレートオプションについては、API リファレンスを参照してください。
TLS/SSL 設定
セキュアなエンドポイントを設定する
SSL 証明書 Secret の形式
tls.crt- PEM エンコードされたサーバー証明書tls.key- PEM エンコードされた秘密鍵ca.crt- PEM エンコードされた CA 証明書チェーン
この形式は、cert-manager によって生成された証明書と互換性があります。
TLS を介した ClickHouse-Keeper 通信
ca.crt バンドルが使用されます。そうでない場合は、デフォルトの CA バンドルが使用されます。
必要に応じて、カスタム CA バンドルへの参照を指定できます。
ClickHouse の設定
デフォルトユーザーのパスワード
平文のパスワードの保存に ConfigMap を使用することは推奨されません。
ユーザーパスワードに ConfigMap を使用する
設定でのカスタムユーザー
データベース同期
カスタム設定
埋め込みの追加設定
extraConfig を使用して、カスタムの ClickHouse 設定を追加します。
役立つリンク:
埋め込み追加ユーザー設定
extraUsersConfig を使用すると、追加の ClickHouse ユーザー設定を指定することもできます。これは、ユーザー、プロファイル、クォータ、権限をクラスター仕様内で直接定義する場合に便利です。
extraUsersConfig は k8s の ConfigMap オブジェクトに保存されます。平文のシークレットはそこに保存しないでください。