Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Ubuntuでのインストールの前提条件

Paragon Automationクラスタを正常にインストールして展開するには、単一ノードまたは複数のクラスタノードに配布ソフトウェアをインストールする制御ホストが必要です。コントロール・ホストに配布ソフトウェアをダウンロードしてから、コントロール・ホストからインストールを実行するインストール・ファイルを作成および構成できます。コントロール・ホスト上のパッケージをダウンロードするには、 インターネット・アクセス が必要です。また、Docker や OS パッチなどの追加のソフトウェアをダウンロードするには、クラスター ノードでインターネットにアクセスできる必要があります。インストール作業の順序を 図 1 に大まかに示しています。

図1: Paragon AutomationHigh-Level Process Flow for Installing Paragon Automationをインストールするための高レベルのプロセスフロー

配布ソフトウェアをダウンロードしてインストールする前に、このトピックの説明に従って、制御ホストとクラスタ ノードを設定する必要があります。

制御ホストの準備

制御ホストは、Paragon Automationクラスタのインストールとアップグレードをオーケストレーションする専用マシンです。これは、ソフトウェア・インストーラーを実行し、 ホスト機能の制御に示されているようにクラスター・ノードにソフトウェアをインストールする Ansible 操作を実行します。

インストーラー パッケージを Ansible コントロール ホストにダウンロードする必要があります。Paragon Automationのインストールプロセスの一環として、制御ホストはクラスタノードに必要な追加パッケージをインストールします。パッケージには、オプションの OS パッケージ、Docker、および Elasticsearch が含まれます。サードパーティのマイクロサービスを含むすべてのマイクロサービスが、クラスター ノードにダウンロードされます。マイクロサービスは、インストール中にパブリック レジストリにアクセスしません。

制御ホストは、クラスタ ノードとは異なるブロードキャスト ドメインにあってもかまいませんが、制御ホストが SSH を使用してすべてのノードに接続できることを確認する必要があります。

図2: ホスト機能の制御Control Host Functions

インストールが完了すると、制御ホストはクラスタの機能に何の役割も果たしません。ただし、ソフトウェアまたはコンポーネントを更新したり、クラスターに変更を加えたり、ノードに障害が発生した場合にクラスターを再インストールしたりするには、制御ホストが必要です。また、制御ホストを使用して、設定ファイルをアーカイブすることもできます。インストール後は、コントロールホストを使用可能な状態に保ち、他の用途には使用しないことをお勧めします。

以下の手順で、インストール・プロセス用にコントロール・ホストを準備します。

  1. ベース OS のインストール - Ubuntu バージョン 18.04.04 (またはそれ以降) をインストールします。Paragon Automation Release 23.1は、Ubuntuバージョン18.04.05 LTS(バイオニックビーバー)および20.04.4 LTS(フォーカルフォッサ)で動作するように認定されています。リリース23.1は、Ubuntu 22.04.2 LTS(Jammy Jellyfish)でも実験的にサポートされています。
  2. Docker のインストール - コントロール ホストに Docker をインストールして構成し、Linux コンテナー環境を実装します。Paragon Automationは、Docker CEとDocker EEをサポートしています。コントロール ホストにインストールする Docker のバージョンは、クラスター ノードで使用する予定の Docker のバージョンとは無関係です。

    Docker EE をインストールする場合は、インストールする前に試用版またはサブスクリプションがあることを確認してください。Docker EE、サポートされるシステム、およびインストール手順について詳しくは、 https://www.docker.com/blog/docker-enterprise-edition/ を参照してください。

    Docker CEをダウンロードしてインストールするには、次の手順を実行します。 Docker がインストールされ、実行されていることを確認するには、 # docker run hello-world コマンドを使用します。

    インストールされている Docker のバージョンを確認するには、 # docker version コマンドまたは # docker --version コマンドを使用します。

    詳細な手順と詳細については、「 https://docs.docker.com/engine/install/ubuntu/」を参照してください。
  3. SSHクライアント認証の構成:制御ホストで実行されているインストーラーは、SSHを使用してクラスターノードに接続します。SSH認証では、スーパーユーザー(sudo)権限を持つrootまたは非rootユーザーアカウントを使用する必要があります。以降の手順では、このアカウントをインストール ユーザー アカウントと呼びます。クラスタ内のすべてのノードでインストール ユーザー アカウントが設定されていることを確認する必要があります。インストーラーはインベントリ ファイルを使用して、使用するユーザー名と、認証で SSH キーとパスワードのどちらを使用するかを決定します。インベントリファイルのカスタマイズ - マルチノード実装またはインベントリファイルのカスタマイズ - 単一ノード実装を参照してください。

    ssh-key認証(推奨)方式を選択した場合は、SSH キーを生成します。

    パスフレーズでSSHキーを保護する場合は、 ssh-agent キーマネージャーを使用できます。 https://www.ssh.com/academy/ssh/agent を参照してください。

    手記:

    次のセクションで説明するように、クラスター ノードの準備タスクの一部として、このキーをノードにコピーする必要があります。

  4. (オプション) wget のインストール - wget ユーティリティをインストールして、Paragon Automation 配布ソフトウェアをダウンロードします。

    # apt install wget

    または、 rsync またはその他のファイルダウンロードソフトウェアを使用して、配布ソフトウェアをコピーすることもできます。

