- 概要
- 要件
- デプロイ テンプレート
- 手動: インストールを準備する
- 手動: インストールを準備する
- 手順 2: オフライン インストール用に OCI 準拠レジストリを設定する
- 手順 3: 外部 ObjectStore を構成する
- 手順 4: High Availability Add-on を構成する
- 手順 5: SQL データベースを構成する
- 手順 7: DNS を構成する
- 手順 8: ディスクを構成する
- 手順 9: カーネルと OS レベルの設定を構成する
- 手順 10: ノード ポートを構成する
- 手順 11: その他の設定を適用する
- 手順 12: 必要な RPM パッケージを検証してインストールする
- 手順 13: cluster_config.json を生成する
- Cluster_config.json のサンプル
- 全般的な構成
- プロファイル構成
- 証明書の設定
- データベースの構成
- 外部 ObjectStore の構成
- 署名済み URL の構成
- ArgoCD の構成
- Kerberos 認証の構成
- 外部の OCI 準拠レジストリの設定
- Disaster Recovery - アクティブ/パッシブおよびアクティブ/アクティブの構成
- High Availability Add-on の構成
- Orchestrator 固有の設定
- Insights 固有の構成
- Process Mining 固有の構成
- Document Understanding 固有の構成
- Automation Suite ロボット固有の構成
- 監視の構成
- 任意: プロキシ サーバーを構成する
- 任意: マルチノードの HA 対応の運用クラスターにおけるゾーン障害に対する復元設定を有効化する
- 任意: カスタムの Resolv.con を渡す
- 任意: フォールト トレランスを向上させる
- GPU がサポートされた専用のエージェント ノードを追加する
- Automation Suite ロボット専用のエージェント ノードを追加する
- 手順 15: オフライン インストール用に一時的な Docker レジストリを設定する
- 手順 16: インストールの前提条件を検証する
- uipathc を実行する
- 手動: インストールを実行する
- インストール後
- クラスターの管理
- 監視とアラート機能
- 移行とアップグレード
- 製品固有の設定
- ベスト プラクティスとメンテナンス
- トラブルシューティング
- インストール時にサービスをトラブルシューティングする方法
- NFS バックアップ ディレクトリの権限を減らす方法
- クラスターをアンインストールする方法
- オフライン成果物をクリーンアップしてディスク領域を改善する方法
- Redis データをクリアする方法
- Istio ログを有効化する方法
- ログを手動でクリーンアップする方法
- sf-logs バケットに保存されている古いログをクリーンアップする方法
- AI Center のストリーミング ログを無効化する方法
- 失敗した Automation Suite インストールをデバッグする方法
- アップグレード後に古いインストーラーからイメージを削除する方法
- TX チェックサム オフロードを無効化する方法
- ArgoCD のログ レベルを手動で Info に設定する方法
- AI Center のストレージを拡張する方法
- 外部レジストリーのエンコードされたpull_secret_valueを生成する方法
- TLS 1.2 で弱い暗号に対処する方法
- TLSのバージョンを確認する方法
- 証明書の操作方法
- Ceph のバックアップとデータの復元をスケジュールする方法
- クラスター内の ObjectStore (Ceph) を使用して DU の使用状況データを収集する方法
- エアギャップ環境に RKE2 SELinux をインストールする方法
- NFS サーバー上の古い差分バックアップをクリーンアップする方法
- FIPS が有効化されたクラスターに Insights をデプロイする方法
- cgroup v2 への移行方法
- 仮想マシンの再起動後に Kerberos 認証を回復する方法
- ローカルの Docker イメージをクラスター内のレジストリにプッシュする方法
- バックアップからバケットを除外する方法
- バンドルのダウンロード中のエラー
- バイナリがないため、オフライン インストールが失敗する
- オフライン インストールでの証明書の問題
- SQL 接続文字列の検証エラー
- Azure ディスクが SSD としてマークされない
- 証明書の更新後のエラー
- TLS 証明書の検証エラー
- ウイルス対策が原因でインストールの問題が発生する
- OS のアップグレード後に Automation Suite が動作しない
- Automation Suite で backlog_wait_time を 0 に設定する必要がある
- RHEL 8.9 でレジストリの一時インストールが失敗する
- オフライン インストール中に uipath 名前空間のデプロイで頻繁に発生する再起動の問題
- DNS 設定が CoreDNS によって受け入れられない
- メモリ不足によりクラスター内レジストリのシーディングが失敗する
- Document Understanding モダン プロジェクトが有効化されていて、AI Center が無効化されている場合、前提条件の確認に失敗します
- Ceph の異常によりアップグレードが失敗する
- 領域の問題のために rke2 が開始しない
- Orchestrator データベース内のクラシック オブジェクトが原因でアップグレードが失敗する
- Ceph クラスターがサイドバイサイド アップグレード後に機能低下ステートで検出される
- Apps のサービス アップグレードの失敗
- インプレース アップグレードのタイムアウト
- オフライン環境でアップグレードが失敗する
- アップグレード後に snapshot-controller-crds ポッドが CrashLoopBackOff ステートになる
- Insights の PVC サイズが上書きされたためにアップグレードが失敗する
- 大文字のホスト名が原因でアップグレードが失敗する
- 管理ポータルのタイムアウト期間を設定する
- 移行後に認証が機能しない
- Kinit: Cannot find KDC for realm <AD Domain> while getting initial credentials
- kinit: Keytab contains no suitable keys for *** while getting initial credentials
- 無効なステータス コードが原因で GSSAPI 操作が失敗した
- Alarm received for failed kerberos-tgt-update job
- SSPI Provider: Server not found in Kerberos database
- アカウントが無効なため AD ユーザーのログインに失敗した
- ArgoCD へのログインに失敗した
- 基になるディレクトリ接続を更新する
- サンドボックス イメージを取得できない
- ポッドが ArgoCD UI に表示されない
- Redis プローブの障害
- RKE2 サーバーの起動に失敗する
- UiPath 名前空間でシークレットが見つからない
- 初回インストール後に ArgoCD が進行中ステートになる
- ArgoCD リポジトリ サーバー ポッドが CrashLoopBackOff になる
- 手動による ArgoCD ネットワーク ポリシーの軽減策 (GHSA-47m3-95c7-g2g8)
- Ceph-rook のメトリックが監視ダッシュボードに表示されない
- 診断ヘルスチェック中に報告されたエラーの不一致
- uipathctl で作成されたワークロードのリソース要求と制限を設定する
- アップストリームに正常な問題はありません
- Redis の起動がウイルス対策によってブロックされる
- TLS 証明書の検証が有効化されていると、AI Center と Document Understanding ポッドの起動に失敗する
- Fluentd では、IPv6 環境ではログはエクスポートされません
- デスクトップ版の Studio では Integration Service のコネクタとアクティビティを読み込めない
- Process Mining で高可用性を実行する
- Kerberos を使用してログインすると、Process Mining を取り込むことができなかった
- pyodbc 形式の接続文字列を使用して AutomationSuite_ProcessMining_Warehouse データベースに接続できない
- Airflow のインストールが「sqlalchemy.exc.ArgumentError: Could not parse rfc1738 URL from string ''」で失敗する
- SQL Server ポート 1433 を使用する IP テーブル ルールを追加する方法
- CData Sync を実行しているサーバーの Automation Suite の証明書が信頼されない
- 診断ツールを実行する
- Automation Suite サポート バンドルを使用する
- ログを確認する
Automation Suite のマルチノード高可用性対応の運用環境デプロイにおけるロード バランサーの要件と構成オプション。
概要
マルチノードの高可用性対応の運用設定の場合、ロード バランサーは必須です。
Azure Load Balancer などの一部のロード バランサーには、クライアントの IP アドレスを独自のアドレスに置き換えずにサーバーに転送する機能があります。この機能により、サーバーは元のクライアントの IP を確認できるため、サーバーがクライアントの IP アドレスを識別するための追加の手順は必要ありません。
一方、ロード バランサーがクライアントの IP アドレスを独自の IP アドレスに置き換える場合は、サーバーに送信する要求に x-forwarded-for ヘッダーと呼ばれる特別なヘッダーを追加することで補うことができます。このヘッダーには、元のクライアントの IP アドレスが含まれます。その後、サーバーはこのヘッダーを読み取って、クライアントの IP アドレスを取得できます。
Automation Suite では、この後のセクションで示すとおり、ロード バランサーに対して、2 種類の構成をサポートしています。
セッション永続性または固定セッションを使用するようにロード バランサーを構成することはできますが、要件ではありません。
現在、Automation Suite ではレイヤー 4 (ネットワーク レイヤー) のロード バランサーがサポートされています。レイヤー 7 (アプリケーション レイヤー) ロード バランサーもサポートされています。詳しくは、「 L7 ロード バランサーを構成する (任意)」をご覧ください。
このロード バランサーは、TLS の暗号化と終端処理をサポートしていません。サービスを効果的に運用するには、必ず、トラフィックを容易にパススルーできるようにロード バランサーを構成してください。
デプロイに Azure Internal Load Balancer (LB) を使用している場合、バックエンド仮想マシン (VM) から LB フロントエンド IP への呼び出しで問題が発生する可能性があります。この問題は、ネットワーク パケットの送信元 IP アドレスと MAC アドレスの不一致が原因で発生します。
これにより、受信者が正しい応答パスを特定できなくなり、VM から LB への呼び出しが失敗します。詳しくは、「 Azure Load Balancer コンポーネント の制限事項」および 「バックエンド トラフィックのトラブルシューティング」をご覧ください。
サーバーとノード プールの構成
以下に、ロード バランサーの推奨構成を示します。
バックエンド プールを構成する
次の要件を満たす 3 つのバックエンド プールを作成する必要があります。
- サーバー プール
- すべてのサーバー ノードから構成されます。
- サーバー プール内には、エージェント ノードが存在してはなりません。
- ノード プール
- すべてのサーバー ノードと特殊化されていないエージェント ノードから構成されます。特殊なエージェント ノードには、
gpuとasrobotsが含まれます。
- すべてのサーバー ノードと特殊化されていないエージェント ノードから構成されます。特殊なエージェント ノードには、
- 一時レジストリ プール
- 一時レジストリがインストールされているサーバー ノードのみで構成されます。
注:一時レジストリ プールは、Automation Suite のインストール、ノード参加、およびアップグレードの手順でのみ使用されます。 手順を完了したら、一時レジストリ プールを閉じることができます。
正常性プローブを構成する
次の表で、ロード バランサーの正常性プローブの構成について説明します。
| プローブ | プロトコル | ポート | 間隔 | 再エントリしきい値 | 関連付けるプール |
|---|---|---|---|---|---|
https-probe | TCP | 443 | 15 秒 | 2 | ノード プール |
kubeapi-probe | TCP | 6443 | 15 秒 | 2 | サーバー プール |
構成の詳細については、次の画像を参照してください。
ロード バランサーのポートを有効化する
ロード バランサーのソースに対するファイアウォールで、次のポートが有効化されていることを確認します。
| ポート | プロトコル | 目的 | トラフィックの転送 | 正常性プローブ |
|---|---|---|---|---|
443 | TCP | HTTPS 用 (Automation Suite にアクセスする)。 | このポートのトラフィックはノード プールに転送する必要があります。 | https-probe |
300701 | TCP | HTTP を使用したインストールおよびアップグレード中に一時レジストリにアクセスするため。 | このポートのトラフィックは一時レジストリ プールに転送する必要があります。 | N/A |
6443 | TCP | HTTPS を使用した Kube API へのアクセス用 (ノード参加に必要)。 | このポートのトラフィックはサーバー プールに転送する必要があります。 | kubeapi-probe |
9345 | TCP | HTTPS を使用した Kube API へのアクセス用 (ノード参加に必要)。 | このポートのトラフィックはサーバー プールに転送する必要があります。 | kubeapi-probe |
1 外部の OCI 準拠レジストリがない場合は、ロード・バランサーと、一時的な Docker レジストリをインストールする予定のサーバー・ノードでポート 30070 を開く必要があります。
HTTPS 以外のすべてのポートについては、クラスター外に公開しないことを推奨します。ファイアウォール/セキュリティ グループの背後でノードを実行します。
ネットワーク上にファイアウォールが設定されている場合、上記のポートが開かれ、トラフィックが許可されていることを確認します。
通常のロード バランサーの構成は、次の図のいずれかのようになります。
代替構成
この構成には、インストール中にダウンするノードに対する復元性がありません。
プライマリ サーバーがダウンしたり、削除されたりした場合、クラスターの構成を更新する必要があります。
プライマリ サーバーの FQDN を、クラスター内の利用可能な他のマシンに再マッピングする必要があります。
バックエンド プールを構成する
以下のとおり、バックエンド プールを 1 つ作成します。
- ノード プールを作成します。
ロード バランサーのポートを有効化する
ロード バランサーのソースに対するファイアウォールで、次のポートが有効化されていることを確認します。
| ポート | プロトコル | 目的 | トラフィックの転送 |
|---|---|---|---|
443 | TCP | HTTPS 用 (Automation Suite にアクセスする)。 | このポートのトラフィックはノード プールに転送する必要があります。 |
正常性プローブを構成する
次の表で、ロード バランサーの正常性プローブの構成について説明します。
| プローブ | プロトコル | ポート | 間隔 | 再エントリしきい値 | 関連付けるプール |
|---|---|---|---|---|---|
https-probe | TCP | 443 | 15 秒 | 2 | ノード プール |
構成の詳細については、次の画像を参照してください。