ダウンタイムなしで Confluence クラスタを手動アップグレード

お困りですか?

アトラシアン コミュニティをご利用ください。

コミュニティに質問

このドキュメントでは、自動化がほとんどまたはまったく行われないデプロイでローリング アップグレードを実行する方法のステップバイステップの手順について説明します。その手順は、Azure テンプレートに基づくデプロイにも適しています。 

ローリング アップグレードの概要 (計画および準備情報を含む) については、ダウンタイムなしで Confluence をアップグレードを参照してください。 

ステップ 1: アップグレード ファイルをダウンロードする

アップグレードを開始する前に、適切な Confluence バージョンをダウンロードする必要があります。各ノードにこれをインストールしていただきます。新しいバグ修正バージョンへのアップグレードのみ可能です (Confluence 7.9.0 から 7.9.4 など)。 

Confluence をダウンロードする

また、 > [全般設定] > [アップグレードを計画] に移動して、アップグレード前チェックを実行し、対応しているバグ修正アージョンをダウンロードすることもできます。

ステップ 2 - アップグレード モードの有効化

これを実行するには、システム管理者グローバル権限が必要です。 

アップグレード モードを有効化するには、次の手順を実行します。

  1.  > [一般設定] > [Rolling upgrades (ローリング アップグレード)] に移動します。
  2. アップグレード モード トグル (1) を選択します。 

スクリーンショット: ローリング アップグレード画面。

実行中のタスクとアクティブ ユーザー

各ノードについて、[Tasks running (実行中のタスク)] (2) 列には、そのノードで実行されている長時間実行のタスクの数が表示され、[Active users (アクティブ ユーザー)]はログインしているユーザーの数を示します。最初にアップグレードするノードを選択するときは、実行中のタスク数とアクティブ ユーザーが最も少ないノードから始めます。

アップグレード モードを有効にすると、クラスタは、新しいバグ修正バージョンを実行しているノードを受け入れることができます。これにより、1 つのノードをアップグレードし、そのノードを (アップグレードされていない他のノードとともに) クラスタに再追加できます。アップグレードされたアクティブ ノードとアップグレードされていないアクティブ ノードの両方が連携して、Confluence をすべてのユーザーが使用できるようにします。

まだノードをアップグレードしていない場合、アップグレード モードを無効化できます。

ステップ 3: 1 つ目のノードをアップグレードする

アップグレード モードを有効にすると、1 つ目のノードをアップグレードできるようになります。

最も負荷のノードから開始する

実行中のタスクとアクティブ ユーザーの数が最も少ないノードのアップグレードを開始することをお勧めします。[ローリング アップグレード] ページの [Cluster overview (クラスタの概要)] セクションに両方が表示されます。

まず、ノードで Confluence をグレースフル シャットダウンします。

  1. コマンド ラインまたは SSH からノードにアクセスします。

  2. ノードで Confluence をグレースフル シャットダウンします。これを行うには、オペレーティング システムと設定に対応する停止スクリプトを実行します。たとえば、Linux 上のサービスとして Confluence をインストールした場合、次のコマンドを実行してください。
    $ sudo /etc/init.d/confluence stop
    グレースフル Confluence シャットダウンの詳細をご確認ください
    グレースフル シャットダウンによって、Confluence ノードがオフラインになる前にすべてのタスクを終了できるようになります。シャットダウン中、ノードのステータスは終了になり、ノードに送信されたユーザー リクエストはロード バランサーによって他のアクティブ ノードにリダイレクトされます。

    tip/resting Created with Sketch.

    Linux または Docker で実行中のノードの場合、kill コマンドでグレースフル シャットダウンをトリガーすることもできます (これは、Confluence プロセスに直接 SIGTERM 信号を送信します)。

  3. ノードがオフラインになるまで待ちます。[ローリング アップグレード] ページの [クラスタ概要] セクションの [ノード ステータス] 列でステータスを監視できます。 


ノードのステータスがオフラインになったら、ノードのアップグレードを開始できます。そのノードのローカル ファイル システムにダウンロードされた Confluence インストール ファイルをコピーします。

