TiUPを使用した TiDBクラスタのデプロイ
TiUPは、TiDB 4.0 で導入されたクラスターの運用および保守ツールです。 TiUP は、 Golangで書かれたクラスター管理コンポーネントTiUPクラスターを提供します。 TiUPクラスターを使用すると、TiDB クラスターのデプロイ、開始、停止、破棄、スケーリング、アップグレードなどの日常的なデータベース操作を簡単に実行し、TiDB クラスターのパラメーターを管理できます。
TiUP は、TiDB、 TiFlash、TiDB Binlog、TiCDC、および監視システムの導入をサポートしています。このドキュメントでは、さまざまなトポロジーの TiDB クラスターをデプロイする方法を紹介します。
ステップ 1. 前提条件と事前チェック
次の文書を必ず読んでください。
ステップ 2. 制御マシンにTiUPをデプロイ
TiUP は、オンライン展開とオフライン展開の 2 つの方法のいずれかで制御マシンに展開できます。
TiUPをオンラインでデプロイ
通常のユーザー アカウントを使用して制御マシンにログインします (例として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オフラインコンポーネントパッケージを準備する
方法 1: 公式ダウンロードページで、ターゲット TiDB バージョンのオフライン ミラー パッケージ (TiUPオフライン パッケージを含む) を選択します。サーバーパッケージとツールキット パッケージを同時にダウンロードする必要があることに注意してください。
方法 2: 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.11.3 およびTiUP クラスタ v1.11.3 のオフライン ミラーのみを含むオフライン ミラーをプルできます。
tiup mirror clone tiup-custom-mirror-v1.11.3 --tiup v1.11.3 --cluster v1.11.3特定のプラットフォームのコンポーネントのみが必要な場合は、
--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.11.3上記の手順が完了したら、
tiup listコマンドを実行して結果を確認します。このドキュメントの例では、tiup list tiupとtiup list clusterの両方の出力は、v1.11.3の対応するコンポーネントが使用可能であることを示しています。
オフライン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 cloneコマンドを使用してオフラインコンポーネントパッケージを手動でパッケージ化する場合は、この手順をスキップできます。
次のコマンドを実行して、オフライン ツールキット パッケージをサーバーパッケージ ディレクトリにマージします。
tar xf tidb-community-toolkit-${version}-linux-amd64.tar.gz
ls -ld tidb-community-server-${version}-linux-amd64 tidb-community-toolkit-${version}-linux-amd64
cd tidb-community-server-${version}-linux-amd64/
cp -rp keys ~/.tiup/
tiup mirror merge ../tidb-community-toolkit-${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という名前) を変更する必要があります。他のシナリオの場合は、それに応じて構成テンプレートを編集します。
| 応用 | コンフィグレーションタスク | コンフィグレーションファイルのテンプレート | トポロジの説明 | 
|---|---|---|---|
| OLTP | 最小限のトポロジをデプロイ | シンプルな最小限の構成テンプレート  完全な最小構成テンプレート  | これは、tidb-server、tikv-server、pd-server を含む基本的なクラスター トポロジーです。 | 
| HTAP | TiFlashトポロジをデプロイ | シンプルなTiFlash構成テンプレート  完全なTiFlash構成テンプレート  | これは、最小限のクラスター トポロジとともにTiFlashを展開するためです。 TiFlashはカラム型storageエンジンであり、徐々に標準のクラスター トポロジになりつつあります。 | 
| TiCDCを使用して増分データをレプリケートする | TiCDC トポロジをデプロイ | シンプルな TiCDC 構成テンプレート  完全な TiCDC 構成テンプレート  | これは、最小限のクラスター トポロジとともに TiCDC を展開するためです。 TiCDC は、TiDB、MySQL、Kafka、MQ、storageサービスなどの複数のダウンストリーム プラットフォームをサポートします。 | 
| TiDBBinlogを使用して増分データをレプリケートする | TiDB Binlogトポロジをデプロイ | シンプルな TiDB Binlog構成テンプレート (ダウンストリームとして MySQL)  シンプルな TiDB Binlog構成テンプレート (ダウンストリームとしてのファイル) 完全な TiDB Binlog構成テンプレート  | これは、最小限のクラスター トポロジとともに TiDB Binlogをデプロイするためです。 | 
| Spark で OLAP を使用する | TiSpark トポロジをデプロイ | シンプルな TiSpark 構成テンプレート  完全な TiSpark 構成テンプレート  | これは、最小限のクラスター トポロジとともに TiSpark をデプロイするためです。 TiSpark は、TiDB/TiKV 上で Apache Spark を実行して OLAP クエリに応答するために構築されたコンポーネントです。現在、 TiUPクラスターの TiSpark サポートはまだ実験的です。 | 
| 単一マシン上に複数のインスタンスをデプロイ | ハイブリッド トポロジをデプロイ | ハイブリッド展開のためのシンプルな構成テンプレート  ハイブリッド展開用の完全な構成テンプレート  | デプロイメント トポロジは、ディレクトリ、ポート、リソース比率、およびラベルの追加構成を追加する必要がある場合にも適用されます。 | 
| データセンター全体に TiDB クラスターをデプロイ | 地理的に分散された展開トポロジをデプロイ | 地理的に分散した展開のためのコンフィグレーションテンプレート | このトポロジは、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 v7.1.3 ./topology.yaml --user root [-p] [-i /home/root/.ssh/gcp_rsa]
上記のtiup cluster deployコマンドでは次のようになります。
tidb-testは、デプロイされる TiDB クラスターの名前です。v7.1.3は、デプロイされる 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クラスタ v1.9.0 以降、新しい起動方法としてセーフ スタートが導入されました。この方法を使用してデータベースを起動すると、データベースのセキュリティが向上します。この方法を使用することをお勧めします。
安全に起動した後、 TiUP はTiDB root ユーザーのパスワードを自動的に生成し、コマンドライン インターフェイスでそのパスワードを返します。
注記:
TiDB クラスターを安全に起動した後は、パスワードなしで root ユーザーを使用して TiDB にログインすることはできません。したがって、今後のログインに備えて、コマンド出力で返されたパスワードを記録する必要があります。
パスワードは 1 回だけ生成されます。記録していない場合や忘れてしまった場合は、
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ステータスが示されている場合、クラスターは正常に実行されています。
こちらも参照
TiFlash TiDB クラスターとともにデプロイした場合は、次のドキュメントを参照してください。
TiCDC TiDB クラスターとともにデプロイした場合は、次のドキュメントを参照してください。