Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Kubernetes向けのContrail Insightsのインストール

アーキテクチャと用語

Kubernetes cluster nodes

Contrail Insights によって監視されている Kubernetes クラスターのプライマリ ノードとワーカー ノード。これらのノードは Contrail Insights Agent を実行します。

Contrail Insights Platform node

Contrail Insightsプラットフォームのコンポーネントがインストールされるノード。Kubernetes クラスター ノードに到達できる必要があります。

図 1 は、Contrail Insights のさまざまなコンポーネントと、それらが Kubernetes クラスターとどのように相互作用するかを示しています。

図 1: Contrail InsightsとKubernetes Contrail Insights and Kubernetes Workflowワークフロー

要件

以下は、Contrail Insights for Kubernetesをインストールするための要件です。

  • Kubernetes バージョン 1.8 以降。

  • ハードウェア要件およびソフトウェア要件については 、Contrail Insights の一般要件 をご覧ください。

  • Kubernetes API サーバーへの API アクセス。Contrail Insights が API サーバーからクラスターに関する情報を読み取ります。構成時に提供されるトークンは、読み取り専用 API 呼び出しに対して十分なアクセス許可を提供する必要があります。また、Contrail Insights プラットフォームは、API サーバーが稼働しているホストとポートへの接続を開くことができる必要があります。

  • メモ:

    アップグレードのお知らせ:Contrail Insights 3.2.6 以降、ライセンス ファイルの要件はなくなりました。3.2.6 より前のバージョンをインストールする場合は、インストール前にライセンスが必要です。

    ライセンス キーは 、mailto:APPFORMIX-KEY-REQUEST@juniper.net から取得できます。リクエストには、次の情報を入力してください。

4 つのステップのワークフロー

インストールは、次の手順で構成されます。

  1. 初期設定。

  2. Kubernetes を構成する。

  3. Contrail Insights のインストール

  4. Contrail Insights スケジューラ エクステンダーを設定する。

初期設定

初期設定では、次の手順を実行します。

  1. Contrail Insights プラットフォームノードに次の必要なファイルをインストールします。

    メモ:

    RHEL の場合、ポート 9000 にアクセスするには次の iptables ルールが必要です。

  2. /etc/hosts/ Contrail Insights プラットフォーム ノードでファイルを編集し、Kubernetes クラスター ノードの IP アドレスを入力します。

  3. Contrail InsightsプラットフォームノードとKubernetesクラスターノードの間にパスワードレスSSHを設定します。次のコマンドを実行して、SSH 公開キーを生成し、すべてのノードにコピーします。

Kubernetesを設定する

Contrail Insights は、Kubernetes クラスター内のリソースに関する情報を読み取ります。このソフトウェアには、 cluster-admin ロール、またはクラスター内のすべてのオブジェクトへの読み取り専用アクセスを提供する別のロールが必要です。Contrail Insights 用の新しいサービス アカウントを作成し、 クラスター管理者 ロールを割り当てることをお勧めします。

新しいサービス アカウントを作成しない場合は、Contrail Insights の設定時に、必要なアクセス権を持つ既存のサービス アカウントからトークンを指定する必要があります。

Contrail Insights に必要なアクセス権を持つ新しいサービス アカウントを作成するには、Kubernetes クラスターで次の手順を実行します。

  1. 次の YAML ファイルを作成します。

  2. appformix手順 1 で作成したファイルを使用してサービス アカウントを作成します。

  3. サービス アカウントが作成されていることを確認します。後で必要になるので、名前空間をメモしておいてください。

  4. ロールappformixcluster-adminサービス アカウントに追加し、手順 3 でメモした名前空間を <namespace> に置き換えます。

  5. 次のコマンドを実行して、サービス アカウントに必要なアクセス権があることを確認します appformix

    コマンドの出力は yes である必要があります。

  6. Contrail Insights は、Kubernetes クラスターと通信するように設定する必要があります。Contrail Insightsのインストール時に使用する以下の詳細をKubernetesクラスターから取得します。

    kubernetes_cluster_url

    これは Kubernetes API Server の URL です。この値を取得するには、Kubernetes クラスターで次のコマンドを実行します。

    kubernetes_auth_token

    これは、 appformix サービス アカウントの認証トークンです。この値を取得するには、Kubernetes クラスターで次のコマンドを実行します。

Contrail Insightsのインストール

