この文書は自動機械翻訳技術を使用して翻訳されています。 正確な翻訳を提供するように努めておりますが、翻訳された内容の完全性、正確性、信頼性については一切保証いたしません。 相違がある場合は、元の英語版 英語 が優先され、正式なテキストとなります。

Amazon ELBネットワークロードバランサーの設定

このハウツーガイドでは、AmazonのEC2サービスでネットワークロードバランサー(NLB)を設定し、複数のEC2インスタンスにトラフィックを送る方法について説明します。

これらの例では、ロードバランサーが3つのRancherサーバーノードにトラフィックを送るように設定されています。RancherがK3s Kubernetesクラスターにインストールされている場合、必要なノードは2つだけです。

このチュートリアルは、ロードバランサーを設定するための1つの方法について説明しており、唯一の方法ではありません。Classic Load BalancerやApplication Load Balancerなどの他のタイプのロードバランサーも、Rancherサーバーノードにトラフィックを送ることができます。

Rancherは、ポート443のトラフィックを`tcp`モードで終了する場合にのみ、Amazon NLBの使用をサポートしています。`tls`モードではサポートされていません。これは、NLBで終了したリクエストに正しいヘッダーが挿入されないためです。つまり、Amazon Certificate Manager(ACM)によって管理されている証明書を使用したい場合は、ALBを使用する必要があります。

要件

これらの指示は、すでにEC2にLinuxインスタンスを作成していることを前提としています。ロードバランサーは、これらのノードにトラフィックを送ります。

1.ターゲットグループの作成

まず、*TCP*プロトコル用に2つのターゲットグループを作成します。1つはTCPポート443用、もう1つはTCPポート80用(TCPポート443へのリダイレクトを提供)です。これらのグループにLinuxノードを追加します。

最初のNLB設定ステップは、2つのターゲットグループを作成することです。技術的には、Rancherにアクセスするためにはポート443のみが必要ですが、ポート80のリスンを追加するのは便利です。なぜなら、ポート80へのトラフィックは自動的にポート443にリダイレクトされるからです。

Traefik Ingressは、ポート80からポート443へのトラフィックをリダイレクトする必要があります。

  1. 始めるには、 Amazon AWSコンソールにログインします。EC2インスタンス(Linuxノード)が作成されている*リージョン*を選択してください。

  2. *サービス*を選択し、*EC2*を選んで、*負荷分散*のセクションを見つけ、*ターゲットグループ*を開きます。

  3. *ターゲットグループの作成*をクリックして、TCPポート443用の最初のターゲットグループを作成します。

Traefik Ingressのヘルスチェックの詳細については、このセクションを参照してください。

ターゲットグループ(TCPポート443)

以下の表に従って最初のターゲットグループを設定してください。

オプション 設定

ターゲットグループ名

rancher-tcp-443

ターゲットタイプ

instance

プロトコル

TCP

ポート

443

VPC

VPCを選択してください

ヘルスチェック設定:

オプション 設定

プロトコル

TCP

ポート

override,80

正常閾値

3

異常閾値

3

タイムアウト

6 seconds

間隔

10 seconds

TCPポート80に関して、*ターゲットグループの作成*をクリックして、2番目のターゲットグループを作成します。

ターゲットグループ(TCPポート80)

以下の表に従って2番目のターゲットグループを設定してください。

オプション 設定

ターゲットグループ名

rancher-tcp-80

ターゲットタイプ

instance

プロトコル

TCP

ポート

80

VPC

VPCを選択してください

ヘルスチェック設定:

オプション 設定

プロトコル

TCP

ポート

traffic port

正常閾値

3

異常閾値

3

タイムアウト

6 seconds

間隔

10 seconds

2.ターゲットを登録する

次に、両方のターゲットグループにLinuxノードを追加します。

*rancher-tcp-443*という名前のターゲットグループを選択し、*ターゲット*タブをクリックして、*編集*を選択します。

edit targetgroup 443

追加したいインスタンス(Linuxノード)を選択し、*登録に追加*をクリックします。


add targets targetgroup 443
Figure 1. スクリーンショット ターゲットグループTCPポート443にターゲットを追加

added targets targetgroup 443
Figure 2. スクリーンショット ターゲットグループTCPポート443に追加されたターゲット

インスタンスが追加されたら、画面の右下にある*保存*をクリックします。

これらの手順を繰り返し、*rancher-tcp-443*を*rancher-tcp-80*に置き換えます。同じインスタンスをこのターゲットグループにターゲットとして追加する必要があります。

3.NLBを作成する

Amazonのウィザードを使用してネットワークロードバランサーを作成します。このプロセスの一環として、1で作成したターゲットグループを追加します。ターゲットグループを作成する

  1. ウェブブラウザから、 Amazon EC2コンソールに移動します。

  2. ナビゲーションペインから、ロードバランシング > *ロードバランサー*を選択します。

  3. *ロードバランサーの作成*をクリックします。

  4. *ネットワークロードバランサー*を選択し、*作成*をクリックします。その後、各フォームを完成させます。

手順1:ロードバランサーを構成する

フォーム内の次のフィールドを設定します:

  • 名前: rancher

  • スキーム: internal または internet-facing。選択したNLBのスキームは、インスタンスとVPCの構成に依存します。インスタンスに関連付けられたパブリックIPがない場合、またはRancherに内部からのみアクセスする場合は、NLBスキームを`internal`に設定するべきです。`internet-facing`ではなく。

  • *リスン:*ロードバランサープロトコルは`TCP`であるべきで、対応するロードバランサーポートは`443`に設定する必要があります。

  • アベイラビリティゾーン:*VPC*と*アベイラビリティゾーン*を選択してください。

ステップ2:ルーティングを設定します。

  1. *ターゲットグループ*のドロップダウンから、*既存のターゲットグループ*を選択します。

  2. *Name*のドロップダウンから、`rancher-tcp-443`を選択します。

  3. *高度なヘルスチェック設定*を開き、*間隔*を`10 seconds`に設定します。

ステップ3:ターゲットを登録する

以前にターゲットを登録したので、あとは*次へ:をクリックするだけです。レビュー*。

ステップ4:レビュー

ロードバランサーの詳細を確認し、満足したら*作成*をクリックします。

AWSがNLBを作成した後、*閉じる*をクリックします。

4.TCPポート80のNLBにリスンを追加します。

  1. 新しく作成したNLBを選択し、*リスン*タブを選択します。

  2. *リスンを追加*をクリックします。

  3. TCP:80を*プロトコル*として使用します:*ポート*

  4. *アクションを追加*をクリックし、*転送先..*を選択します。

  5. *転送先*のドロップダウンから、`rancher-tcp-80`を選択します。

  6. 画面の右上にある 保存 をクリックしてください。

Traefik Ingress のヘルスチェックパス

K3s Kubernetes クラスターは、デフォルトの Ingress として Traefik を使用します。

ヘルスチェックパスは /ping です。デフォルトでは /ping は常に一致し(ホストに関係なく)、 Traefik 自体 からの応答が常に提供されます。

正確なヘルスチェックをシミュレートするためには、可能な限り /ping または /healthz と組み合わせてホストヘッダー(Rancher ホスト名)を使用することがベストプラクティスです。これにより、Ingress ではなく Rancher Pods からの応答を得ることができます。