Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

BBE クラウドのインストールセットアップ

概要 このセクションでは、BBE クラウドセットアップのインストール手順とシステム要件について説明します。

BBE クラウドセットアップのインストールの概要

BBE Cloudsetup機能は、専用のUbuntuホストのセットからKubernetesクラスターを構築します。BBE クラウドのセットアップ機能を使用して、1 つのジャンプ ホストから管理される複数の Kubernetes クラスターを作成できます。

少なくとも3つのコントロールプレーンノードを持つクラスターを作成することをお勧めします。BBEクラウドセットアップコントロールプレーンノードはハイブリッドノードです。つまり、コントロールプレーン、etcd(Kubernetes状態データベース)、およびワーカーノードの役割を引き受けます。純粋なワーカー ノード (単一のワーカー ロール) であるノードをクラスターに追加できます。

(BBE Cloudsetup を使用して)クラスタを設定した後、目的のジュニパー BBE クラウドアプリケーションをクラスタにインストールできます。

BBE Cloudsetup は、インストール要件を満たす任意のハードウェアに展開できます。次のセクションでは、以下について説明します。

  • BBEクラウドセットアップのハードウェアおよびソフトウェア要件

  • BBEクラウドインストールのインストール方法

BBE クラウドセットアップのインストール要件

BBE Cloudsetup のインストールを開始する前に、次のものがあることを確認してください。

  • BBE Cloudsetup ソフトウェア パッケージをダウンロードする権限を持つ juniper.net ユーザー アカウント。

  • bbecloudsetupユーティリティを実行するためのUbuntu 22.04LTS(必須)を実行しているLinuxホスト(ジャンプホスト)。ジャンプ ホストは、次のシステム要件を満たしている必要があります。

    • CPU コア - 2

    • RAM - 8 GB

    • ディスク容量 - 128 GB の空きディスク ストレージ

  • オフライン インストールを実行する場合は、ダウンロードした BBE Cloudsetup イメージ パッケージを移動する Linux ホスト システムが必要になります。ホストはジャンプ ホストと同じにできますが、次の要件を満たしている必要があります。

    • Docker がインストールされている必要があります。

    • クラスターのシステム レジストリとして使用できる既存のコンテナー レジストリにアクセスできる必要があります。 docker login registry_addressを使用してレジストリにログインする必要があります。

      手記:

      システム レジストリが存在し、クラスターの有効期間中、クラスターで使用できる必要があります。クラスターは、ノードが追加または再起動されたときに、ホストからシステム インフラストラクチャ イメージをプルする必要があります。

  • クラスターの一部として使用されるノード (仮想マシンまたは物理マシン)。ノードは、管理アドレスとドメイン名を持つUbuntu22.04LTS(必須)を実行しているLinuxシステムです。

  • クラスター ノードとジャンプ ホストは、SSH 経由で相互にアクセスできる必要があります。

  • すべてのクラスターノードには、sudoアクセス権を持つユーザーアカウントが必要です。

  • すべてのクラスター ノードが次の最小システム要件を満たすことをお勧めします。

    • CPU コア - 8(ハイパースレッディングを推奨)

    • RAM—64 GB

    • ディスク容量 - 512 GB の空きディスク ストレージ(ソリッド ステートを推奨)

      ストレージスペースを使用して、それに応じてディスクをパーティション分割することをお勧めします。

      • オペレーティング システムのルート (/) パーティションに 128 GB

      • Docker キャッシュ用に /var/lib/docker に 128 GB

      • アプリケーションデータ用に /mnt/longhorn に 256 GB を指定します。これはデフォルトの場所であり、構成時に別の場所を指定できます。

    • ノード アクセスと認証。すべてのノードに対して、キーベースの認証を使用するルートレベルのSSHアクセスが必要です。

      手記:

      BBE クラウドセットアップをルートとして実行しないでください。sudo権限とBashログインシェルを使用して、各ノードのユーザーとして接続するようにBBE Cloudsetupを構成する必要があります。

    • すべてのホストシステムに独自のパーティションを作成する必要があります。ジャンプ ホストで、Docker パーティションを作成する必要があります。クラスター ノードでは、Docker パーティションと Longhorn (データ) パーティションの両方を作成する必要があります。

手記:

BBE Cloudsetupは、ホストシステムの構成の要素を変更する可能性があることに注意してください。これは、クラスター ノードにするために必要です。

BBE クラウドのインストールセットアップ

概要 BBE クラウドセットアップをインストールするには、次の手順を使用します。

開始する前に、以下を完了していることを確認してください。

  • BBE クラウドセットアップインストールのすべての要件を満たしていることを確認します(「 BBE クラウドセットアップのインストール要件」を参照)。

  • BBE クラウドセットアップをインストールする前に、SSH キーを作成する必要があります。SSHキーは、設定ファイルで使用されている正確なホスト名で各クラスタメンバーにコピーする必要があります。 SSHの設定を参照してください。

BBE クラウド設定ユーティリティをインストールします。

  1. ジュニパーネットワークスのソフトウェア ダウンロード ページから BBE Cloudsetup ソフトウェア パッケージをダウンロードし、ジャンプ ホスト システムに保存します。

    BBE CloudSetup は圧縮された tarball イメージ (.tgz) として利用できます。ファイル名には、名前の一部としてリリース番号が含まれます。リリース番号の形式は <メジャー>.<マイナー>.<メンテナンス> です。

    • major は、製品のメインリリース番号です。
    • minor は、製品のマイナー リリース番号です。
    • maintainance はリビジョン番号です。
  2. 次のように入力して、ジャンプ ホストで BBE Cloudsetup tarball (.tgz) ファイルを解凍します。

    これにより、tarball が bbecloudsetup bbecloudsetup という名前のディレクトリにアンパックされます。このディレクトリが既に存在する場合は、以前にインストールした bbecloudsetup ファイルを読み込まないように、tarball を解凍する前にディレクトリを削除してください。

  3. bbecloudsetup ディレクトリに exampleconfig.yaml ファイルの一意の名前のコピーを作成して、その値を保持します。 clustername-config.yaml形式 (mycluster-config.yaml など) に従うことをお勧めします。別の BBE Cloudsetup パッケージをアンタリングすると、新しいexampleconfig.yaml ファイルが作成されるため、exampleconfig.yamlが上書きされます。一意の名前のコピーを作成すると、exampleconfig.yaml ファイルに含まれる情報を復元するのに役立ちます。
    手記:

    提供されている exampleconfig.yaml ファイル( bbecloudsetup ディレクトリにあります)は、Kubernetes クラスタのパラメータを定義するために使用されます。別の BBE Cloudsetup パッケージをアンタリングすると、アンタリング中に新しい exampleconfig.yaml ファイルが作成されるため、既存の exampleconfig.yaml ファイルが上書きされます。一意の名前のコピーを作成すると、 exampleconfig.yaml ファイルに含まれる情報を復元するのに役立ちます。

  4. インターネットにアクセスできる環境に BBE Cloudsetup をインストールする場合は、手順5 に進みます。
    エアギャップ環境(インターネットアクセスなし)にBBE Cloudsetupをインストールする場合は、次の手順を実行してから、手順 5に進みます。
    1. 既存の個別のプライベート システム レジストリを特定 (または作成) して、クラスター ノードがシステム インフラストラクチャ イメージをプルできる既定のレジストリとして機能します。
      たとえば、新しい Docker レジストリを作成するには、次のコマンドを実行します。
      • host.example.com- レジストリのホストの修飾ドメイン名。このノードはクラスター・メンバーにすることはできませんが (循環依存関係が生じるため)、クラスターと接触している必要があります。ジャンプ ホストは、システム レジストリのホストとして機能できます。

      • port- レジストリが開始されているホストのポート番号。既定のレジストリを使用している場合、ポート番号は 5000 である必要があります。それ以外の場合は、使用可能な任意のポート番号を使用できます。

        レジストリー・サーバーのデプロイについて詳しくは、 https://distribution.github.io/distribution/about/deploying/ を参照してください。

    2. ジュニパーネットワークスのソフトウェア ダウンロード ページから BBE Cloudsetup イメージ ソフトウェア パッケージをダウンロードし、クラスタのシステム レジストリとして使用できる既存のコンテナ レジストリにアクセスできる別のホスト システムに保存します(すべてのホスト システム要件については、「BBE Cloudsetup インストール要件」を参照してください)。
    3. 次のように入力して、BBEクラウドセットアップイメージのtarball(.tgz)ファイルをホストシステムに解凍します。
    4. 次のコマンドを使用して、bbecloudsetup-images ディレクトリを入力します。
    5. 次のコマンドを入力して、 Docker コマンドを実行でき、ターゲット・レジストリーにログインしていることを確認します。
    6. 次のコマンドを実行して、イメージを読み込み、ターゲット レジストリでタグ付けしてから、イメージをプッシュします。

      loadimages スクリプトは、位置指定引数 (レジストリ URL、help、または version) を 1 つだけ受け取ります。レジストリ URL にはポート (必要な場合) を含める必要があり、http(s)://や末尾のスラッシュ (/) は含めないでください。

      完了すると、[ 完了] メッセージが表示されます。

      手記:

      loadimages スクリプトは、マニフェスト ファイルと bcs_images.tar パッケージの両方と共に bbecloudsetup-images ディレクトリ内に配置しておく必要があります。これらのオブジェクトのいずれかがその場所から移動された場合、スクリプトは、どのオブジェクトが見つからなかったかを示すエラー メッセージを生成します。

    7. 名前を変更した .yaml 構成ファイル (clustername-config.yaml) のジャンプ ホストで、次のパラメーターが入力されていることを確認します。
      • systemRegistry: - #registry.example.com:port

        次の形式で host.example.comします。port-number

      • systemRegistryUser: - #user

      • systemRegistryPassword: - #secret
  5. clustername-config.yaml ファイルに Kubernetes クラスターのパラメーターを入力します。表 1 に、構成ファイルに入力する必要がある情報を示します。
  6. 次のコマンドを実行して、BBE クラウドセットアップ用の新しい SSH キーを生成します。
  7. SSH キーをクラスターにコピーします。clustername の代わりにクラスターの完全修飾ドメイン名を使用して、次のコマンドを実行します。

    プロンプトが表示されるパスワードは、キーのコピー先のリモートホスト上のユーザーのパスワードです。

  8. 以下のコマンドを実行して、孤立したSSHエージェントを停止します。
  9. 次のコマンドを実行して、新しい SSH エージェントを起動します。
  10. 次のコマンドを実行して、SSH キーをエージェントに追加します。
  11. BBE クラウドセットアップ実行可能ファイルを実行します。実行可能ファイルは bbecloudsetup ディレクトリにあります。
  12. インストールを確認します。
    • BBE Cloudセットアップのインストールが完了し、エラーが発生していないことを確認します

    • kubectl get nodesコマンドを実行します。すべてのノードは、状態を [準備完了] として報告する必要があります。

    • kubectl get pods -Aコマンドを実行します。クラスター内のすべてのポッドは、状態を [実行中] または [完了] として報告する必要があります。

  13. SSHエージェントを停止します。
    $ eval $(ssh-agent -k)

構成ファイル

このセクションでは、構成ファイル (exampleconfig.yaml) のフィールドについて説明します。

表 1: BBE クラウドセットアップ構成ファイルのフィールド

フィールド名

形容

クラスター名

クラスターの名前を入力します。

NTPサーバー

クラスタ内のすべてのノード間で時刻を同期化するために使用される NTP サーバの名前を入力します。

クラスタ内のノードのリスト

  • コントロールプレーンノードの詳細。これらのノードは、コントロールプレーンノード、etcd ノード、およびワーカーノードです。

  • ワーカー・ノードの詳細

ノードごとに次の情報を入力します。

  • ホスト名 - ノードの名前。

  • ユーザー - ユーザー名。

  • sudoPassword - ノード上の sudo コマンドのパスワード。

  • ロール - コントロールプレーンまたはワーカー。

  • ポート—SSHポート番号。

一般的なシステム構成

レジストリは、クラスター ワークロードのコンテナー イメージをプルするための中心的なリソースです。レジストリは、クラスター ノードがアクセスできる既存のレジストリである場合もあれば、クラスターの一部としてレジストリをインストールする場合もあります。

手記:

既定のアクションでは、レジストリをクラスター内のポッドとしてインストールして設定します。独自のレジストリをホストする場合は、代替アドレスを入力できます。

次のシステム情報を入力します。

  • installRegistry - クラスターにプライベート レジストリをインストールする場合は true に設定します。

  • registrySize — レジストリの永続ボリュームのサイズ (GB 単位)。

  • registryPort - レジストリのポート番号。

  • アドレス - キープアライブVIPアドレスのDNS名(または、DNSが利用できない場合はアドレス自体)。

  • ユーザー - レジストリのユーザー名。

  • パスワード - レジストリのパスワード。

  • generateCerts:デフォルトでは、このフィールドは [ true ] に設定され、レジストリの自己署名証明書が自動的に生成されます。このフィールドが無効になっている場合は、使用するキーと証明書へのパスを指定する必要があります。これは、構成ファイルまたはインストール プロセス中に実行できます。

    • キー:登録キーへのパス。

    • cert:登録証明書へのパス。

    • caCert:登録 CA 証明書へのパス。

  • クラスターが DockerHub からシステム イメージをプルできない場合は、イメージを別のプライベート レジストリでホストする必要があります。このレジストリは、イメージをプルするクラスターの既定のレジストリとして構成されます。次の情報を入力します。

    • システム レジストリ - レジストリのアドレス。

    • システム レジストリ ユーザー - レジストリのユーザー名。

    • システム レジストリ パスワード - レジストリのパスワード。

ロード バランサー構成 metalLB

L2 ネットワーク ロード バランサーは、アプリケーション負荷分散サービスへの外部 (クラスター外) アクセスを提供します。外部 IP アドレスは、アプリケーションの起動の一部として作成されるときに、負荷分散サービスに割り当てる役割を担います。

ロード・バランサーのアドレス・プールで構成するアドレスの数は、実行するアプリケーションによって異なります。

  • APMにアクセスするには、少なくとも1つのIPアドレスが必要です。

  • BBE イベントの収集と視覚化には、必要に応じて外部アドレスが必要になる場合があります。BBE イベントの収集と可視化が、クラスタの一部ではない要素(BNG ユーザ プレーンなど)からの syslog を分析するように設定されている場合は、外部アドレスが必要です。

  • BNG CUPSコントローラには2つのアドレスが必要です。

アドレスのサブネットは、アプリケーションのサービスにアクセスする必要があるすべてのクラスターノードとリモートデバイスから到達可能である必要があります。

次の情報を入力します。

  • install - true に設定すると、負荷分散のために MetalLB がインストールされます。

  • addresses — ロードバランサーのアドレスプールの IP アドレスのリストを入力します。リスト内のアドレスは、プレフィックス(10.0.0.0/24など)、個別のアドレス(10.0.1.2/32など)、アドレスの範囲(10.1.2.3-10.1.2.5など)、またはこれらのオプションの組み合わせとして入力できます。

ネットワーク構成

クラスタ内ネットワーク トラフィック (クラスタの維持と管理に使用) をネットワーク トラフィック (外部システムとの通信に使用) から分離することが望ましい場合があります。マルチノードクラスタでは、仮想IPアドレスをクラスタに割り当てて、クラスタコントロールプレーンを1つのシステムとしてアドレス指定できるようにする必要があります。

ネットワーク - 次のネットワーク情報を入力します。

手記:

クラスタ内のすべてのノードで、同じインターフェイスが使用可能である必要があります。

  • cniInterface - クラスタ ネットワークのネットワーク インターフェイス。このインターフェイスはキープアライブインターフェイスとしても使用されるため、定義する必要があります。

  • sans (サブジェクトの別名)- Kubernetes APIサーバーに接続する 場所 が許可された名前としてSAN Kubernetes証明書に追加するホスト名(IPアドレス)のリスト。
    • controlplane - TLS 証明書のサブジェクト代替名。

    • worker.example.com — TLS 証明書のサブジェクト代替名。

  • キープアライブ:有効にする必要があります。

    • インストール:仮想 IP 構成のキープアライブをインストールするために true を入力します。

    • vip - クラスターの仮想 IP アドレス

    • vrid—キープアライブがクラスターに使用する仮想ルーターID(1〜255)。この値は、クラスターとネットワークごとに一意である必要があります。デフォルトでは、値が指定されていない場合、BBE Cloudsetupはキープアライブアドレスの最後のオクテットを使用します。そのため、キープアライブアドレスの最後のオクテットがすでに別のクラスタで使用されている仮想ルーター ID であることがわかっている場合は、この vrid を一意の値に設定してください。

ストレージ構成

