第1章 AWS Load Balancer Operator


AWS Load Balancer Operator は、Red Hat がサポートする Operator です。ユーザーは、これを SRE が管理する Red Hat OpenShift Service on AWS クラスターに必要に応じてインストールできます。

重要

AWS Load Balancer Operator によって作成されたロードバランサーは、OpenShift ルート には使用できません。OpenShift ルートのレイヤー 7 機能をすべて必要としない個々のサービスまたは Ingress リソースにのみ使用する必要があります。

AWS Load Balancer Operator は、Red Hat OpenShift Service on AWS クラスターで AWS Load Balancer Controller をインストール、管理、および設定するために使用されます。

AWS Load Balancer Controller は、Kubernetes Ingress リソースを作成する際に AWS Application Load Balancers (ALB) をプロビジョニングし、LoadBalancer タイプを使用して Kubernetes Service リソースを作成する際に AWS Network Load Balancers (NLB) をプロビジョニングします。

デフォルトの AWS インツリーロードバランサープロバイダーと比較して、このコントローラーは ALB と NLB 用の詳細なアノテーションを使用して開発されています。高度な使用例としては以下が挙げられます。

  • ネイティブ Kubernetes Ingress オブジェクトと ALB を使用する
  • AWS ウェブアプリケーションファイアウォール (WAF) サービスと ALB を統合する
  • カスタムの NLB ソース IP 範囲を指定する
  • カスタムの NLB 内部 IP アドレスを指定する

1.1. AWS Load Balancer Operator のインストール準備

AWS Load Balancer Operator をインストールする前に、クラスターが要件を満たしていること、および AWS VPC リソースが適切にタグ付けされていることを確認してください。役立つ環境変数を設定するオプションもあります。

1.1.1. クラスターの要件

クラスターは、3 つのパブリックサブネットを持つ既存の VPC を使用して、3 つのアベイラビリティーゾーンにデプロイする必要があります。

重要

これらの要件は、AWS Load Balancer Operator が一部の PrivateLink クラスターに適さない可能性があることを意味します。このようなクラスターには AWS NLB の方が適している可能性があります。

1.1.2. 一時的な環境変数のセットアップ

リソース識別子と設定の詳細を保持するために、一時的な環境変数をセットアップするオプションがあります。一時環境変数を使用すると、AWS Load Balancer Operator のインストールコマンドを実行するプロセスが効率化されます。

特定の値を保存するために環境変数を使用しない場合は、関連するインストールコマンドにそれらの値を手動で入力できます。

前提条件

  • AWS CLI (aws) をインストールしている。
  • OC CLI (oc) がインストールされている。

手順

  1. OpenShift CLI (oc) を使用して、クラスター管理者としてクラスターにログインします。

    $ oc login --token=<token> --server=<cluster_url>
    Copy to Clipboard Toggle word wrap
  2. 環境変数をセットアップするには、次のコマンドを実行します。

    $ export CLUSTER_NAME=$(oc get infrastructure cluster -o=jsonpath="{.status.apiServerURL}" | sed  's|^https://||' | awk -F . '{print $2}')
    Copy to Clipboard Toggle word wrap
    $ export REGION=$(oc get infrastructure cluster -o=jsonpath="{.status.platformStatus.aws.region}")
    Copy to Clipboard Toggle word wrap
    $ export OIDC_ENDPOINT=$(oc get authentication.config.openshift.io cluster -o jsonpath='{.spec.serviceAccountIssuer}' | sed  's|^https://||')
    Copy to Clipboard Toggle word wrap
    $ export AWS_ACCOUNT_ID=$(aws sts get-caller-identity --query Account --output text)
    Copy to Clipboard Toggle word wrap
    $ export SCRATCH="/tmp/${CLUSTER_NAME}/alb-operator"
    Copy to Clipboard Toggle word wrap
    $ mkdir -p ${SCRATCH}
    Copy to Clipboard Toggle word wrap

    これらのコマンドは、このターミナルセッションで使用してその値をコマンドラインインターフェイスに渡すことができる環境変数を作成します。

  3. 次のコマンドを実行して、変数値が正しく設定されていることを確認します。

    $ echo "Cluster name: ${CLUSTER_NAME}
    Region: ${REGION}
    OIDC Endpoint: ${OIDC_ENDPOINT}
    AWS Account ID: ${AWS_ACCOUNT_ID}"
    Copy to Clipboard Toggle word wrap

    出力例

    Cluster name: <cluster_id>
    Region: <region>
    OIDC Endpoint: oidc.op1.openshiftapps.com/<oidc_id>
    AWS Account ID: <aws_id>
    Copy to Clipboard Toggle word wrap

次のステップ

  • 環境変数が失われないように、同じターミナルセッションを使用して AWS Load Balancer Operator のインストールを続行します。

1.1.3. AWS VPC とサブネットにタグを付ける

AWS Load Balancer Operator をインストールする前に、AWS VPC リソースにタグを付ける必要があります。

前提条件

  • AWS CLI (aws) をインストールしている。
  • OC CLI (oc) がインストールされている。

手順

  1. オプション: AWS VPC リソースの環境変数をセットアップします。

    $ export VPC_ID=<vpc-id>
    Copy to Clipboard Toggle word wrap
    $ export PUBLIC_SUBNET_IDS="<public-subnet-a-id> <public-subnet-b-id> <public-subnet-c-id>"
    Copy to Clipboard Toggle word wrap
    $ export PRIVATE_SUBNET_IDS="<private-subnet-a-id> <private-subnet-b-id> <private-subnet-c-id>"
    Copy to Clipboard Toggle word wrap
  2. VPC にタグを付けてクラスターに関連付けます。

    $ aws ec2 create-tags --resources ${VPC_ID} --tags Key=kubernetes.io/cluster/${CLUSTER_NAME},Value=owned --region ${REGION}
    Copy to Clipboard Toggle word wrap
  3. パブリックサブネットにタグを付けて、Elastic Load Balancing ロールによる変更を許可し、プライベートサブネットにタグを付けて、内部 Elastic Load Balancing ロールによる変更を許可します。

    cat <<EOF > "${SCRATCH}/tag-subnets.sh"
    #!/bin/bash
    
    aws ec2 create-tags \
         --resources ${PUBLIC_SUBNET_IDS} \
         --tags Key=kubernetes.io/role/elb,Value='' \
         --region ${REGION}
    
    aws ec2 create-tags \
         --resources ${PRIVATE_SUBNET_IDS} \
         --tags Key=kubernetes.io/role/internal-elb,Value='' \
         --region ${REGION}
    
    EOF
    Copy to Clipboard Toggle word wrap
  4. スクリプトを実行します。

    bash ${SCRATCH}/tag-subnets.sh
    Copy to Clipboard Toggle word wrap

関連情報

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat