インストール¶
Tenax はひとつの Helm チャートとひとつのイメージです。イメージには tenax バイナリと、データムーバーが実行する
Postgres 15/16/17 および MySQL 8.4 のクライアントツールが含まれます。同じバイナリが CLI でもあります。
イメージとチャートを入手する¶
リリースはタグからのみビルドされます。タグ v1.2.3 により、イメージ <registry>/tenax/tenax:v1.2.3、チャート
tenax:1.2.3 (OCI)、そして GitHub リリース上の Linux と macOS 用 CLI バイナリが公開されます。main からは何も公開されません。
helm install tenax oci://registry.example.com/helm/tenax --version 1.2.3 -n tenax-system --create-namespace \
-f values.yaml
チェックアウトからは、helm install tenax charts/tenax … で同じようにインストールできます。
最小構成の values¶
image:
repository: registry.example.com/tenax/tenax
tag: v1.2.3
pullSecrets: [registry-pull] # also copied into sandbox namespaces
targetNamespaces: [team-a, team-b] # where BackupTargets and their tenax-* secrets live
examplePolicies: # prod, dev and critical presets in tenax-system
enabled: true
store: main
metrics:
serviceMonitor: { enabled: true }
prometheusRule: { enabled: true }
grafanaDashboard: { enabled: true }
Tenax には組織固有のデフォルト値はありません。エンドポイント、ホスト名、認証情報はすべて自分で設定します (ADR 0002)。すべての値: Helm values。
認証と公開¶
どちらもプラグイン方式で、デフォルトでは無効です。
| 設定 | 値 | 動作 |
|---|---|---|
auth.provider |
none · cloudflare-access |
none: すべてのコンソールリクエストに auth.devRole が付与されます (コンソールには kubectl port-forward である tenax console 経由でのみアクセスします)。cloudflare-access: すべてのリクエストで Cloudflare Access の JWT を検証し、ユーザーとグループをロールに対応付けます。port-forward には auth.portForwardRole が付与されます。 |
auth.roles |
viewer · operator · restorer · restorer-admin |
閲覧できる人、バックアップとサンドボックスへの復元ができる人、新しいデータベースやダウンロードへ復元できる人、インプレース復元やピン留めができる人。 |
expose.provider |
none · service · cloudflare |
クラスター外からサンドボックスに到達する方法: none では tenax sandbox connect が kubeconfig 経由で port-forward します。service ではサンドボックスごとに Kubernetes Service (ロードバランサー、MetalLB、Tailscale、external-dns) を作り、任意のデータベースクライアントが TLS で接続します。cloudflare では Access ログインの背後のトンネルを使います。サンドボックス を参照してください。 |
expose.cloudflared.enabled |
true / false |
cloudflare の場合: サンドボックスのルート (consoleHostname を設定していればコンソールも) 用に cloudflared コネクターを実行します。 |
詳しくは コンソール、CLI とアクセス を参照してください。
インストールされるもの¶
| オブジェクト | 目的 |
|---|---|
| 6 つの CRD | BackupStore、BackupPolicy、BackupTarget、Backup、Restore、Sandbox (リファレンス) |
tenax-controller Deployment (2 レプリカ、リーダー選出) |
バックアップのスケジュール、ストリーマー、復元、サンドボックス、検証、ガベージコレクションの実行 |
tenax-api Deployment (2 レプリカ) と Service |
コンソール、JSON API、Server-Sent Events |
| RBAC | Tenax リソースのクラスター全体の読み取り。ターゲットの Namespace ごとに tenax-* Secret の読み取りのみ |
| PrometheusRule、ServiceMonitor、Grafana ダッシュボード | オプション。モニタリング を参照 |
Pod は非 root で、読み取り専用のルートファイルシステム、権限昇格なし、すべての capability を削除した状態で動きます。 データは Job (ムーバー、リストアラー) とターゲットごとのストリーマー Deployment の中でのみ移動し、コントローラーと API が バックアップデータを扱うことはありません。
アップグレード¶
helm upgrade は CRD を置き換え (installCRDs: true)、コントローラーと API をロールアウトします。実行中のバックアップは
完了するか再試行されます。すべてのデータパスはクラッシュオンリーであり、バックアップはマニフェストが書き込まれて初めて存在します。