Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Amazon EKSにシングルクラスターCN2をインストール

概要 Amazon EKS に単一クラスター CN2 をインストールする方法の例を参照してください。

単一のクラスタ導入では、CN2はそのクラスタのネットワークプラットフォームであり、CNIプラグインです。 図 1 は、Contrail コントローラーを実行する 3 つのワーカー ノードを持つ Amazon EKS クラスターを示しています。Amazon EKS コントロール プレーンは、ユーザー VPC 内のワーカー ノードと弾力性のあるネットワーク インターフェイス(ENI)を介して通信します。一般的な導入では、ユーザーワークロードを実行する追加のワーカーノードが存在します。

図 1:Amazon EKS CN2 on Amazon EKS の CN2

このセクションの手順は、提供された Amazon EKS ブループリント、Helm チャート、YAML マニフェストを使用して Amazon EKS クラスターに CN2 をインストールする方法の基本的な例を示しています。CN2をまったく新しいクラスタにインストールする場合と既存のクラスタにインストールする場合の両方について取り上げましょう。

これらのセクションで説明されている配置に限定されることはなく、提供されるファイルやマニフェストの使用に限定されることもありません。CN2は、多数の導入をサポートしており、詳細には対応しません。提供された例を開始点として使用し、特定の状況に合わせて独自のマニフェストを展開します。

リリース23.1でAmazon EKSブループリントを使用してシングルクラスターCN2をインストール

リリース23.1のTerraformのAmazon EKSブループリントを使用してCN2をインストールするには、次の手順を使用します。

私たちが提供するブループリントは、以下を実行します。

  • 新しいサンプル VPC、3 つのプライベート サブネット、3 つのパブリック サブネットを作成します。

  • は、パブリックサブネット用のインターネットゲートウェイを作成し、プライベートサブネットのNATゲートウェイを作成します。

  • 1つの管理ノードグループ(必要なノードを3に設定)でEKSクラスタコントロールプレーンを作成します。

  • CN2をAmazon EKSクラスターCNIとして導入

  1. AWS 統合および自動化リポジトリのクローンを作成します。これはTerraformマニフェストが格納されている場所です。
  2. enterprise-hub.juniper.net アクセス認証情報をterraform-aws-eks-blueprints/examples/eks-cluster-with-cn2/variables.tfに変数にcontainer_pull_secret追加します。
    追加する資格情報は base64 エンコードされている必要があります。 資格情報を 取得してエンコードする方法の例については、「リポジトリ資格情報の設定」を参照してください。
  3. 実行terraform initします。このコマンドは、Terraform設定ファイルを含む作業ディレクトリを初期化します。
  4. 実行terraform planします。このコマンドは、Terraformがインフラストラクチャに対して行う変更をプレビューできる実行計画を作成します。
    この実行によって作成されたリソースを確認します。
  5. 実行terraform applyします。このコマンドは、先ほど作成した Terraform プランを実行します。
    を入力 yesして、クラスターを適用して作成します。
  6. Terraform 出力または AWS コンソールから、新しい Amazon EKS クラスターのクラスター名やその他の詳細を取得します。
  7. kubeconfig をローカル コンピューターにコピーします。
  8. 新しいクラスタを確認します。
    ワーカーノードのリスト: すべてのポッドをリストします。
  9. (オプション)ポストフライトチェックを実行します。リリース 23.1 の「プレフライト チェックとポストフライト チェックの実行」を参照してください。
  10. 問題が発生した場合は、クラスタをクリーンアップしてインストールを再試行してください。
    クラスターをクリーンアップするには、Kubernetes アドオン、Amazon EKS クラスター、VPC を破壊します。これらのterraformコマンドは、 例/eks-cluster-with-cn2ディレクトリで 実行する必要があります。 その後、残りのリソースを破壊します。

リリース23.1のステアリングチャートを使用した単一クラスタCN2のインストール