1 つ目のノードをアップグレードするには:

  1. ディレクトリ(新しいインストールディレクトリ。既存のインストール ディレクトリとは異なる必要があります)にファイルを抽出(解凍)する
  2. <Installation-Directory>\confluence\WEB-INF\classes\confluence-init.properties  ファイルで次の行を更新し、対象のノードの既存のローカル ホーム ディレクトリを指すようにします。
  3. でプリで MySQL データベースを利用している場合、既存の Confluence インストール ディレクトリから新しいインストール ディレクトリの confluence/WEB-INF/lib に jdbc ドライバーの jar ファイルをコピーします。
    jdbc ドライバーは <Install-Directory>/common/lib または <Installation-Directory>/confluence/WEB-INF/lib ディレクトリにあります。詳細については、MySQL データベース セットアップを参照してください。
  4. Confluence をサービスとして実行している場合、
    • <install-directory>/bin/service.bat 実行して、既存のサービスを削除してサービスを再インストールします 
    • Linux で、サービスを更新して新しいインストール ディレクトリを指定します (または、シンボリック リンクを使用して指定します)。
  5. その他の必要なカスタマイズを旧バージョンから新バージョンに直ちにコピーします (Confluence をデフォルトのポートで実行していない場合、または外部でユーザーを管理している場合、関連ファイルをアップデートおよびコピーする必要があります - 詳細は Confluence を手動でアップグレードするを参照してください)。

    Confluence が Windows または Linux サービスとして実行されるように設定している場合、必ずサービス設定も更新してください。関連情報については、Confluence をサービスとして Windows 上で自動的に開始または Linux で systemd サービスとして Conluence を実行を参照してください。

  6. Confluence を起動し、次のステップに進む前に、ログインできるか、ページを閲覧できるか、確認してください。
      

最初にアップグレードされたノードがクラスタに参加するとすぐに、クラスタのステータスは Mixed に移行します。つまり、すべてのノードで同じバージョンが実行されるまで、アップグレード モードを無効にすることはできません。

Synchrony のアップグレード (オプション)

Confluence で Synchrony を管理している場合 (推奨)、操作は不要です。Synchrony は Confluence によって自動的にアップグレードされます。 

自分の Synchrony クラスタを実行している場合、アップグレードされた Confluence ノードの <local-home> ディレクトリから新しい synchrony-standalone.jar を入手します。その後、各 Synchrony ノードで次の手順を実行します。

  1. Synchrony ホーム ディレクトリから start-synchrony.sh(Linux の場合) または start-synchrony.bat(Windows の場合) を使用して、ノード上の Synchrony を停止します。  
  2. Synchrony ホーム ディレクトリに新しい synchrony-standalone.jar をコピーします。
  3. Synchrony を通常どおり起動します。

関連情報については、「Confluence Data Center 用に Synchrony クラスタをセットアップする」を参照してください。

ステップ 4: 残りのノードを個別にアップグレードする

アップグレードしたノードを起動した後、Cluster の概要に Active ステータスでノードが表示されるのを待ちます。アップグレードが終了したら、前のステップの手順を使用して、別のノードのアップグレードを開始できます。これを他の各ノードにも行います – 通常通り、毎回、実行するタスクの数が最も少ないノードをアップグレードすることをお勧めします。

ステップ 5. アップグレードを完了する

すべてのノードが Active で、同じアップグレード バージョンを実行したら、[Finalize upgrade (アップグレードを完了する)] を選択してローリング アップグレードを完了します。このボタンは、すべてのノードでアップグレードされたバージョンを実行している場合にのみ使用できます。 

トラブルシューティング 

ローリング アップグレード中のノード エラー

ノードのステータスが Error になった場合、アップグレード中に問題が発生しています。いずれかのノードが Error ステータスの場合、ローリング アップグレードを完了できません。ただし、クラスタ ステータスが Ready to upgrade である場合、アップグレード モードを無効化できます。

対処方法はいくつかあります。

  • ノードで Confluence をグレースフル シャットダウンします。これにより、ノードがクラスタから切断され、ノードが Offline ステータスにトランジションできるようになります。

  • Confluence を正常にシャットダウンできない場合は、ノードを完全にシャットダウンしてください。