クラスタノードの準備

プライマリ ノードとワーカー ノードは、まとめて クラスター ノードと呼ばれます。各クラスター ノードには、 図 3 に示すように、少なくとも 1 つの一意の静的 IP アドレスが必要です。ホスト名を設定するときは、小文字のみを使用し、ハイフン(-)またはピリオド(.)以外の特殊文字は使用しないでください。 Paragon Automationポートフォリオのインストールの概要で説明されているように、実装にParagon Automationコンポーネント間の通信を提供する個別のIPネットワークがある場合は、ワーカーノードに2番目のIPアドレスセットを割り当てる必要があります。これらの IP アドレスにより、クラスター外のデバイスがワーカー ノードに到達し、次の間の通信が可能になります。
  • Paragon Automationと管理対象デバイス
  • Paragon Automationとネットワーク管理者

すべてのノードを同じブロードキャスト ドメインに配置することをお勧めします。異なるブロードキャスト ドメイン内のクラスター ノードについては、「 負荷分散の構成 」で追加の負荷分散構成を参照してください。

図 3: クラスター ノード関数 Cluster Node Functions

Paragon Automationのシステム要件で説明されているように、Paragon Automationはシングルノードまたはマルチノードの導入を使用してインストールできます。ノードのインストールの前提条件は、ストレージ要件を除き、マルチノード展開と単一ノード展開の両方で同じです。