リリース 23.1 の Helm チャートを使用して既存の Amazon EKS クラスターに CN2 をインストールするには、次の手順を実行します。この例では、既存の Amazon EKS クラスターで VPC CNI が実行されています。

  1. ジュニパーネットワークス CN2 Helm リポジトリを追加します。
  2. CN2をインストールします。
    資格情報を取得する 1 つの方法については、「 リポジトリの資格情報を構成する」を参照してください。
  3. 標準的な kubectl コマンドを使用してインストールを確認します。
    ノードが稼働していることを確認します。ノードが稼働していない場合は、数分間待ってから、もう一度確認してください。

    ポッドのステータスが [実行中] であることを確認します。そうでない場合は、ポッドが立ち上がるまで数分待ちます。

  4. (オプション)ポストフライトチェックを実行します。リリース 23.1 の「プレフライト チェックとポストフライト チェックの実行」を参照してください。

リリース 23.1 で YAML マニフェストを使用して単一クラスター CN2 をインストールする

リリース 23.1 で YAML マニフェストを使用して CN2 をインストールするには、次の手順を実行します。

この例ではeksctlを使用してクラスタを作成しますが、CNIを削除する覚えがある限り、他のメソッドを使用できます。

この例の手順で使用するマニフェストは、 amazon-eks/single-cluster/single_cluster_deployer_example.yamlamazon-eks/single-cluster/cert-manager.yaml です。手順では、これらのマニフェストを マニフェスト ディレクトリに 配置したことを前提としています。

  1. ノード グループを使用しない EKS クラスタを作成します。
    サービスIPアドレスサブネットをメモします。これについては、後のステップで行う必要があります。デフォルトでは、Amazon EKSは10.100.0.0/16または172.20.0.0/16 CIDRブロックのいずれかからサービスIPアドレスを割り当てます。
  2. Contrail kubemanagerのサービスIPアドレスサブネットを設定します。このサブネットは、クラスターのサービス IP アドレスサブネットと一致する必要があります。
    single_cluster_deployer_example.yaml マニフェストを編集し、Kubemanager セクションで serviceV4Subnet 構成を探します。 クラスターのサービスIPアドレスサブネットに一致させるために、必要に応じてサブネットを変更します。
  3. 必要に応じて、Contrail コントローラを実行する 3 つのノードを指定します。
    既定では、付属のマニフェストには Contrail コントローラがあらゆる汚染を許容できる許容性が含まれています。つまり、Contrail コントローラが任意のノードにインストールされます。ノードセレクター(またはノードアフィニティ)を使用して、Contrailコントローラに必要なノードへのインストールを強制します。その後、これらのノードを汚染して、他のポッドがそこにスケジューリングされるのを防ぎます。他の 2 つのノードについて、この操作を繰り返します。
  4. cert-manager マニフェストを適用します。cert-managerは、すべてのCN2管理およびコントロールプレーン接続に暗号化を提供します。
  5. Contrail 導入者マニフェストを適用します。
  6. Amazon EKS に最適化された AMI を実行するマネージド ワーカー ノードまたはセルフマネージド ワーカー ノードをクラスターにアタッチします。
    CN2でサポートされているカーネルを実行している AMI を選択してください。
  7. (オプション)Contrail ツールをインストールし、プレフライト チェックを実行します。リリース 23.1 の「プレフライト チェックとポストフライト チェックの実行」を参照してください。
    続行する前にエラーを修正します。
  8. 展開を確認するには、標準的な kubectl コマンドを使用します。
    ノードが稼働していることを確認します。ノードが稼働していない場合は、数分間待ってから、もう一度確認してください。

    ポッドのステータスが [実行中] であることを確認します。そうでない場合は、ポッドが立ち上がるまで数分待ちます。

  9. (オプション)ポストフライトチェックを実行します。リリース 23.1 の「プレフライト チェックとポストフライト チェックの実行」を参照してください。