2.5. AWS Load Balancer Operator の設定


2.5.1. クラスター全体のプロキシーの認証局を信頼する

AWS Load Balancer Operator でクラスター全体のプロキシーを設定できます。クラスター全体のプロキシーを設定すると、Operator Lifecycle Manager (OLM) が、HTTP_PROXYHTTPS_PROXYNO_PROXY などの環境変数を使用して、Operator のすべてのデプロイメントを自動的に更新します。これらの変数は、AWS Load Balancer Operator によってマネージドコントローラーに入力されます。

  1. 次のコマンドを実行して、aws-load-balancer-operator namespace に認証局 (CA) バンドルを含める config map を作成します。

    $ oc -n aws-load-balancer-operator create configmap trusted-ca
    Copy to Clipboard Toggle word wrap
  2. 信頼できる CA バンドルを config map に挿入するには、次のコマンドを実行して、config.openshift.io/inject-trusted-cabundle=true ラベルを config map に追加します。

    $ oc -n aws-load-balancer-operator label cm trusted-ca config.openshift.io/inject-trusted-cabundle=true
    Copy to Clipboard Toggle word wrap
  3. 次のコマンドを実行して、AWS Load Balancer Operator デプロイメントの config map にアクセスできるように AWS Load Balancer Operator サブスクリプションを更新します。

    $ oc -n aws-load-balancer-operator patch subscription aws-load-balancer-operator --type='merge' -p '{"spec":{"config":{"env":[{"name":"TRUSTED_CA_CONFIGMAP_NAME","value":"trusted-ca"}],"volumes":[{"name":"trusted-ca","configMap":{"name":"trusted-ca"}}],"volumeMounts":[{"name":"trusted-ca","mountPath":"/etc/pki/tls/certs/albo-tls-ca-bundle.crt","subPath":"ca-bundle.crt"}]}}}'
    Copy to Clipboard Toggle word wrap
  4. AWS Load Balancer Operator がデプロイされたら、次のコマンドを実行して、CA バンドルが aws-load-balancer-operator-controller-manager デプロイメントに追加されていることを確認します。

    $ oc -n aws-load-balancer-operator exec deploy/aws-load-balancer-operator-controller-manager -c manager -- bash -c "ls -l /etc/pki/tls/certs/albo-tls-ca-bundle.crt; printenv TRUSTED_CA_CONFIGMAP_NAME"
    Copy to Clipboard Toggle word wrap

    出力例

    -rw-r--r--. 1 root 1000690000 5875 Jan 11 12:25 /etc/pki/tls/certs/albo-tls-ca-bundle.crt
    trusted-ca
    Copy to Clipboard Toggle word wrap

  5. オプション: config-map が変更されるたびに、次のコマンドを実行して、AWS Load Balancer Operator のデプロイを再開します。

    $ oc -n aws-load-balancer-operator rollout restart deployment/aws-load-balancer-operator-controller-manager
    Copy to Clipboard Toggle word wrap

2.5.2. AWS Load Balancer への TLS Termination の追加

ドメインのトラフィックをサービスの Pod にルーティングし、AWS Load Balancer に TLS Termination を追加できます。

前提条件

  • OpenShift CLI (oc) にアクセスできる。

手順

  1. AWSLoadBalancerController リソースを定義する YAML ファイルを作成します。

    add-tls-termination-albc.yaml ファイルの例

    apiVersion: networking.olm.openshift.io/v1
    kind: AWSLoadBalancerController
    metadata:
      name: cluster
    spec:
      subnetTagging: Auto
      ingressClass: tls-termination 
    1
    Copy to Clipboard Toggle word wrap

    1
    Ingress クラス名を定義します。クラスター内に Ingress クラスが存在しない場合は、AWS Load Balancer Controller によって作成されます。spec.controlleringress.k8s.aws/alb に設定されている場合、AWS Load Balancer Controller は追加の Ingress クラス値を調整します。
  2. Ingress リソースを定義する YAML ファイルを作成します。

    add-tls-termination-ingress.yaml ファイルの例

    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: <example> 
    1
    
      annotations:
        alb.ingress.kubernetes.io/scheme: internet-facing 
    2
    
        alb.ingress.kubernetes.io/certificate-arn: arn:aws:acm:us-west-2:xxxxx 
    3
    
    spec:
      ingressClassName: tls-termination 
    4
    
      rules:
      - host: example.com 
    5
    
        http:
            paths:
              - path: /
                pathType: Exact
                backend:
                  service:
                    name: <example_service> 
    6
    
                    port:
                      number: 80
    Copy to Clipboard Toggle word wrap

    1
    Ingress 名を指定します。
    2
    コントローラーは、パブリックサブネット内の Ingress のロードバランサーをプロビジョニングし、インターネット経由でロードバランサーにアクセスします。
    3
    ロードバランサーに割り当てる証明書の Amazon Resource Name (ARN)。
    4
    Ingress クラス名を定義します。
    5
    トラフィックルーティングのドメインを定義します。
    6
    トラフィックルーティングのサービスを定義します。

2.5.3. 1 つの AWS ロードバランサーを介して複数の Ingress リソースを作成する

1 つの AWS Load Balancer を介して、1 つのドメインに含まれるさまざまなサービスに、複数の Ingress リソースを使用してトラフィックをルーティングできます。各 Ingress リソースは、ドメインの異なるエンドポイントを提供します。

前提条件

  • OpenShift CLI (oc) にアクセスできる。