Paragon Automationのインストールプロセス用に、クラスタノードを準備する必要があります。

  1. raw ディスクストレージの構成 — クラスターノードには、パーティション分割されていないディスクまたはフォーマットされていないディスクパーティションが接続された raw ストレージブロックデバイスが必要です。また、ルートパーティションや他のファイルシステムが使用可能なディスク領域の一部を使用できるように、ノードをパーティション化することもできます。残りの領域は、ファイルシステムなしでフォーマットせずに残し、Cephが使用できるように予約する必要があります。詳細については、「ディスク要件」を参照してください
    手記:

    Cephがパーティション分割されていないディスクまたはフォーマットされていないディスクパーティションを使用できるようにするために、何もインストールまたは設定する必要はありません。Paragon Automationのインストールプロセスにより、Cephストレージ用のスペースが自動的に割り当てられます。

    マルチノード クラスタの場合、記憶域が接続されたクラスタ ノードが少なくとも 3 つ必要です。つまり、ストレージ用にパーティション分割されていないディスクまたはフォーマットされていないディスク パーティションを持つ少なくとも 3 つのワーカー ノードです。

    フォーマットされていない ディスクが使用 できない場合、インストールは失敗します。

    Cephには新しいカーネルバージョンが必要です。Linuxカーネルが非常に古い場合は、新しいカーネルのアップグレードまたは再インストールを検討してください。お使いのOSでCephでサポートされているLinuxカーネルの最小バージョンのリストについては、 https://docs.ceph.com/en/latest/start/os-recommendations を参照してください。Linux カーネルのバージョンをアップグレードするには、「 Ubuntu Linux カーネルのバージョンをアップグレードする」を参照してください。

    手記:

    CephはLinuxカーネルバージョン4.15.0-55.60では動作しません。

  2. ベース OS のインストール - すべてのノードに Ubuntu バージョン 18.04.04 (またはそれ以降) をインストールします。Paragon Automation Release 23.1は、Ubuntuバージョン18.04.05 LTS(バイオニックビーバー)および20.04.4 LTS(フォーカルフォッサ)で動作するように認定されています。リリース23.1は、Ubuntu 22.04.2 LTS(Jammy Jellyfish)でも実験的にサポートされています。
  3. インストールユーザーアカウントの作成:インストールユーザーは、Ansibleプレイブックがプライマリノードとワーカーノードにログインし、すべてのインストールタスクを実行するために使用するユーザーです。root パスワードまたはスーパーユーザー(sudo)権限を持つアカウントのいずれかを設定してください。この情報は、インストール プロセス中にインベントリ ファイルに追加します。
    root ユーザーのパスワードを設定します。
  4. SSH認証のインストール:制御ホストで実行されているインストーラーは、インストールユーザーアカウントを使用してSSH経由でクラスターノードに接続します。
    1. クラスタノードにログインします。そして、すべてのノードにOpen-SSHサーバーをインストールします。
    2. sshd_configファイルを編集します。

      # vi /etc/ssh/sshd_config

    3. インストールユーザーアカウントとして「root」を使用している場合は、rootログインを許可します。

      PermitRootLogin yes

      認証にプレーンテキストのパスワードを使用することを選択した場合は、パスワード認証を有効にする必要があります。

      PasswordAuthentication yes

      パスワード認証の使用はお勧めしません。

    4. AllowTcpForwarding パラメーターが yes に設定されていることを確認します。

      AllowTcpForwarding yes
      手記:

      AllowTcpForwardingパラメータがnoに設定されている場合、Paragon Automationのインストールは失敗します。

    5. /etc/ssh/sshd_config を変更した場合は、SSH デーモンを再起動してください。

      # systemctl restart sshd

    6. 制御ホストにログインします。
      1. SSH キーを使用した認証を許可するには、 id_rsa.pub をクラスター ノードにコピーします。

        クラスター内のすべてのノード (プライマリとワーカー ) に対してこの手順 を繰り返します。 cluster-node-IP は、 図 3 に示すようなノードの固有アドレスです。代わりにホスト名を使用する場合、Ansibleコントロールホストは名前をIPアドレスに解決できる必要があります。

      2. SSH認証を使用して、インストールユーザーアカウントを使用してクラスターノードにログインします。ログインにパスワードは必要ありません。

        SSHを使用して、インストールユーザーアカウントを使用して、制御ホストからクラスター内のすべてのノード(プライマリおよびワーカー)に接続できる必要があります。ログインできない場合は、前の手順を確認して、何も見逃していないことを確認してください。

  5. [Docker のインストール] - インストールする次の Docker バージョンのいずれかを選択します。
    • Docker CE - Docker CE を使用する場合は、クラスタ ノードにインストールする必要はありません。deployスクリプトは、Paragon Automationのインストール中にノードにDocker CEをインストールします。

    • ドッカー EE — ドッカー EE を使用する場合は、すべてのクラスター ノードに Docker EE をインストールする必要があります。ノードに Docker EE をインストールする場合、deploy スクリプトはインストールされているバージョンを使用し、代わりに Docker CE をインストールしようとはしません。Docker EE とサポートされるシステムの詳細、および Docker EE をダウンロードしてインストールする手順については、https://www.docker.com/blog/docker-enterprise-edition/ を参照してください。

    クラスター ノードにインストールすることを選択した Docker のバージョンは、制御ホストにインストールされている Docker のバージョンに依存しません。

  6. Python のインストール - Python 3 が OS と共にプレインストールされていない場合は、クラスター ノードにインストールします。

    # apt install python3

    インストールされている Python のバージョンを確認するには、 # python3 -V コマンドまたは # python3 --version コマンドを使用します。

  7. # apt list --installed コマンドを使用して、以下のパッケージがインストールされていることを確認します。

    apt-transport-https, bash-completion, gdisk, iptables, lvm2, openssl

  8. NTP をインストールして有効にする - すべてのノードで、ネットワーク タイム プロトコル(NTP)またはその他の時刻同期プロトコルを常に実行する必要があります。デフォルトでは、Paragon Automation によって Chrony NTP クライアントがインストールされます。Chrony を使用したくない場合は、すべてのノードに NTP を手動でインストールできます。
    1. ntpdate をインストールし、NTP サーバーに照会して日付と時刻を同期させます。

      # apt install ntpdate -y

    2. 次のコマンドを 2 回実行して、NTP サーバーとのオフセットを減らします。

      # ntpdate ntp-server

    3. NTP プロトコルをインストールします。

      # apt install ntp -y

    4. NTP サーバー プールを構成します。

      # vi /etc/ntp.conf

    5. デフォルトのUbuntuプールを、 ntp.conf ファイル内の現在の場所に最も近いNTPサーバーに置き換えます。

      server ntp-server prefer iburst

      ファイルを保存して終了します。

    6. NTP サービスを再起動します。

      # systemctl restart ntp

    7. システムが NTP サーバーと同期していることを確認します。

      # timedatectl

  9. (オプション)Ubuntu LinuxカーネルのバージョンをアップグレードしますParagon Automationインストールの要件を満たすために、Ubuntuサーバーのカーネルバージョンを最新のLTSバージョンにアップグレードするには:
    1. root ユーザーとしてログインします。

    2. 既存のカーネルバージョンを確認してください。

      root@server# uname -msr

      Linux カーネルのバージョンが 4.15 より前の場合は、カーネルをアップグレードします。

    3. aptリポジトリを更新します。

      root@server# apt update

    4. カーネルのアップグレードを含む、既存のソフトウェアパッケージのアップグレード:

      root@server# apt upgrade -y

      root@server# apt install --install-recommends linux-generic-hwe-xx.xx

      ここでは、 xx.xx はUbuntu OSのバージョンです。

    5. サーバーを再起動して、新しいカーネルをロードします。

      root@server# reboot
    6. 新しいカーネルバージョンを確認します。

      root@server# uname -msr

仮想 IP アドレスに関する考慮事項

Kubernetesワーカーノードは、アプリケーションのワークロードを処理するポッドをホストします。

ポッドは、Kubernetes で作成および管理されるデプロイ可能なコンピューティングの最小単位です。ポッドには、共有ストレージとネットワーク リソース、およびアプリケーションの実行方法に関する具体的な指示を含む 1 つ以上のコンテナーが含まれます。コンテナーは最も低いレベルの処理であり、コンテナー内でアプリケーションまたはマイクロサービスを実行します。

クラスター内のプライマリ ノードは、特定のポッドとコンテナーをホストするワーカー ノードを決定します。

マイクロサービスを組み合わせてParagon Automationのすべての機能を実装します。これらのマイクロサービスの一部は、エンド ユーザー (管理対象デバイス) と管理者にサービスを提供するため、クラスターの外部からアクセスできるようにする必要があります。例えば、プロバイダエッジ(PE)ルーターとParagon Automationの間でPCEPセッションを確立するためには、pceserverサービスにアクセスできるようにする必要があります。

これらのサービスは、外部デバイスから到達可能な特定のアドレスを使用して、Kubernetes クラスターの外部に公開する必要があります。サービスは特定の時点で任意のワーカー ノードで実行できるため、外部アドレスとして仮想 IP アドレス (VIP) を使用する必要があります。特定のワーカー・ノードのアドレスを外部アドレスとして使用しないでください。

