Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

CN2パイプラインのインストール

概要 このセクションでは、CN2パイプラインのインストールについて説明します。

CN2パイプラインをダウンロード

CN2パイプラインファイルをダウンロードして、インストール前に必要なトークンでファイルを更新します。

CN2パイプラインタールファイルをダウンロードするには:

  1. ジュニパーネットワークスのダウンロードからCN2パイプライン導入ファイルをダウンロードします。
  2. ダウンロードしたファイルを管理サーバーに untar します。

CN2パイプラインのステアリングチャートをインストールする

CN2パイプラインのヘルムチャートは、CN2パイプライン管理クラスターのインストールと設定に使用されます。

管理クラスターにCN2パイプラインヘルムチャートをインストールするには、次の手順にしたがっています。

  1. ダウンロードしたCN2パイプラインデプロイファイルで、contrail-pipelines-x.x.x/値フォルダ内を探values.yamlします。
  2. チャート値を入力します。パラメーターの説明については、「 Values.yaml のパラメーター」を参照してください。

    管理クラスターの CN2 パイプライン値の例.yaml:

  3. 次のコマンドを実行して、リリース名cn2-pipelineを使用してCN2パイプラインヘルムチャートをインストールします。

CN2パイプラインのステアリングチャートのインストールを確認する

CN2パイプラインのステアリングチャートのインストールを確認するには、以下のコマンドを実行します。

  1. 現在の名前空間にある Helm リリースをリストします。

    出力:

  2. すべての名前空間のすべてのポッドを表示します。

    出力:

Argo CD および Helm Configuration

このトピックでは、CN2パイプラインのヘルムチャートインストールの一環として自動化されるArgoコンポーネントと設定を一覧表示します。

  • Argo CD 外部サービス — サービス タイプを NodePort または LoadBalancer として Kubernetes サービスを作成します。これにより、Argo CD API サーバーと Argo CD GUI へのアクセスを提供する Argo CD 外部サービスが作成されます。

  • CN2設定でGitリポジトリを登録 — リポジトリの認証情報を設定し、GitリポジトリをArgo CDに接続します。Argo CDは、Gitリポジトリから設定変更を見てプルするために、Gitリポジトリに設定されています。この Git リポジトリには Kubernetes リソースのみを含める必要があります。Argo CDは、他のタイプのYAMLやファイルを理解していません。

  • Kubernetes クラスタの登録 — Kubernetes クラスタを Argo CD に登録します。このプロセスでは、Argo CD を構成して、Kubernetes クラスター内の Kubernetes リソースをプロビジョニングします。Argo CD では、複数の Kubernetes クラスタを設定できます。

  • Argo CD アプリケーションの作成 — Argo CD GUI を使用してアプリケーションを作成します。Argo CDで作成されたアプリケーションは、Gitリポジトリと1つのKubernetesクラスターに関連付ける必要があります。

Argo のログイン

CN2パイプラインヘルムチャートをインストールすると、ArgoワークフローGUIとArgo CD GUIにアクセスできます。

Argo ワークフロー UI へのアクセス

Argo CD GUIにアクセスするには、NodePortサービスを使用してGUIにアクセスするために、管理クラスターからの接続が必要です。Argo CD GUI には、管理サーバーの IP アドレスとポート 30550 を使用してアクセスします。

  1. ブラウザから Argo CD GUI にアクセスします。

  2. 管理ノードで、次のコマンドを実行してトークンを受信します。

アルゴCD GUIへのアクセス

Argo CD GUIにアクセスするには、NodePortサービスを使用してGUIにアクセスするために、管理クラスターからの接続が必要です。Argo CD GUI には、管理サーバーの IP アドレスとポート 30551 を使用してアクセスします。

  1. ブラウザから Argo CD GUI にアクセスします。

  2. 管理ノードで、次のコマンドを実行してトークンを受信します。ユーザー名は admin.

CN2とワークフロー

Argo Workflowsは、Kubernetes上で並列ジョブをオーケストレーションするためのオープンソースコンテナネイティブワークフローエンジンです。ワークフロー内の各ステップがコンテナであるワークフローを定義できます。また、複数ステップのワークフローを一連のタスクとしてモデル化したり、指定非環グラフ(DAG)を使用してタスク間の依存関係をキャプチャしたりできます。

ワークフローが必要な理由

ワークフローは、GitOpsエンジンを使用してCN2リソースをプロビジョニングした後、CN2テストケースを呼び出して実行するために使用されます。これらのワークフローは、CN2アプリケーションの設定を評価し、導入されている設定のテスト結果を生成します。

ワークフローの仕組みとCN2がワークフローを使用する方法

ワークフローは、CN2リソースがGitOpsエンジンによってプロビジョニングされるたびにトリガーされます。CN2リソースまたはCN2リソースのグループはそれぞれ、特定のワークフローテストDAGにマッピングされます。これらのテストスイートが正常に完了すると、CN2構成はステージング環境またはテスト環境から実稼働環境にプロモートされる資格があります。

CN2パイプラインサービス

パイプライン サービスは、Kubernetes リソースの変更に関する Argo イベントからの通知をリッスンします。パイプラインサービスは、Argoイベントが適用したCN2設定に関連するデータでサービスを消費してトリガーするために使用されるサービスを公開します。CN2パイプラインサービスは、適用したCN2設定のタイプに対してトリガーされるテストワークフローを特定する必要があります。ワークフローは、通知されるオブジェクトに応じて動的に変化します。CN2パイプラインリスナーサービスは、適用されるCN2設定に依存するワークフローを呼び出します。

CN2パイプライン構成

このトピックでは、CN2パイプライン設定の例を示します。

パイプラインの設定

パイプライン構成はパイプラインエンジンで使用され、以下が含まれます。

  • パイプラインコミットのしきい値

  • 構成マップ: cn2pipeline-configs

  • 名前 空間: argo-events

CN2パイプラインの設定例:

テスト ワークフロー テンプレート パラメーターの構成

すべてのワークフロー テンプレート入力は、構成マップとして保存されます。これらの構成マップは、パイプライン サービスによって実行中に動的に選択されます。

種類マップへのワークフロー

このマッピング設定には、CN2リソース kind マッピングへのワークフローテンプレートが含まれています。実行するテンプレートは 1 つだけ選択され、一致する最初のマップの優先度が高くなります。の kind: ['*'] アスタリスク(*)は、テンプレートの優先度が他 kind のどのマッチよりも高いことを示し、すべてのマッピングを上書きします。

CN2リソース種類マッピングテンプレートのワークフローテンプレートには、以下が含まれます。

  • 構成マップ: cn2tmpl-to-kind-map

  • 名前 空間: argo-events

次に、CN2リソース kind マッピングへのワークフローテンプレートの設定例を示します。kindmapのアスタリスク(*)を kind: ['*'] メモします。

CN2クラスター向けKuberconfigシークレット

CN2クラスター用のbase64エンコードされたkuberconfigが作成され、秘密として使用されます。Kubeconfig は、クラスターを認証するための Kubernetes クラスターの詳細、証明書、シークレット トークンをすべて含む YAML ファイルです。

  • 秘密: cn2-cluster-kubeconfig

  • 名前 空間: argo-events

メモ:

名前は cn2-cluster-kubeconfig 変更しないでください。

CN2クラスターのkuberconfigシークレットの例を次に示します。

CN2パイプラインのカスタムワークフローを作成する

カスタムワークフローテストを作成して、コンテナネットワーク機能(CNF)をテストできます。

カスタムワークフローを作成するには、CN2パイプラインファイルに付属するカスタムテストワークフローテンプレートの例を使用できます。すべてのワークフローには、一連の入力パラメーター、ボリュームマウント、コンテナの作成などが含まれます。ワークフロー テンプレートの作成を理解するには、 Argo ワークフローを参照してください。

次のカスタム テスト ワークフロー テンプレートの例を示します。

  • ワークフローへの入力パラメーター

  • ボリュームのマウント

  • ワークフローを使用してKubernetesリソースを作成する(テンプレート名: create-cnf-tf and create-cnf-service-tf

  • ワークフローに埋め込まれたコード(テンプレート名: test-access-tf

  • 外部コードをプルし、コンテナ内で実行します(テンプレート名: test-service-tf

パイプラインの実行中にワークフローへの入力を自動化するために、ワークフローの入力を含むワークフロー パラメーター構成マップが作成されます。構成マップの名前は、ワークフロー テンプレートと同じにする必要があります。

次の例では、テンプレート名は. custom-cnf-sample-test設定マップは、同じ名前で自動的に作成されます。パイプラインの実行の一環として、パイプラインサービスはテンプレート名を含む構成マップを探し、入力を取得します。入力はパイプラインがワークフローをトリガーしたときに自動的にワークフローに追加されます。

カスタム ワークフローをトリガーするテスト ケースで発生するもう 1 つの更新プログラムは、構成マップ名を に変更することです <cn2tmpl-to-kind-map>

テンプレートのワークフロー設定の例を次に custom-cnf-sample-test示します。