Contrail Insights をインストールするには、次の手順に従います。

  1. Contrail Insights インストール パッケージをソフトウェア ダウンロードから Contrail Insights プラットフォーム ノードにダウンロードします。次のファイルを取得します。

    3.2.6 より前のバージョンをインストールする場合は、Contrail Insights ライセンス ファイルを Contrail Insights プラットフォーム ノードにコピーします。

  2. 解凍します contrail-insights-<version>.tar.gz。本パッケージには、Contrail Insights のインストールに必要なすべての Ansible プレイブックが含まれています。

    メモ:

    残りの手順は、 contrail-insights-<version>/ ディレクトリ内から実行する必要があります。製品名は「AppFormix」から「Contrail Insights」に変更されましたが、UIと内部コマンド パスには引き続きAppFormixが表示され、後日新しい名前が反映されます。

  3. テンプレートとして使用して sample_inventory 、インストール用のインベントリ ファイルを作成します。セクション内に compute Kubernetes クラスター ノードを、セクション内に Contrail Insights Platform ノードをリストアップします appformix_controller

  4. という名前の group_varsディレクトリを作成します。Contrail Insights に必要な設定変数を含む、このディレクトリ内に という名前の all ファイルを作成します。

    3.2.6 より前のバージョンをインストールする場合は、Contrail Insights ライセンス ファイル group_vars/allへのパスを に含めます。

    メモ:

    廃止のお知らせ: appformix_mongo_cache_size_gb Contrail Insights 2.19.5 以降で使用可能だったパラメータは廃止され、Contrail Insights 3.2.0 以降ではサポートされなくなります。Contrail Insights バージョン 3.2.0 以降、Mongo は Contrail Insights Platform ノードで使用可能なメモリの最大 40% を使用するように設定されます。

  5. クラスターでネットワーク デバイスの監視を有効にするには、ファイルに次の情報を含めます group_vars/all

  6. Ansibleプレイブックを実行します。

    プレイブックは、エラーなしで完了するまで実行する必要があります。

  7. Contrail Insights ダッシュボードへの以下の場所からログインします。

  8. Contrail Insights プラットフォームノードにある以下のファイルから tokenId を使用してログインします。

Contrail Insights スケジューラ エクステンダーを設定する

Contrail Insights には、Kubernetes スケジューラに追加できるスケジューラ エクステンダー モジュールが付属しています。このモジュールを配置すると、Kubernetes スケジューラは既定のポリシーに加えてユーザー定義の SLA ポリシーを使用して、クラスター内のポッドをスケジュールする場所を決定します。

スケジューラエクステンダーを設定するには:

  1. Contrail Insights スケジューラ エクステンダーを記述した JSON ファイルを作成します。このファイルを /etc/kubernetes Kubernetes プライマリ ノードに配置します。

  2. ブロックにspec.containers.commandオプションを追加して--policy-config-file、プライマリノードの にエクステンダーkube-schedulerを追加します。

  3. kube-schedulerプライマリノードでサービスを再起動しkubeletて、コンテナを更新します。

    は現在 kube-scheduler 、Contrail Insightsスケジューラエクステンダーで実行されています。

    既定では、Kubernetes では、プライマリ ノードでユーザー ポッドをスケジュールすることはできません。3 ノードの Kubernetes クラスターで Contrail Insights スケジューラ エクステンダーの動作を実際に確認するには、次のコマンドを使用して Kubernetes プライマリ ノードでスケジューリングを有効にします。

スケジュール設定での Contrail Insights SLA プロファイルの使用

Contrail Insights にはデフォルトのスケジューリング SLA が付属しています。この SLA には、ハートビートの欠落、CPU 負荷の高い、メモリ使用率の高いアラームが含まれます。

スケジュール SLA のプロファイルを変更するには、次の手順を実行します。

  1. ダッシュボードの右上にあるリストから [ 設定 ] を選択し、[ SLA 設定] > [スケジュール] を選択します。

    図 2: ダッシュボード Contrail Insights Settings in Dashboardの Contrail Insights 設定
  2. [ プロファイルの削除 ] をクリックして、既存のプロファイルを削除します。

    図3:スケジューリングプロファイル Delete Scheduling Profileの削除
  3. [ 新しいルールの追加(Add New Rule)] をクリックし、新しいアラームを定義します。

    図4:スケジューリングプロファイル Add New Rule in Scheduling Profileへの新しいルールの追加
  4. 使用可能なアラームのリストから新しく作成したアラームを選択し、[ Create Profile] をクリックします。カスタム重みを持つ複数のアラームを SLA プロファイルに追加できます。

    図 5: SLA Create Profile in Scheduling SLA のスケジューリングでのプロファイルの作成
  5. スケジューラ エクステンダーの動作を確認するには、スケジュール SLA に違反するように、Kubernetes クラスター ノードの 1 つに負荷を生成します。[アラーム] ページから SLA のステータスを確認します。

    図 6: アラーム ページの Violated Scheduling SLA in Alarms pageスケジュール SLA 違反

    次に、Kubernetes クラスターにいくつかのポッドを作成し、それらがスケジュールされるノードを確認します。スケジューリング SLA に違反しているノードは、スケジュールされた新しいポッドを取得しません。