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のユーザーが実行できます。

  1. 次のコマンドを実行して、TiUPをインストールします。

    curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh
  2. TiUP環境変数を設定します。

    1. グローバル環境変数を再宣言します。

      source .bash_profile
    2. TiUPがインストールされているかどうかを確認します。

      which tiup
  3. TiUPクラスタコンポーネントをインストールします。

    tiup cluster
  4. TiUPがすでにインストールされている場合は、TiUPクラスタコンポーネントを最新バージョンに更新します。

    tiup update --self && tiup update cluster

    “Update successfully!”が表示されている場合、TiUPクラスタは正常に更新されています。

  5. TiUPクラスタの現在のバージョンを確認します。

    tiup --binary cluster

TiUPをオフラインでデプロイ

このセクションの次の手順を実行して、TiUPを使用してTiDBクラスタをオフラインでデプロイします。

TiUPオフラインコンポーネントパッケージを準備します

TiUPオフラインコンポーネントパッケージを準備するには、 tiup mirror cloneを使用してオフラインコンポーネントパッケージを手動でパックできます。

  1. TiUPパッケージマネージャーをオンラインでインストールします。

    1. TiUPツールをインストールします。

      curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh
    2. グローバル環境変数を再宣言します。

      source .bash_profile
    3. TiUPがインストールされているかどうかを確認します。

      which tiup
  2. TiUPを使用してミラーを引き出します。

    1. インターネットにアクセスできるマシンで必要なコンポーネントをプルします。

      tiup mirror clone tidb-community-server-${version}-linux-amd64 ${version} --os=linux --arch=amd64

      上記のコマンドは、現在のディレクトリにtidb-community-server-${version}-linux-amd64という名前のディレクトリを作成します。このディレクトリには、クラスタの起動に必要なコンポーネントパッケージが含まれています。

    2. tarコマンドを使用してコンポーネントパッケージをパックし、分離された環境の制御マシンにパッケージを送信します。

      tar czvf tidb-community-server-${version}-linux-amd64.tar.gz tidb-community-server-${version}-linux-amd64

      tidb-community-server-${version}-linux-amd64.tar.gzは独立したオフライン環境パッケージです。

  3. オフラインミラーをカスタマイズするか、既存のオフラインミラーの内容を調整します。

    既存のオフラインミラーを調整する場合(コンポーネントの新しいバージョンの追加など)、次の手順を実行します。

    1. オフラインミラーをプルする場合、コンポーネントやバージョン情報などのパラメーターを介して特定の情報を指定することにより、不完全なオフラインミラーを取得できます。たとえば、次のコマンドを実行することにより、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のパラメーターを使用してそれらを指定できます。

    2. 「TiUPを使用してミラーをプルする」のステップ2を参照し、この不完全なオフラインミラーを隔離された環境の制御マシンに送信します。

    3. 隔離された環境の制御マシン上の現在のオフラインミラーのパスを確認します。 TiUPツールが最新バージョンの場合は、次のコマンドを実行して現在のミラーアドレスを取得できます。

      tiup mirror show

      上記のコマンドの出力がshowコマンドが存在しないことを示している場合は、古いバージョンのTiUPを使用している可能性があります。この場合、 $HOME/.tiup/tiup.tomlから現在のミラーアドレスを取得できます。このミラーアドレスを記録します。次の手順では、 ${base_mirror}を使用してこのアドレスを参照します。

    4. 不完全なオフラインミラーを既存のオフラインミラーにマージします。

      まず、現在のオフラインミラーのkeysディレクトリを$HOME/.tiupディレクトリにコピーします。

      cp -r ${base_mirror}/keys $HOME/.tiup/

      次に、TiUPコマンドを使用して、不完全なオフラインミラーを使用中のミラーにマージします。

      tiup mirror merge tiup-custom-mirror-v1.9.0
    5. 上記の手順が完了したら、 tiup listコマンドを実行して結果を確認します。このドキュメントの例では、 tiup list tiuptiup 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を含む基本的なクラスタトポロジです。
HTAPTiFlashトポロジをデプロイしますシンプルな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コマンドを使用して、クラスタの潜在的なリスクを検出し、自動的に修復します。

  1. 潜在的なリスクを確認します。

    tiup cluster check ./topology.yaml --user root [-p] [-i /home/root/.ssh/gcp_rsa]
  2. 自動修復を有効にします。

    tiup cluster check ./topology.yaml --apply --user root [-p] [-i /home/root/.ssh/gcp_rsa]
  3. 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をデプロイした場合は、次のドキュメントを参照してください。

このページは役に立ちましたか?