手順

  1. 次のように、IngressClassParams リソースの YAML ファイル (例: sample-single-lb-params.yaml) を作成します。

    apiVersion: elbv2.k8s.aws/v1beta1 
    1
    
    kind: IngressClassParams
    metadata:
      name: single-lb-params 
    2
    
    spec:
      group:
        name: single-lb 
    3
    Copy to Clipboard Toggle word wrap
    1
    IngressClassParams リソースの API グループとバージョンを定義します。
    2
    IngressClassParams リソース名を指定します。
    3
    IngressGroup リソース名を指定します。このクラスのすべての Ingress リソースは、この IngressGroup に属します。
  2. 次のコマンドを実行して、IngressClassParams リソースを作成します。

    $ oc create -f sample-single-lb-params.yaml
    Copy to Clipboard Toggle word wrap
  3. 次のように、IngressClass リソースの YAML ファイル (例: sample-single-lb-class.yaml) を作成します。

    apiVersion: networking.k8s.io/v1 
    1
    
    kind: IngressClass
    metadata:
      name: single-lb 
    2
    
    spec:
      controller: ingress.k8s.aws/alb 
    3
    
      parameters:
        apiGroup: elbv2.k8s.aws 
    4
    
        kind: IngressClassParams 
    5
    
        name: single-lb-params 
    6
    Copy to Clipboard Toggle word wrap
    1
    API グループと IngressClass リソースのバージョンを定義します。
    2
    Ingress クラス名を指定します。
    3
    コントローラー名を定義します。ingress.k8s.aws/alb という値は、このクラスのすべての Ingress リソースを AWS Load Balancer Controller によって管理することを意味します。
    4
    IngressClassParams リソースの API グループを定義します。
    5
    IngressClassParams リソースのリソースタイプを定義します。
    6
    IngressClassParams リソース名を定義します。
  4. 次のコマンドを実行して IngressClass リソースを作成します。

    $ oc create -f sample-single-lb-class.yaml
    Copy to Clipboard Toggle word wrap
  5. 次のように、AWSLoadBalancerController リソース YAML ファイル (例: sample-single-lb.yaml) を作成します。

    apiVersion: networking.olm.openshift.io/v1
    kind: AWSLoadBalancerController
    metadata:
      name: cluster
    spec:
      subnetTagging: Auto
      ingressClass: single-lb 
    1
    Copy to Clipboard Toggle word wrap
    1
    IngressClass リソースの名前を定義します。
  6. 次のコマンドを実行して、AWSLoadBalancerController リソースを作成します。

    $ oc create -f sample-single-lb.yaml
    Copy to Clipboard Toggle word wrap
  7. 次のように、Ingress リソースの YAML ファイル (例: sample-multiple-ingress.yaml) を作成します。

    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: example-1 
    1
    
      annotations:
        alb.ingress.kubernetes.io/scheme: internet-facing 
    2
    
        alb.ingress.kubernetes.io/group.order: "1" 
    3
    
        alb.ingress.kubernetes.io/target-type: instance 
    4
    
    spec:
      ingressClassName: single-lb 
    5
    
      rules:
      - host: example.com 
    6
    
        http:
            paths:
            - path: /blog 
    7
    
              pathType: Prefix
              backend:
                service:
                  name: example-1 
    8
    
                  port:
                    number: 80 
    9
    
    ---
    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: example-2
      annotations:
        alb.ingress.kubernetes.io/scheme: internet-facing
        alb.ingress.kubernetes.io/group.order: "2"
        alb.ingress.kubernetes.io/target-type: instance
    spec:
      ingressClassName: single-lb
      rules:
      - host: example.com
        http:
            paths:
            - path: /store
              pathType: Prefix
              backend:
                service:
                  name: example-2
                  port:
                    number: 80
    ---
    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: example-3
      annotations:
        alb.ingress.kubernetes.io/scheme: internet-facing
        alb.ingress.kubernetes.io/group.order: "3"
        alb.ingress.kubernetes.io/target-type: instance
    spec:
      ingressClassName: single-lb
      rules:
      - host: example.com
        http:
            paths:
            - path: /
              pathType: Prefix
              backend:
                service:
                  name: example-3
                  port:
                    number: 80
    Copy to Clipboard Toggle word wrap
    1
    Ingress 名を指定します。
    2
    インターネットにアクセスするためにパブリックサブネットにプロビジョニングするロードバランサーを示します。
    3
    ロードバランサーで要求を受信したときに、複数の Ingress リソースからのルールをマッチする順序を指定します。
    4
    ロードバランサーがサービスに到達するために OpenShift Container Platform ノードをターゲットにすることを示します。
    5
    この Ingress に属する Ingress クラスを指定します。
    6
    要求のルーティングに使用するドメイン名を定義します。
    7
    サービスにルーティングする必要があるパスを定義します。
    8
    Ingress リソースで設定されたエンドポイントを提供するサービス名を定義します。
    9
    エンドポイントにサービスを提供するサービスのポートを定義します。
  8. 次のコマンドを実行して Ingress リソースを作成します。

    $ oc create -f sample-multiple-ingress.yaml
    Copy to Clipboard Toggle word wrap

2.5.4. AWS Load Balancer Operator ログ

oc logs コマンドを使用して、AWS Load Balancer Operator のログを表示できます。

手順

  • 次のコマンドを実行して、AWS Load Balancer Operator のログを表示します。

    $ oc logs -n aws-load-balancer-operator deployment/aws-load-balancer-operator-controller-manager -c manager
    Copy to Clipboard Toggle word wrap
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat