TiUPを使用してTiDBクラスターをデプロイする
TiUPは、TiDB4.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 cluster“Update 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
は独立したオフライン環境パッケージです。
オフラインミラーをカスタマイズするか、既存のオフラインミラーの内容を調整します。
既存のオフラインミラーを調整する場合(コンポーネントの新しいバージョンの追加など)、次の手順を実行します。
オフラインミラーをプルする場合、コンポーネントやバージョン情報などのパラメーターを介して特定の情報を指定することにより、不完全なオフラインミラーを取得できます。たとえば、次のコマンドを実行することにより、TiUPv1.9.0およびTiUPClusterv1.9.0のオフラインミラーのみを含むオフラインミラーをプルできます。
tiup mirror clone tiup-custom-mirror-v1.9.0 --tiup v1.9.0 --cluster v1.9.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.9.0上記の手順が完了したら、
tiup list
コマンドを実行して結果を確認します。このドキュメントの例では、tiup list tiup
とtiup list cluster
の両方の出力は、v1.9.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つの一般的なシナリオでは、コマンドを実行して推奨トポロジテンプレートを生成できます。
ハイブリッド展開の場合:複数のインスタンスが単一のマシンに展開されます。詳細については、 ハイブリッド展開トポロジを参照してください。
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などの複数のダウンストリームプラットフォームをサポートします。 |
TiDB Binlogを使用して増分データを複製する | Binlogトポロジをデプロイします | 単純なBinlog構成テンプレート(ダウンストリームとしてのMySQL) シンプルなBinlog構成テンプレート(ダウンストリームとしてのファイル) 完全なBinlog構成テンプレート | これは、最小限のクラスタトポロジとともにBinlogを展開するためです。 |
SparkでOLAPを使用する | TiSparkトポロジをデプロイします | シンプルなTiSpark構成テンプレート 完全なTiSpark構成テンプレート | これは、最小限のクラスタトポロジとともにTiSparkを展開するためです。 TiSparkは、TiDB /TiKV上でApacheSparkを実行して、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 v5.4.2 ./topology.yaml --user root [-p] [-i /home/root/.ssh/gcp_rsa]
上記のtiup cluster deploy
のコマンドで:
tidb-test
は、デプロイするTiDBクラスタの名前です。v5.4.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クラスタ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
のステータスが表示されている場合、クラスタは正常に実行されています。
も参照してください
TiDBクラスタと一緒にTiFlashをデプロイした場合は、次のドキュメントを参照してください。
TiDBクラスタと一緒にTiCDCをデプロイした場合は、次のドキュメントを参照してください。