以下の情報を入力して、ストレージを構成します。

  • installLonghorn - true を入力して、ストレージ用にLonghornをインストールします。

  • storageClass — Longhorn のストレージクラス名。

  • パーティション - 次のパーティション情報(Docker パーティションと Longhorn パーティション)を入力します。

    • 名前 - パーティションの名前。

    • createPartition - 使用しません。

    • devicePath — ボリュームのブロックデバイスへのパス。

    • 場所:ボリュームのマウント ポイント。

    • partitionSize — ボリュームのパーティションのサイズ(GB 単位)。

SSHを設定する

ジャンプ ホストからコントロール プレーンおよびワーカー ノードへの SSH パスワードレス アクセスを構成します。

  1. SSH キーを作成します。

    既定のパスを使用し、パスワードを入力します。

  2. キーをコントロール・プレーンとワーカー・ノードにコピーします。例えば:
    • <user-id>- BBE Cloudesetup がノードに接続するときに使用するユーザー ID。

    • <host address>- BBE Cloudesetup が接続するノードの IP アドレス。

    クラスタ内のノードごとに上記の手順を繰り返します。

  3. SSH エージェントを起動します。
  4. システム上のすべての既知のキーをエージェントに追加します。これが新しいシステムの場合、作成されるキーは 1 つだけです。他のキーがある場合は、それらすべてを追加するか、引数として読み込むキーへのパスを指定できます。プロンプトに従ってキーパスフレーズを入力します。

BBE クラウドのアップグレードセットアップ

概要 BBE クラウドセットアップをアップグレードするには、この手順を使用します。

  1. ジャンプ ホスト システムで、現在の構成ファイル (名前が exampleconfig.yaml ファイルに変更された) を含む現在の bbecloudsetup ディレクトリを別の名前のディレクトリにバックアップします。
  2. ジュニパーネットワークスのソフトウェア ダウンロード ページから BBE Cloudsetup ソフトウェア パッケージをダウンロードし、ジャンプ ホスト サーバーに保存します。

    BBE CloudSetup は圧縮された tarball イメージ (.tgz) として利用できます。ファイル名には、名前の一部としてリリース番号が含まれます。リリース番号の形式は <メジャー>.<マイナー>.<メンテナンス> です。

    • major は、製品のメインリリース番号です。
    • minor は、製品のマイナー リリース番号です。
    • maintainance はリビジョン番号です。
  3. 次のように入力して、ジャンプ ホストで BBE Cloudsetup tarball (.tgz) ファイルを解凍します。
    bbecloudsetup ディレクトリに新しいファイルが読み込まれます。
  4. 古い構成ファイルと新しい構成ファイルを比較し、ファイルに必要な変更を加えます。表 1 を参照してください。
  5. 構成ファイル(bbecloudsetupディレクトリにあります)の準備ができたら、BBE Cloudsetup実行可能ファイルを実行します。実行可能ファイルは bbecloudsetup ディレクトリにあります。

    ホストのパスワード (sudo パスワード) やレジストリ (ユーザーパスワード) を構成ファイルに入力しなかった場合は、インストール中にパスワードの入力を求められます。

  6. インストールを確認します。
    • BBE Cloudセットアップのインストールが完了し、エラーが発生していないことを確認します

    • kubectl get nodesコマンドを実行します。すべてのノードは、状態を [準備完了] として報告する必要があります。

    • kubectl get pods -Aコマンドを実行します。クラスター内のすべてのポッドは、状態を [実行中] または [完了] として報告する必要があります。

クリーンレジストリ

概要 これを使用して、現在使用されていないイメージのレジストリをクリーンアップできます。

BBE Cloudsetup は、古いイメージのクリーンアップを自動的に実行しません。必要に応じて、 bbecloudsetup registry clean コマンドを使用して古いイメージを手動で削除できます。

  1. ジャンプ・ホスト・システムで、次のように入力して bbecloudsetup registry clean コマンドを実行します。

    オプション:

    • --kubeconfig (または -k)- kubeconfig ファイルへのパス。

    • --context (または -c)- kubeconfig ファイルから使用するコンテキスト。

    • --dry-run (または -n)- アクションを実行せずに既存の画像を表示できます。

    registry clean コマンドを実行すると、ローカル レジストリ (存在する場合) で、クラスター リソースによって現在使用されていないイメージがあるかどうかがチェックされます。dry-run オプションを指定してコマンドを実行すると、存在するイメージを削除せずに表示できます。

  2. イメージが削除されていることを確認します。