TiUP を使用して TiDBクラスタをデプロイする
TiUPは、TiDB 4.0 で導入されたクラスター運用保守ツールです。 TiUP は、Golang で記述されたクラスター管理コンポーネントであるTiUPクラスターを提供します。 TiUP クラスターを使用すると、TiDB クラスターのデプロイ、開始、停止、破棄、スケーリング、およびアップグレードを含む日常のデータベース操作を簡単に実行し、TiDB クラスターのパラメーターを管理できます。
TiUP は、TiDB、TiFlash、TiDB Binlog、TiCDC、および監視システムの展開をサポートしています。このドキュメントでは、さまざまなトポロジの TiDB クラスターをデプロイする方法を紹介します。
ノート:
TiDB、TiUP、および TiDB ダッシュボードは、使用状況の詳細を PingCAP と共有して、製品の改善方法を理解するのに役立ちます。共有される内容と共有を無効にする方法の詳細については、 テレメトリーを参照してください。
ステップ 1. 前提条件と事前チェック
次のドキュメントを読んだことを確認してください。
ステップ 2. 制御マシンに TiUP をデプロイ
コントロール マシンに TiUP を展開するには、オンライン展開とオフライン展開の 2 つの方法があります。
デプロイをオンラインで展開する
通常のユーザー アカウントを使用して制御マシンにログインします (例としてtidb
ユーザーを取り上げます)。以降の TiUP のインストールとクラスター管理はtidb
ユーザーで実行できます。
次のコマンドを実行して TiUP をインストールします。
curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | shTiUP 環境変数を設定します。
グローバル環境変数を再宣言します。
source .bash_profileTiUP がインストールされているかどうかを確認します。
which tiup
TiUP クラスター コンポーネントをインストールします。
tiup clusterTiUP が既にインストールされている場合は、TiUP クラスター コンポーネントを最新バージョンに更新します。
tiup update --self && tiup update clusterUpdate successfully!
が表示されれば、TiUP クラスターは正常に更新されています。TiUP クラスターの現在のバージョンを確認します。
tiup --binary cluster
TiUP をオフラインでデプロイ
TiUP を使用して TiDB クラスターをオフラインでデプロイするには、このセクションの次の手順を実行します。
TiUP オフライン コンポーネント パッケージを準備する
TiUP オフライン コンポーネント パッケージを準備するには、 tiup mirror clone
を使用してオフライン コンポーネント パッケージを手動でパックします。
TiUP パッケージ マネージャーをオンラインでインストールします。
TiUP ツールをインストールします。
curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | shグローバル環境変数を再宣言します。
source .bash_profileTiUP がインストールされているかどうかを確認します。
which tiup
TiUP を使用してミラーを引き出します。
インターネットにアクセスできるマシンで必要なコンポーネントをプルします。
tiup mirror clone tidb-community-server-${version}-linux-amd64 ${version} --os=linux --arch=amd64上記のコマンドは、現在のディレクトリに
tidb-community-server-${version}-linux-amd64
という名前のディレクトリを作成します。このディレクトリには、クラスターの起動に必要なコンポーネント パッケージが含まれています。tar
コマンドを使用してコンポーネント パッケージをパックし、隔離された環境のコントロール マシンにパッケージを送信します。tar czvf tidb-community-server-${version}-linux-amd64.tar.gz tidb-community-server-${version}-linux-amd64tidb-community-server-${version}-linux-amd64.tar.gz
は独立したオフライン環境パッケージです。
オフライン ミラーをカスタマイズするか、既存のオフライン ミラーの内容を調整します。
既存のオフライン ミラーを調整する (新しいバージョンのコンポーネントを追加するなど) 場合は、次の手順を実行します。
オフライン ミラーをプルする場合、コンポーネントやバージョン情報などのパラメータを介して特定の情報を指定することで、不完全なオフライン ミラーを取得できます。たとえば、次のコマンドを実行して、TiUP v1.10.0 と TiUP クラスタ v1.10.0 のオフライン ミラーのみを含むオフライン ミラーをプルできます。
tiup mirror clone tiup-custom-mirror-v1.10.0 --tiup v1.10.0 --cluster v1.10.0特定のプラットフォーム用のコンポーネントのみが必要な場合は、
--os
または--arch
パラメーターを使用して指定できます。「TiUP を使用してミラーをプルする」の手順 2 を参照して、この不完全なオフライン ミラーを隔離環境の制御マシンに送信します。
隔離された環境の制御マシンで、現在のオフライン ミラーのパスを確認します。 TiUP ツールが最近のバージョンの場合、次のコマンドを実行して現在のミラー アドレスを取得できます。
tiup mirror show上記のコマンドの出力が
show
コマンドが存在しないことを示している場合は、古いバージョンの TiUP を使用している可能性があります。この場合、現在のミラー アドレスは$HOME/.tiup/tiup.toml
から取得できます。このミラー アドレスを記録します。次の手順では、このアドレスを参照するために${base_mirror}
が使用されます。不完全なオフライン ミラーを既存のオフライン ミラーにマージします。
まず、現在のオフライン ミラーの
keys
ディレクトリを$HOME/.tiup
ディレクトリにコピーします。cp -r ${base_mirror}/keys $HOME/.tiup/次に、TiUP コマンドを使用して、不完全なオフライン ミラーを使用中のミラーにマージします。
tiup mirror merge tiup-custom-mirror-v1.10.0上記の手順が完了したら、
tiup list
コマンドを実行して結果を確認します。このドキュメントの例では、tiup list tiup
とtiup list cluster
の両方の出力が、v1.10.0
の対応するコンポーネントが利用可能であることを示しています。
オフライン TiUP コンポーネントをデプロイ
パッケージをターゲット クラスタの制御マシンに送信した後、次のコマンドを実行して TiUP コンポーネントをインストールします。
tar xzvf tidb-community-server-${version}-linux-amd64.tar.gz && \
sh tidb-community-server-${version}-linux-amd64/local_install.sh && \
source /home/tidb/.bash_profile
local_install.sh
スクリプトはtiup mirror set tidb-community-server-${version}-linux-amd64
コマンドを自動的に実行して、現在のミラー アドレスをtidb-community-server-${version}-linux-amd64
に設定します。
ミラーを別のディレクトリに切り替えるには、 tiup mirror set <mirror-dir>
コマンドを実行します。ミラーをオンライン環境に切り替えるには、 tiup mirror set https://tiup-mirrors.pingcap.com
コマンドを実行します。
手順 3. クラスター トポロジ ファイルを初期化する
次のコマンドを実行して、クラスター トポロジ ファイルを作成します。
tiup cluster template > topology.yaml
次の 2 つの一般的なシナリオでは、コマンドを実行して、推奨されるトポロジ テンプレートを生成できます。
ハイブリッド デプロイの場合: 複数のインスタンスが 1 台のマシンにデプロイされます。詳細については、 ハイブリッド展開トポロジを参照してください。
tiup cluster template --full > topology.yaml地理的に分散した配置の場合: TiDB クラスターは、地理的に分散したデータ センターに配置されます。詳細については、 地理的に分散された展開トポロジを参照してください。
tiup cluster template --multi-dc > topology.yaml
vi topology.yaml
を実行して、構成ファイルの内容を確認します。
global:
user: "tidb"
ssh_port: 22
deploy_dir: "/tidb-deploy"
data_dir: "/tidb-data"
server_configs: {}
pd_servers:
- host: 10.0.1.4
- host: 10.0.1.5
- host: 10.0.1.6
tidb_servers:
- host: 10.0.1.7
- host: 10.0.1.8
- host: 10.0.1.9
tikv_servers:
- host: 10.0.1.1
- host: 10.0.1.2
- host: 10.0.1.3
monitoring_servers:
- host: 10.0.1.4
grafana_servers:
- host: 10.0.1.4
alertmanager_servers:
- host: 10.0.1.4
次の例では、7 つの一般的なシナリオについて説明します。対応するリンクのトポロジの説明とテンプレートに従って、構成ファイル (名前はtopology.yaml
) を変更する必要があります。その他のシナリオでは、それに応じて構成テンプレートを編集します。
応用 | Configuration / コンフィグレーションタスク | Configuration / コンフィグレーションファイルのテンプレート | トポロジの説明 |
---|---|---|---|
OLTP | 最小限のトポロジをデプロイ | シンプルな最小限の構成テンプレート 完全な最小構成テンプレート | これは、tidb-server、tikv-server、および pd-server を含む基本的なクラスター トポロジです。 |
HTAP | TiFlash トポロジをデプロイ | シンプルな TiFlash 構成テンプレート 完全な TiFlash 構成テンプレート | これは、最小限のクラスター トポロジと共に TiFlash をデプロイするためのものです。 TiFlash は柱状のストレージ エンジンであり、徐々に標準のクラスター トポロジーになります。 |
TiCDCを使用して増分データをレプリケートする | TiCDC トポロジをデプロイ | シンプルな TiCDC 構成テンプレート 完全な TiCDC 構成テンプレート | これは、最小限のクラスター トポロジと共に TiCDC をデプロイすることです。 TiCDC は、TiDB、MySQL、MQ など、複数のダウンストリーム プラットフォームをサポートしています。 |
Binlogを使用して増分データをレプリケートする | TiDB Binlogトポロジをデプロイ | シンプルな TiDB Binlog構成テンプレート (MySQL をダウンストリームとして) シンプルな TiDB Binlog構成テンプレート (ダウンストリームとしてのファイル) 完全な TiDB Binlog構成テンプレート | これは、最小限のクラスター トポロジと共に TiDB Binlogをデプロイするためのものです。 |
Spark で OLAP を使用する | TiSpark トポロジをデプロイ | シンプルな TiSpark 構成テンプレート 完全な TiSpark 構成テンプレート | これは、最小限のクラスター トポロジと共に TiSpark をデプロイするためのものです。 TiSpark は、TiDB/TiKV 上で Apache Spark を実行して OLAP クエリに応答するために構築されたコンポーネントです。現在、TiSpark に対する TiUP クラスターのサポートはまだ実験的段階です。 |
複数のインスタンスを 1 台のマシンにデプロイ | ハイブリッド トポロジをデプロイする | ハイブリッド展開用のシンプルな構成テンプレート ハイブリッド展開用の完全な構成テンプレート | デプロイ トポロジは、ディレクトリ、ポート、リソース比率、およびラベルの構成を追加する必要がある場合にも適用されます。 |
データセンター全体に TiDB クラスターをデプロイ | 地理的に分散した展開トポロジをデプロイする | 地理的に分散した配置のConfiguration / コンフィグレーションテンプレート | このトポロジは、例として 2 つの都市にある 3 つのデータ センターの典型的なアーキテクチャを取り上げています。地理的に分散したデプロイアーキテクチャと、注意が必要な主要な構成について説明します。 |
ノート:
- グローバルに有効なパラメーターについては、構成ファイルの
server_configs
セクションで、対応するコンポーネントのこれらのパラメーターを構成します。- 特定のノードで有効にする必要があるパラメーターについては、このノードの
config
でこれらのパラメーターを構成します。.
を使用して、構成のサブカテゴリ (log.slow-threshold
など) を示します。その他の形式については、 TiUP 構成テンプレートを参照してください。- ターゲット マシンに作成するユーザー グループ名を指定する必要がある場合は、 この例を参照してください。
構成の詳細については、次の構成例を参照してください。
ステップ 4. デプロイ コマンドを実行する
ノート:
TiUP を使用して TiDB をデプロイする場合、セキュリティ認証に秘密鍵または対話型パスワードを使用できます。
- 秘密鍵を使用する場合は、鍵のパスを
-i
または--identity_file
で指定します。- パスワードを使用する場合は、
-p
フラグを追加して、パスワード インタラクション ウィンドウに入ります。- ターゲット マシンへのパスワードなしのログインが設定されている場合、認証は必要ありません。
一般に、TiUP は、次の例外を除いて、ターゲット マシン上の
topology.yaml
ファイルで指定されたユーザーとグループを作成します。
topology.yaml
で構成されたユーザー名は、ターゲット マシンに既に存在します。- コマンド ラインで
--skip-create-user
オプションを使用して、ユーザーを作成する手順を明示的にスキップしました。
deploy
コマンドを実行する前に、 check
およびcheck --apply
コマンドを使用して、クラスター内の潜在的なリスクを検出し、自動的に修復します。
潜在的なリスクを確認します。
tiup cluster check ./topology.yaml --user root [-p] [-i /home/root/.ssh/gcp_rsa]自動修復を有効にします。
tiup cluster check ./topology.yaml --apply --user root [-p] [-i /home/root/.ssh/gcp_rsa]TiDB クラスターをデプロイします。
tiup cluster deploy tidb-test v6.1.2 ./topology.yaml --user root [-p] [-i /home/root/.ssh/gcp_rsa]
上記のtiup cluster deploy
コマンドで:
tidb-test
は、デプロイする TiDB クラスターの名前です。v6.1.2
は、デプロイする TiDB クラスターのバージョンです。tiup list tidb
を実行すると、サポートされている最新のバージョンを確認できます。topology.yaml
は初期設定ファイルです。--user root
は、ターゲット マシンにroot
ユーザーとしてログインして、クラスターの展開を完了することを示します。root
人のユーザーは、ターゲット マシンに対してssh
とsudo
の権限を持つことが期待されます。または、ssh
およびsudo
の権限を持つ他のユーザーを使用して展開を完了することもできます。[-i]
と[-p]
はオプションです。パスワードなしでターゲット マシンへのログインを構成した場合、これらのパラメーターは必要ありません。そうでない場合は、2 つのパラメーターのいずれかを選択します。[-i]
は、ターゲット マシンにアクセスできる root ユーザー (または--user
で指定された他のユーザー) の秘密鍵です。[-p]
は、対話的にユーザーパスワードを入力するために使用されます。
出力ログの最後に、 Deployed cluster `tidb-test` successfully
が表示されます。これは、デプロイが成功したことを示します。
ステップ 5. TiUP によって管理されているクラスターを確認する
tiup cluster list
TiUP は、複数の TiDB クラスターの管理をサポートしています。上記のコマンドは、TiUP によって現在管理されているすべてのクラスターの情報を出力します。これには、クラスター名、デプロイ ユーザー、バージョン、秘密鍵の情報が含まれます。
ステップ 6. デプロイされた TiDB クラスターのステータスを確認する
たとえば、次のコマンドを実行してtidb-test
クラスターのステータスを確認します。
tiup cluster display tidb-test
予想される出力には、インスタンス ID、ロール、ホスト、リスニング ポート、ステータス (クラスターがまだ開始されていないため、ステータスはDown
/ inactive
です)、およびディレクトリ情報が含まれます。
ステップ 7. TiDB クラスターを開始する
TiUP cluster v1.9.0以降、新しい起動方法としてセーフスタートが導入されました。この方法でデータベースを起動すると、データベースのセキュリティが向上します。この方法を使用することをお勧めします。
安全な起動後、TiUP は TiDB root ユーザーのパスワードを自動的に生成し、コマンドライン インターフェイスでパスワードを返します。
ノート:
TiDB クラスターを安全に起動した後、パスワードなしで root ユーザーを使用して TiDB にログインすることはできません。したがって、今後のログインのために、コマンド出力で返されるパスワードを記録する必要があります。
パスワードは一度だけ生成されます。記録していない場合や忘れてしまった場合は、
root
パスワードを忘れるを参照してパスワードを変更してください。
方法 1: 安全なスタート
tiup cluster start tidb-test --init
出力が次のようになっていれば、開始は成功しています。
Started cluster `tidb-test` successfully.
The root password of TiDB database has been changed.
The new password is: 'y_+3Hwp=*AWz8971s6'.
Copy and record it to somewhere safe, it is only displayed once, and will not be stored.
The generated password can NOT be got again in future.
方法 2: 標準スタート
tiup cluster start tidb-test
出力ログにStarted cluster `tidb-test` successfully
が含まれていれば、開始は成功しています。標準起動後、パスワードなしで root ユーザーを使用してデータベースにログインできます。
ステップ 8. TiDB クラスターの実行ステータスを確認する
tiup cluster display tidb-test
出力ログにUp
ステータスが表示されている場合、クラスターは正常に動作しています。
こちらもご覧ください
ティフラッシュを TiDB クラスターと共にデプロイした場合は、次のドキュメントを参照してください。
TiCDCを TiDB クラスターと共にデプロイした場合は、次のドキュメントを参照してください。