この例では:

  • ワーカー 1 が 10.1.x.3 で、ワーカー 2 が 10.1.x.4 であるとします。

  • サービス IP = PCEP VIP は 10.1.x.200 です

  • PCC_IP は 10.1.x.100 です

Paragon Automationサービスは、クラスタの外部にサービスを公開する方法として、次の2つの方法のいずれかを使用します。

  • ロード バランサー - 各ロード バランサーは特定の IP アドレスに関連付けられ、外部トラフィックをクラスター内の特定のサービスにルーティングします。これは、クラウドへの多くの Kubernetes インストールの既定の方法です。ロード バランサー方式では、サービスごとに複数のプロトコルと複数のポートがサポートされます。各サービスには、独自のロード バランサーと IP アドレスがあります。

  • Paragon Automationは、MetalLBロードバランサーを使用します。MetalLBは、レイヤー2モードで仮想IPアドレスを管理するか、レイヤー3モードで外部ルーターと対話することで、外部ロードバランサーをシミュレートします。MetalLB は、Kubernetes クラスターに負荷分散インフラストラクチャを提供します。

    種類が "LoadBalancer" のサービスは、Kubernetes 負荷分散インフラストラクチャと対話して、外部から到達可能な IP アドレスを割り当てます。一部のサービスでは、外部 IP アドレスを共有できます。

  • Ingress:ingress方式は、プロキシとして動作してトラフィックをクラスタに取り込み、内部サービスルーティングを使用してトラフィックを宛先にルーティングします。内部的には、このメソッドはロード バランサー サービスを使用して自身を世界に公開し、そのプロキシとして機能できるようにします。

    Paragon Automationは、以下のイングレスプロキシを使用します。

    • 大使
    • ンギンクス

クラスターの外部からのデバイスは次のサービスにアクセスする必要があるため、これらのサービスには VIP アドレスが必要です。

表 1: VIP を必要とするサービス
必須 VIP アドレス の説明 ロード バランサー/プロキシ

イングレスコントローラ

ウェブ経由でParagon Automation GUIにアクセスするために使用します。

Paragonオートメーションは、コンポーネントとアプリケーションへのアクセスを提供する共通のWebサーバーを提供します。サーバーへのアクセスは、Kubernetesイングレスコントローラーを介して管理されます。

大使

メタルLB

Paragon Insightsサービス

syslog、DHCPリレー、JTIなどのInsightsサービスに使用されます。

メタルLB

Paragon Pathfinder PCEサーバー

ネットワーク内のデバイスとの PCEP セッションを確立するために使用されます。

メタルLB

SNMPトラップレシーバープロキシ(オプション)

この機能が必要な場合のみに限り、SNMP トラップ受信プロキシのユーザー。

メタルLB

インフラストラクチャ Nginx イングレス コントローラーの VIP

Paragon Pathfinder netflowdサーバーおよびオプションでParagon Pathfinder PCEサーバーのプロキシとして使用されます。

Nginx イングレス コントローラーには、MetalLB ロード バランサー プール内に VIP が必要です。つまり、インストール・プロセス中に、構成ファイルの作成時に含める必要がある LoadBalancer IP アドレス範囲の一部としてこのアドレスを含める必要があります。

ンギンクス

メタルLB

Pathfinder Netflowdの仮想IPアドレス

Paragon Pathfinder netflowdサーバーに使用します。

NetflowdはNginxをプロキシとして使用でき、その場合、独自のVIPアドレスは必要ありません。

メタルLB

Paragon 外部レジストリ仮想 IP アドレス(オプション)

複数の外部レジストリ ノードへの接続に使用されます。

-

アンバサダーが使用するポート:

  • HTTP 80(TCP)からHTTPSへのリダイレクト

  • HTTPS 443(TCP)

  • Paragon Planner 7000(TCP)

  • DCS/NETCONF initiated 7804(TCP)

図4:アンバサダー Ambassador

Insights Services、PCE サーバー、SNMP で使用されるポート:

  • インサイトサービス

    JTI 4000(UDP)

    DHCP(ZTP)67(UDP)

    SYSLOG 514(UDP)

    SNMP プロキシ 162(UDP)

  • PCE サーバ

    PCEP 4189(TCP)

  • SNMP

    SNMP トラップ レシーバー 162(UDP)