すべてのアクティブ ノードがアップグレードされたら、ローリング アップグレードを完了できます。問題のあるノードの問題を後で調査し、エラーに対処したら、クラスタに再接続できます。

ノードを元のバージョンにロールバックする

すべてのノードが以下に場合、アップグレード モードを無効化できます。
  • まだアップグレードされていない
  • エラー状態になっている

アップグレードされたノードがクラスタに参加するか、ノードがエラー状態になると、クラスタのステータスは Mixed に変わります。 

アップグレード モードが無効になっている Mixed ステータス

アップグレード モードが無効のノードが Error 状態の場合、アップグレード モードを有効にすることはできません。問題を修正するか、クラスタからノードを削除して、アップグレード モードを有効にします。 

アップグレードしたノードを元のバージョンにロール バックするには、次の手順を実行します。

  1. コマンド ラインまたは SSH からノードにアクセスします。

  2. ノードで Confluence をグレースフル シャットダウンします。 

  3. ノードがオフラインになるまで待ちます。[ローリング アップグレード] ページの [クラスタ概要] セクションの [ノード ステータス] 列でステータスを監視できます。

  4. Confluence をサービスとして実行している場合、
    • Windows の場合、<old-install-directory>/bin/service.bat を実行して、新しいサービスを削除して古いサービスを再インストールします。 
    • Linux の場合、サービスを更新して古いインストール ディレクトリを指定します (または、シンボリック リンクを使用して指定します)。
  5. 1 つのノードで Confluence を起動します。セットアップ ウィザードが表示されないはずです。

すべてのノードで同じバージョンが実行されると、クラスタのステータスは [Ready to upgrade (アップグレードの準備完了)] に戻ります。アップグレード モードをオフにできます。

ロード バランサーを使用してクラスタからノードを切断する

ノード エラーによって Confluence をグレースフル シャットダウンできない場合は、ロード バランサーを使用してクラスタからノードを切断してみてください。次の表に、一般的なロード バランサーでこれを行う方法を示します。

NGINX

NGINX は、アップストリーム ディレクティブを介してクラスタ ノードのグループを定義します。ロード バランサーがノードに接続できないようにするには、対応するアップストリーム グループからノードのエントリを削除します。ngx_http_upstream_module モジュールのアップストリーム ディレクティブの詳細をご確認ください。

HAProxy

HAProxy で、ノードへのトラフィックをすべて無効にするには、maint 状態にします。

set server <node IP or hostname> state maint

サーバーの管理状態の強制の詳細をご確認ください。

Apache

ノード (または「ワーカー)」 を無効にするには、そのアクティブ化メンバー属性を disabled に設定します。Apache における高度なロード バランサー ワーカー プロパティの詳細をご確認ください。

Azure アプリケーション ゲートウェイAzure の Confluence Data Center 用のデプロイ テンプレートを提供しています。このテンプレートは、ロード バランサーとして Azure Application Gateway を使用しています。Azure Application Gateway は、各ノードをバックエンド プール内のターゲットとして定義しています。ノードの対応するエントリを削除するには、バックエンド プール編集インターフェイスを使用します。バックエンド プールからのターゲットの追加 (および削除) の詳細をご確認ください

アップグレード中またはアップグレード後にトラフィックが不均一に分散しています

ロード バランサーによっては、新しくアップグレードされたノードに、不均一な数のアクティブ ユーザーを送信する方法が採用される場合があります。この場合、ノードが過負荷になり、ノードにログインしているすべてのユーザーの Confluence が遅くなる可能性があります。

この問題に対処するには、ノードをクラスタから一時的に切断することもできます。これにより、ロード バランサーは、他のすべての利用可能なノード間でアクティブなユーザーを再分配します。その後、クラスタにノードを再度追加できます。

ノードが起動しません 

ノードの Offline または Starting 状態が長すぎる場合は、ノード上で Confluence を直接トラブルシューティングする必要があります。関連情報については、Confluence の起動の問題のトラブルシューティング を参照してください。

最終更新日: 2020 年 12 月 14 日

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.