ノードの更新

可能な場合は、Equality の会社の値に一致するように、含めない用語を変更しました。顧客の実装に対する影響を回避するために、一部の用語は変更されていません。

始める前に

  • すべてのクラスターでバックアップ手順をセットアップしてテストします。

  • ノードのメンテナンスを開始する前に、障害によってデータが失われないようにバックアップを実行します。

クラスターとアプリケーションの更新

更新プロセス中のコンポーネントの故障を最小限に抑える、あるいはゼロにするために、以下の手順は一度に 1 つの Anypoint Platform Private Cloud Edition ノードで実行する必要があります。1 つのノードですべての手順が完了してから、次のノードに移ってください。1 つのノードを更新したら、次のノードに移る前に、すべてのクラスターコンポーネントとアプリケーションの健全性状況を確認してください。

クラスターの健全性状況の確認

更新プロセスを開始する前に、クラスターが健全であることを確認します。そうしないと、このプロセスの想定の多くが無効になってしまいます。

  1. 以下のコマンドからの出力を確認します。

    gravity status
    etcdctl cluster-health

    前のコマンドからの出力が ​degraded​ 状態または ​errors​ を示した場合は、すべての問題を解決してから次に進んでください。

  2. すべてのポッドが動作していることを確認します。

    kubectl get pod -o wide --all-namespaces | grep -vi Running

    前のコマンドからの出力でいずれかのポッドの状態が「Running (実行中)」と示されていない場合は、すべての問題を解決してから次に進んでください。

更新のインストール

次の手順を実行するノードを選択します。

  1. 割り当て先ノードの名前を取得します。

    kubectl get nodes
  2. ノードをドレーンします。

    kubectl drain --delete-local-data --ignore-daemonsets <node_name>
  3. ノードをドレーンしたら、gravity ユニット名を識別します。

    sudo systemctl list-units --plain | awk '/planet-master/{print $1}'

    上のコマンドは、次のステップで ​$unit_name​ 値として使用する ​systemd​ ユニット名を出力します。

  4. gravity ユニットを停止します。

    systemctl stop $unit_name
    systemctl status $unit_name
  5. status​ サブコマンドが gravity ユニットの停止を示したら、更新をインストールしてサーバーを再起動します。

更新後の確認の実行

  1. すべてのシステムが正しく再起動されたことを確認します。

    systemctl status --failed

    上のコマンドがユニットを 1 つも返さなければ、システムが正常に再起動されて、すべてのユニットが起動しています。いずれかのユニットが起動に失敗した場合は、すべての問題を解決してから次に進んでください。

  2. gravity ​systemd​ ユニットを確認します。

    systemctl list-units '*gravity__gravitational*'
  3. journalctl​ を実行してログのエラーを確認します。

  4. すべて正常に起動したら、​gravity enter​ を実行して結果を確認します。

  5. クラスターの状況を再び確認します。

    gravity status
    etcdctl cluster-health
    gravity get pod -o wide--all-namespaces | grep -vi Running

ノードを再接続する

  1. gravity プラネットサービスとテレポートの状況を確認します。

    systemctl list-units '*gravity__gravitational*'
  2. gravity サービスの状況が ​loaded​、​active​、または ​running​ でなければ、有効化が必要です。

    systemctl enable --now <name_of_the_gravity_unit>
  3. ノードを再接続して割り当て先ノードを再びスケジュールポッドに設定します。この作業を完了するには数分かかる場合があります。

    kubectl uncordon <node_name>
  4. クラスターの状態を検証します。

    gravity status

    このコマンドがクラスターのすべてのノードに対して ​healthy​ 状況を表示することを確認します。ノードがクラスターに再接続されて健全な状況であることを確認できたら、クラスター内の次のノードで手順を繰り返し、すべてのノードを更新します。