図5:サービスPorts Used by Servicesで使用されるポート

Nginxコントローラで使用されるポート:

  • NetFlow 9000(UDP)

  • PCEP 4189(TCP)

PCEPにNginxを使用する

インストールプロセス中に、PCEPのイングレスプロキシを有効にするかどうかを尋ねられます。パス計算要素 (PCE) サーバーのプロキシとして None または Nginx-Ingress から選択できます。

プロキシとして [Nginx-Ingress] を選択した場合は、表 1 で説明されている PCE サーバの VIP を設定する必要はありません。この場合、インフラストラクチャ Nginx イングレス コントローラーの VIP アドレスも PCE サーバーに使用されます。netflowd プロキシを使用しないことを選択した場合は、インフラストラクチャ Nginx イングレス コントローラーの VIP も netflowd に使用されます。

手記:

Nginxを使用する利点は、複数のサービスに単一のIPアドレスを使用できることです。

図6: Nginxコントローラ Nginx Controller

マルチプライマリノード導入用のVIPアドレス

複数のプライマリノードを含むセットアップを展開する場合は、クラスターノードと同じブロードキャストドメインに追加の VIP アドレスが必要です。このアドレスは、選択されたプライマリノードとワーカーノード間の通信に使用されます。

マルチプライマリ設定では、ワーカーノードは、プライマリとして機能するノードに割り当てられたアドレスではなく、VIPアドレスを使用してプライマリ機能と通信します。

インストール ウィザードでは、この IP アドレスを Kubernetes マスター仮想 IP アドレスと呼びます。MetalLB ロード バランサーの VIP アドレス プールに、この VIP アドレスを含める ことはできません

プライマリノードが1つのセットアップでは、ワーカーノードは、プライマリとして機能するノードに割り当てられたアドレス(プライマリとして機能するノードのインターフェイスで設定されたIPアドレス)を使用してプライマリノードと通信します。

手記:

Paragon Automationのインストールプロセスを開始する前に、必要なすべてのVIPアドレスを特定する必要があります。インストールプロセスの一環として、これらのアドレスを入力するように求められます。

ロードバランシングの設定

VIP はデフォルトでレイヤー 2 で管理されます。すべてのクラスタ ノードが同じブロードキャスト ドメイン内にある場合、各 VIP アドレスは一度に 1 つのクラスタ ノードに割り当てられます。レイヤー 2 モードは VIP のフェールオーバーを提供し、実際のロード バランシングは提供しません。クラスタ ノード間の真のロード バランシングの場合、またはノードが異なるブロードキャスト ドメインにある場合は、レイヤー 3 でロード バランシングを設定する必要があります。

VIP アドレスをネットワークにアドバタイズするように BGP ルーターを設定する必要があります。BGP ルーターが ECMP を使用して、異なるホスト間の TCP/IP セッションのバランスを取ることを確認します。BGP ルーターをクラスター ノードに直接接続します。

クラスター ノードで負荷分散を構成するには、 config.yml ファイルを編集します。例えば:

この例では、192.x.x.1のBGPルーターは、10.x.x.0/24プレフィックスを持つVIPアドレスのネットワークの残りの部分への到達可能性をアドバタイズする役割を担っています。クラスターは、この範囲の VIP アドレスを割り当て、アドレスを処理できるクラスター ノードのアドレスをアドバタイズします。

DNS サーバーを構成する (オプション)

メイン Web ゲートウェイには、イングレス コントローラの VIP アドレス、またはイングレス コントローラの VIP アドレスに解決されるドメイン ネーム システム(DNS)サーバで設定されたホスト名を使用してアクセスできます。DNS サーバーを構成する必要があるのは、ホスト名を使用して Web ゲートウェイにアクセスする場合のみです。

ホスト名を A、AAAA、または CNAME レコードとして DNS に追加します。ラボと概念実証 (POC) のセットアップでは、クラスター ノードの /etc/hosts ファイルにホスト名を追加できます。