19.3. AWS Load Balancer コントローラーのインスタンスの作成


Operator をインストールした後、 AWS Load Balancer コントローラーのインスタンスを作成できます。

19.3.1. AWS Load Balancer Operator を使用した AWS Load Balancer コントローラーインスタンスの作成

クラスターにインストールできる aws-load-balancer-controller のインスタンスは 1 つだけです。CLI を使用して AWS Load Balancer コントローラーを作成できます。AWS Load Balancer (ALB) Operator は、cluster という名前のリソースのみを調整します。

前提条件

  • echoserver namespace を作成している。
  • OpenShift CLI (oc) にアクセスできる。

手順

  1. 次のように、aws-load-balancer-controller リソース YAML ファイル (たとえば、sample-aws-lb.yaml) を作成します。

    apiVersion: networking.olm.openshift.io/v1alpha1
    kind: AWSLoadBalancerController 1
    metadata:
      name: cluster 2
    spec:
      subnetTagging: Auto 3
      additionalResourceTags: 4
        example.org/cost-center: 5113232
        example.org/security-scope: staging
      ingressClass: alb 5
      config:
        replicas: 2 6
      enabledAddons: 7
        - AWSWAFv2 8
    1
    aws-load-balancer-controller リソースを定義します。
    2
    AWS Load Balancer コントローラーインスタンスの名前を定義します。このインスタンス名は、関連するすべてのリソースの接尾辞として追加されます。
    3
    有効なオプションは AutoManual です。値が Auto に設定されている場合、Operator はクラスターに属するサブネットを判別し、それらに適切なタグを付けようと試みます。内部サブネットタグが内部サブネットに存在しない場合、Operator はロールを正しく判別できません。ユーザー提供のインフラストラクチャーにクラスターをインストールした場合は、サブネットに適切なロールタグを手動でタグ付けし、サブネットタグ付けポリシーを Manual に設定できます。
    4
    コントローラーが AWS リソースをプロビジョニングするときに使用するタグを定義します。
    5
    このフィールドのデフォルト値は alb です。IngressClass リソースが存在しない場合、Operator は同じ名前でプロビジョニングします。
    6
    コントローラーのレプリカ数を指定します。
    7
    アノテーションを介して指定される AWS Load Balancer のアドオンを指定します。
    8
    alb.ingress.kubernetes.io/wafv2-acl-arn アノテーションを有効にします。
  2. 次のコマンドを実行して、aws-load-balancer-controller リソースを作成します。

    $ oc create -f sample-aws-lb.yaml
  3. AWS Load Balancer コントローラーが起動したら、deployment リソースを作成します。

    apiVersion: apps/v1
    kind: Deployment 1
    metadata:
      name: <echoserver> 2
      namespace: echoserver
    spec:
      selector:
        matchLabels:
          app: echoserver
      replicas: 3 3
      template:
        metadata:
          labels:
            app: echoserver
        spec:
          containers:
            - image: openshift/origin-node
              args:
                - TCP4-LISTEN:8080,reuseaddr,fork
                - EXEC:'/bin/bash -c \"printf \\\"HTTP/1.0 200 OK\r\n\r\n\\\"; sed -e \\\"/^\r/q\\\"\"'
              imagePullPolicy: Always
              name: echoserver
              ports:
                - containerPort: 8080
    1
    デプロイメントリソースを定義します。
    2
    デプロイメント名を指定します。
    3
    デプロイメントのレプリカの数を指定します。
  4. service リソースを作成します。

    apiVersion: v1
    kind: Service 1
    metadata:
      name: <echoserver> 2
      namespace: echoserver
    spec:
      ports:
        - port: 80
          targetPort: 8080
          protocol: TCP
      type: NodePort
      selector:
        app: echoserver
    1
    サービスリソースを定義します。
    2
    サービスの名前を指定します。
  5. ALB ベースの Ingress リソースをデプロイします。

    apiVersion: networking.k8s.io/v1
    kind: Ingress 1
    metadata:
      name: <echoserver> 2
      namespace: echoserver
      annotations:
        alb.ingress.kubernetes.io/scheme: internet-facing
        alb.ingress.kubernetes.io/target-type: instance
    spec:
      ingressClassName: alb
      rules:
        - http:
            paths:
              - path: /
                pathType: Exact
                backend:
                  service:
                    name: <echoserver> 3
                    port:
                      number: 80
    1
    Ingress リソースを定義します。
    2
    Ingress リソースの名前を指定します。
    3
    サービスリソースの名前を指定します。

検証

  • 次のコマンドを実行して、Ingress リソースのステータスを確認し、プロビジョニングされた AWS Load Balancer (ALB) のホストを表示します。

    $ HOST=$(kubectl get ingress -n echoserver echoserver -o json | jq -r '.status.loadBalancer.ingress[0].hostname')
  • 次のコマンドを実行して、プロビジョニングされた AWS Load Balancer (ALB) ホストのステータスを確認します。

    $ curl $HOST
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.