tiup cluster patch
クラスタの実行中にサービスのバイナリを動的に置換する必要がある場合(つまり、置換プロセス中にクラスタを使用可能な状態に保つ必要がある場合)、 tiup cluster patch
コマンドを使用できます。コマンドが実行された後、TiUPは次のことを行います。
- 交換用のバイナリパッケージをターゲットマシンにアップロードします。
- ターゲットサービスがTiKV、TiFlash、TiDB Binlogなどのストレージサービスである場合、TiUPは最初にAPIを介して関連ノードをオフラインにします。
- ターゲットサービスを停止します。
- バイナリパッケージを解凍し、サービスを置き換えます。
- ターゲットサービスを開始します。
構文
tiup cluster patch <cluster-name> <package-path> [flags]
<cluster-name>
:操作するクラスタの名前。<package-path>
:置換に使用されるバイナリパッケージへのパス。
準備
次の手順に従って、このコマンドに必要なバイナリパッケージを事前にパックする必要があります。
- 置き換えるコンポーネントの名前
${component}
(tidb、tikv、pd ...)、コンポーネントの${version}
(v4.0.0、v4.0.1 ...)、およびオペレーティングシステム${os}
(linux
)とプラットフォーム${arch}
を決定します。コンポーネントが実行される場所。 - コマンド
wget https://tiup-mirrors.pingcap.com/${component}-${version}-${os}-${arch}.tar.gz -O /tmp/${component}-${version}-${os}-${arch}.tar.gz
を使用して、現在のコンポーネントパッケージをダウンロードします。 mkdir -p /tmp/package && cd /tmp/package
を実行して、ファイルをパックするための一時ディレクトリを作成します。tar xf /tmp/${component}-${version}-${os}-${arch}.tar.gz
を実行して、元のバイナリパッケージを解凍します。find .
を実行して、一時パッケージディレクトリ内のファイル構造を表示します。- バイナリファイルまたは構成ファイルを一時ディレクトリの対応する場所にコピーします。
tar czf /tmp/${component}-hotfix-${os}-${arch}.tar.gz *
を実行して、ファイルを一時ディレクトリにパックします。- 最後に、
tiup cluster patch
コマンドの<package-path>
として/tmp/${component}-hotfix-${os}-${arch}.tar.gz
を使用できます。
オプション
-上書き
- 特定のコンポーネント(TiDBやTiKVなど)にパッチを適用した後、tiupクラスタがコンポーネントをスケールアウトすると、TiUPはデフォルトで元のコンポーネントバージョンを使用します。クラスタが将来スケールアウトするときにパッチを適用するバージョンを使用するには、コマンドでオプション
--overwrite
を指定する必要があります。 - データ型:
BOOLEAN
- このオプションは、デフォルトで
false
の値で無効になっています。このオプションを有効にするには、このオプションをコマンドに追加し、true
の値を渡すか、値を渡さないようにします。
--転送タイムアウト
- PDまたはTiKVサービスを再起動する場合、TiKV / PDは最初に、再起動するノードのリーダーを別のノードに転送します。転送処理には時間がかかるため、オプション
--transfer-timeout
を使用して最大待機時間(秒単位)を設定できます。タイムアウト後、TiUPはサービスを直接再起動します。 - データ型:
UINT
- このオプションが指定されていない場合、TiUPは
300
秒間待機した後、サービスを直接再起動します。
ノート:
タイムアウト後にTiUPがサービスを直接再起動すると、サービスのパフォーマンスが低下する可能性があります。
-N、-node
- 置き換えるノードを指定します。このオプションの値は、ノードIDのコンマ区切りのリストです。ノードIDは、
tiup cluster display
コマンドによって返されたクラスタステータステーブルの最初の列から取得できます。 - データ型:
STRINGS
- このオプションが指定されていない場合、TiUPはデフォルトで置き換えるノードを選択しません。
ノート:
オプション
-R, --role
が同時に指定された場合、TiUPは-N, --node
と-R, --role
の両方の要件に一致するサービスノードを置き換えます。
-R、-role
- 置き換える役割を指定します。このオプションの値は、ノードの役割のコンマ区切りのリストです。
tiup cluster display
コマンドによって返されるクラスタステータステーブルの2番目の列から、ノードにデプロイされた役割を取得できます。 - データ型:
STRINGS
- このオプションが指定されていない場合、TiUPはデフォルトで置き換える役割を選択しません。
ノート:
オプション
-N, --node
が同時に指定された場合、TiUPは-N, --node
と-R, --role
の両方の要件に一致するサービスノードを置き換えます。
- オフライン
- 現在のクラスタが実行されていないことを宣言します。このオプションを指定すると、TiUPはサービスリーダーを別のノードに削除したり、サービスを再起動したりせず、クラスタコンポーネントのバイナリファイルを置き換えるだけです。
- データ型:
BOOLEAN
- このオプションは、デフォルトで
false
の値で無効になっています。このオプションを有効にするには、このオプションをコマンドに追加し、true
の値を渡すか、値を渡さないようにします。
-h、-help
- ヘルプ情報を出力します。
- データ型:
BOOLEAN
- このオプションは、デフォルトで
false
の値で無効になっています。このオプションを有効にするには、このオプションをコマンドに追加し、true
の値を渡すか、値を渡さないようにします。
出力
tiup-clusterの実行ログ。