すべてのプロダクト
Search
ドキュメントセンター

Container Service for Kubernetes:既存のSLBインスタンスを使用してアプリケーションを公開する

最終更新日:Nov 20, 2024

クラスターの外部からServer Load Balancer (SLB) インスタンスによって公開されるサービスにアクセスするには、SLBインスタンスのドメイン名または <IP:Service port> エンドポイントを使用します。 クラスター内からサービスにアクセスするには、<サービス名: サービスポート> エンドポイントを使用します。 このトピックでは、NGINXアプリケーションを例として、既存のSLBインスタンスを使用してアプリケーションを公開するLoadBalancerサービスを使用する方法について説明します。

前提条件

使用上の注意

既存のSLBインスタンスを指定する場合、SLBインスタンスのリスナーの構成方法は、cloud-controller-managerのバージョンによって異なります。

  • cloud-controller-manager v1.9.3.59-ge3bc999-aliyun以降のバージョン: 既存のSLBインスタンスを指定すると、cloud-controller-managerはデフォルトでSLBインスタンスのリスナーを設定しません。 service.beta.kubernetes.io/alibaba-cloud-loadbalancer-force-override-listeners: "true" アノテーションを追加してリスナーを有効にするか、SLBインスタンスのリスニングルールを手動で設定できます。

  • v1.9.3.59より前のcloud-controller-manager -ge3bc999-aliyun: 既存のSLBインスタンスを指定すると、cloud-controller-managerはSLBインスタンスのバックエンドサーバーグループを自動的に作成し、これらのバックエンドサーバーグループを管理します。 また、リスナーが手動で設定されている場合でも、SLBインスタンスのリスナーがバックエンドサーバーグループに関連付けられます。

cloud-controller-managerのバージョンを表示する方法

コンソールの使用

ACKクラスターの [アドオン] ページで、cloud-controller-managerのバージョンを表示します。

  1. ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。

  2. [クラスター] ページで、管理するクラスターの名前をクリックします。 左側のナビゲーションウィンドウで、[操作] > [アドオン] を選択します。

  3. [アドオン] ページの [コアコンポーネント] タブで、Cloud Controller Managerのバージョンを表示します。

kubectlの使用 (ACK専用クラスターに適用)

kubectl get pod -n kube-system -o yaml|grep image:|grep cloud-con|uniq

注意事項

既存のSLBインスタンスを使用してアプリケーションを公開する前に、注意事項をお読みください。 詳細については、以下のトピックをご参照ください。

ステップ1: アプリケーションのデプロイ

このトピックでは、NGINXステートレスアプリケーションを例として、LoadBalancerサービスを使用してアプリケーションを公開する方法を示します。

ACKコンソールの使用

  1. ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。

  2. [クラスター] ページで、管理するクラスターの名前をクリックします。 左側のウィンドウで、[ワークロード] > [デプロイ] を選択します。

  3. [デプロイメント] ページで、[イメージから作成] をクリックし、デプロイメントの基本情報、コンテナ設定、および詳細設定を構成します。

    1. [基本情報] ウィザードページで、[名前] を指定し、他のパラメーターのデフォルト設定を維持して、[次へ] をクリックします。 この例では、名前はmy-nginxに設定されています。

    2. [コンテナー] ウィザードページで、イメージ名とコンテナーポートを指定し、他のパラメーターのデフォルト設定を維持して、[次へ] をクリックします。

      パラメーター

      有効値

      イメージ名

      [画像の選択] をクリックします。 [画像と画像タグの選択] ダイアログボックスで、[アーティファクトセンター] タブをクリックし、nginxを検索して、openanolis/nginxという名前の画像リポジトリを選択します。 次に、[画像タグの選択] をクリックして画像タグを設定し、[OK] をクリックします。

      ポート

      • 名前: nginx。

      • コンテナポート: 80。

    3. [詳細設定] ウィザードページで、デフォルト設定を維持し、[作成] をクリックしてNGINXアプリケーションを作成します。

kubectlを使う

  1. my-nginx.yamlという名前のファイルを作成し、次のYAMLコンテンツをファイルに追加します。

    apiVersion: apps/v1 # for versions before 1.8.0 use apps/v1beta1
    kind: Deployment
    metadata:
      name: my-nginx    # The name of the sample application. 
      labels:
        app: nginx
    spec:
      replicas: 2       # The number of replicated pods. 
      selector:
        matchLabels:
          app: nginx     # You must specify the same value in the selector of the Service that is used to expose the application. 
      template:
        metadata:
          labels:
            app: nginx
        spec:
        #  nodeSelector:
        #    env: test-team
          containers:
          - name: nginx
            image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6
            ports:
            - containerPort: 80                                # The port that you want to expose in the Service.

  2. 次のコマンドを実行して、my-nginxアプリケーションをデプロイします。

    kubectl apply -f my-nginx.yaml
  3. 次のコマンドを実行して、アプリケーションのステータスを照会します。

    kubectl get deployment my-nginx

    期待される出力:

    NAME       READY   UP-TO-DATE   AVAILABLE   AGE
    my-nginx   2/2     2            2           50s

手順2: 既存のSLBインスタンスを使用してアプリケーションを公開するLoadBalancerサービスを作成する

ACKコンソールまたはkubectlを使用してLoadBalancerサービスを作成し、アプリケーションを公開できます。

ACKコンソールの使用

  1. ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。

  2. [クラスター] ページで、管理するクラスターの名前をクリックします。 左側のウィンドウで、[ネットワーク] > [サービス] を選択します。

  3. [サービス] ページで、[作成] をクリックします。 [サービスの作成] ダイアログボックスで、必要なパラメーターを設定します。

    パラメーター

    説明

    名前

    サービスの名前。

    my-nginx-svc

    サービスタイプ

    [サービスタイプ] を指定します。 さまざまな種類のソースからのアクセスを処理するために、次の種類のサービスを作成できます。

    クラスターIP

    ClusterIPサービス。 このタイプのサービスは、クラスター内の通信に使用されます。 ClusterIPサービスのみが相互に検出および通信できます。 [Headless Service] を選択した場合、Kubernetesがデフォルトで提供するClusterIPベースのサービス検出および負荷分散機能に依存することなく、他のサービス検出メカニズムと対話できます。

    SLBを使用します。

    SLBでは、CLBインスタンスまたはNLBインスタンスを使用して、クラスター内のアプリケーションを公開するLoadBalancerサービスを作成できます。 NodePortサービスと比較して、LoadBalancerサービスを使用して公開されるアプリケーションの可用性とパフォーマンスが大幅に向上します。 サポートされているSLBインスタンス:

    • CLB: 詳細については、「CLB」をご参照ください。

    • NLB: 詳細については、「NLB」をご参照ください。

    ノードポート

    NodePortサービス。 外部ユーザーは、ノードのIPアドレスと指定されたポートを使用して、このタイプのサービスにアクセスできます。 <NodeIP >:< NodePort> を介してNodePortサービスに接続できます。 ただし、負荷分散を手動で設定する必要があります。

    1. [SLB] を選択します。

    2. [既存のリソースを使用] をクリックし、ドロップダウンリストからCLBインスタンスを選択します。

      この例のCLBインスタンスは新しく作成されます。 CLBインスタンスのリスナーを設定する必要があります。 したがって、[既存のリスナーの上書き] を選択します。

    外部トラフィックポリシー

    [外部トラフィックポリシー] パラメーターは、サービスタイプパラメーターを [ノードポート] または [Server Load Balancer] に設定した場合にのみ使用できます。 外部トラフィックポリシーの詳細については、「はじめに」トピックの外部トラフィックポリシーの違いをご参照ください。 有効な値:

    • Local: 現在のノードのポッドにのみトラフィックをルーティングします。

    • Cluster: トラフィックをクラスター内の他のノードのポッドにルーティングします。

    Local

    バックエンド

    サービスに関連付けるバックエンドアプリケーション。 バックエンドアプリケーションを選択しない場合、Endpointオブジェクトは作成されません。 詳細については、「Services-without-selectors」をご参照ください。

    名前: app。

    値: my-nginx。

    ポートマッピング

    サービスポートとコンテナーポート。 サービスポートはYAMLファイルのportフィールドに対応し、コンテナーポートはYAMLファイルのtargetPortフィールドに対応します。 コンテナーポートは、バックエンドポッドで公開されているポートと同じである必要があります。

    80

    注釈

    SLBインスタンスを構成するためにサービスに追加されるアノテーション。 詳細については、「注釈を使用してCLBインスタンスを構成する」および「注釈を使用してNLBインスタンスを構成する」をご参照ください。

    重要

    クラスター内のAPIサーバーのSLBインスタンスを再利用しないでください。 そうしないと、クラスタアクセス障害が発生する可能性があります。

    この例では、2つの注釈を追加して、帯域幅課金方法を指定し、最大帯域幅を2 Mbit/sに設定して、サービスを介して流れるトラフィックの量を制限します。 例:

    • service.beta.kubernetes.io/alibaba-cloud-loadbalancer-charge-type:paybybandwidth

    • service.beta.kubernetes.io/alibaba-cloud-loadbalancer-bandwidth:2

    ラベル

    サービスを識別する、サービスに追加されるラベル。

    なし

    サービス削除保護

    重要なビジネスまたは機密データを含むサービスの削除保護を有効にして、誤った削除に関連するメンテナンスコストを回避します。 この機能を有効にすると、この機能を手動で無効にした後にのみリソースを削除できます。

    説明

    コンテナーセキュリティポリシーを管理するには、まずpolicy-template-controllergatekeeperをインストールする必要があります。 クラスターの詳細ページで、[操作] > [アドオン] を選択すると、これらのコンポーネントが表示されます。 [インストール] をクリックして、これらのコンポーネントのデプロイを完了します。

    無効

    クリックOK.

  4. [サービス] ページで、サービスの名前をクリックして詳細ページに移動します。 [基本情報] セクションで、サービスの [外部エンドポイント] (39.106.XX.XX:80など) をクリックして、アプリケーションにアクセスします。

kubectlを使う

  1. サービスを作成します。

    という名前のファイルを作成します。my-nginx-svc.yaml次の内容をファイルに追加します。

    • service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id${YOUR_LB_ID} を、SLBコンソールで作成したSLBインスタンスのIDに置き換えます。

    • 既存のSLBインスタンスを使用する場合、SLBインスタンスのリスナーは作成されず、SLBインスタンスの既存のリスナーはデフォルトでオーバーライドされません。 リスナーをオーバーライドするには、service.beta.kubernetes.io/alibaba-cloud-loadbalancer-force-override-listeners"true" に設定します。 この例では、SLBインスタンスが新しく作成されたため、SLBインスタンスのリスナーを作成するためにアノテーションがtrueに設定されています。 アノテーションの詳細については、「アノテーションを使用してCLBインスタンスを構成する」および「アノテーションを使用してNLBインスタンスを構成する」をご参照ください。

    • my-nginx.yamlファイルのmatchLabelsの値 (app: nginx) にセレクターを設定します。 これにより、サービスはバックエンドポッドに関連付けられます。

    apiVersion: v1
    kind: Service # Define a Service. 
    metadata:
      annotations:
        service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id: ${YOUR_LB_ID}
        service.beta.kubernetes.io/alicloud-loadbalancer-force-override-listeners: 'true'
      labels:
        app: nginx
      name: my-nginx-svc
      namespace: default
    spec:
      ports:
      - port: 80
        protocol: TCP
        targetPort: 80
      selector:
        app: nginx
      type: LoadBalancer

    パラメーター

    説明

    種類

    リソースオブジェクトがサービスであることを指定します。

    メタデータ

    名前、ラベル、名前空間など、サービスに関する基本情報を定義します。

    metadata.annotations

    LoadBalancerアノテーションを追加できます。 この例では、アノテーションservice.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-typeintranetに設定されています。 詳細については、「アノテーションを使用したCLBインスタンスの設定」をご参照ください。

    spec.selector

    サービスのラベルセレクターを定義します。 サービスは、ラベルがラベルセレクターと一致するポッドを公開します。

    spec.ports.port

    クラスターIPアドレスで公開されるサービスポートを指定します。 clusterIP:portにリクエストを送信することで、クラスター内からサービスにアクセスできます。

    spec.ports.tar getPort

    トラフィックを受信するバックエンドポッドのポートを指定します。 Serviceポートを介して流れるトラフィックは、kube-proxyによってバックエンドポッドのポート (targetPortで指定) に転送され、コンテナーに到達します。

    spec.type

    サービスへのアクセス方法を定義します。

    • LoadBalancer: サービスはSLBインスタンスを使用して公開されます。 サービスにSLBインスタンスが指定されていない場合、デフォルトでインターネットに接続されたSLBインスタンスが作成されます。 アノテーションをイントラネットに設定して、内部対応のSLBインスタンスを作成し、サービスを内部アクセスに公開することができ。 詳細については、「注釈を使用してCLBインスタンスを構成する」および「注釈を使用してNLBインスタンスを構成する」をご参照ください。

    • ClusterIP: クラスター内のサービスを公開します。 ClusterIPサービスは、クラスター内からアクセスできます。

    • NodePort: ノードポートをバックエンドサービスにマップします。 NodeIP:NodePortにリクエストを送信することで、クラスターの外部からサービスにアクセスできます。

    • ExternalName: サービスをDNSサーバーにマップします。

  2. 次のコマンドを実行して、my-nginx-svcという名前のサービスを作成し、サービスを使用してアプリケーションを公開します。

    kubectl apply -f my-nginx-svc.yaml
  3. 次のコマンドを実行して、LoadBalancerサービスが作成されたことを確認します。

    kubectl get svc my-nginx-svc

    期待される出力:

    NAME           TYPE           CLUSTER-IP    EXTERNAL-IP      PORT(S)        AGE
    my-nginx-svc   LoadBalancer   172.21.5.82   39.106.XX.XX     80:30471/TCP   5m
  4. 次のコマンドを実行して、アプリケーションにアクセスします。

    curl <YOUR-External-IP> # Replace <YOUR-External-IP> with the external IP address that you obtained in the preceding step.

    期待される出力:

    <!DOCTYPE html>
    <html>
    <head>
    <title>Welcome to nginx!</title>
    <style>
        body {
            width: 35em;
            margin: 0 auto;
            font-family: Tahoma, Verdana, Arial, sans-serif;
        }
    </style>
    </head>
    <body>
    <h1>Welcome to nginx!</h1>
    <p>If you see this page, the nginx web server is successfully installed and
    working. Further configuration is required.</p>
    
    <p>For online documentation and support please refer to
    <a href="http://nginx.org/">nginx.org</a>.<br/>
    Commercial support is available at
    <a href="http://nginx.com/">nginx.com</a>.</p>
    
    <p><em>Thank you for using nginx.</em></p>
    </body>
    </html>

CLB

CLBインスタンスの作成

[CLBインスタンスの作成] を選択した場合、CLBインスタンスのアクセスモードをパブリックアクセスまたは内部アクセスに設定し、CLBインスタンスの課金方法を従量課金または従量課金に設定できます。 詳細については、「CLBインスタンスの作成と管理」をご参照ください。

パラメーター

説明

名前

CLBインスタンスの名前。 このパラメーターは、CLBインスタンスを作成する場合にのみ必要です。

アクセス方法

有効な値: パブリックアクセスおよび内部アクセス

課金方法

有効な値: Pay-by-specificationおよびPay-as-you-go (Pay-by-CU) 。 詳細については、「CLB課金の概要」をご参照ください。

IPバージョン

IPアドレスのバージョン。 有効な値: IPv4およびIPv6

スケジューリングアルゴリズム

有効値: ラウンドロビン (RR) および加重ラウンドロビン (WRR) 。 デフォルト値: ラウンドロビン (RR) 。 ラウンドロビン (RR): リクエストはバックエンドサーバーに順番に配信されます。 重み付きラウンドロビン (WRR): 重みの高いバックエンドサーバーは、重みの低いサーバーよりも多くのリクエストを受け取ります。

アクセス制御

リスナーのアクセス制御機能を有効にするかどうかを指定します。 詳細は、「アクセス制御」をご参照ください。

ヘルスチェック

ヘルスチェック機能を有効にするかどうかを指定します。 ヘルスチェックプロトコルパラメーターをTCPまたはHTTPに設定できます。 ヘルスチェック機能を有効にすると、ヘルスチェック機能を使用してバックエンドサーバーのサービスの可用性を確認できます。 ヘルスチェックの仕組みの詳細については、「CLBヘルスチェックの仕組み」をご参照ください。

その他

アノテーションを使用してCLBインスタンスを設定することもできます。 詳細については、「アノテーションを使用したCLBインスタンスの設定」をご参照ください。

既存のCLBインスタンスの使用

[既存のCLBインスタンスを使用] のドロップダウンリストから既存のCLBインスタンスを選択できます。 既存のリスナーの上書きを有効にするかどうかも選択できます。 詳細については、「既存のCLBインスタンスを使用し、CLBインスタンスのリスナーを強制的に上書きする」をご参照ください。

重要

既存のCLBインスタンスを使用する場合は、いくつかの制限と使用状況の注意を払う必要があります。 詳細については、「LoadBalancerサービスを設定するための考慮事項」トピックの使用方法の注意事項をご参照ください。

詳細設定

パラメーター

説明

スケジューリングアルゴリズム

有効値: ラウンドロビン (RR) および加重ラウンドロビン (WRR) 。 デフォルト値: ラウンドロビン (RR) 。 ラウンドロビン (RR): リクエストはバックエンドサーバーに順番に配信されます。 重み付きラウンドロビン (WRR): 重みの高いバックエンドサーバーは、重みの低いサーバーよりも多くのリクエストを受け取ります。

アクセス制御

リスナーのアクセス制御機能を有効にするかどうかを指定します。 詳細は、「アクセス制御」をご参照ください。

ヘルスチェック

ヘルスチェック機能を有効にするかどうかを指定します。 ヘルスチェックプロトコルパラメーターをTCPまたはHTTPに設定できます。 ヘルスチェック機能を有効にすると、ヘルスチェック機能を使用してバックエンドサーバーのサービスの可用性を確認できます。 ヘルスチェックの仕組みの詳細については、「CLBヘルスチェックの仕組み」をご参照ください。

その他

アノテーションを使用してCLBインスタンスを設定することもできます。 詳細については、「アノテーションを使用したCLBインスタンスの設定」をご参照ください。

NLB

NLBインスタンスの作成

[NLBインスタンスの作成] を選択した場合、NLBインスタンスのアクセスモードをパブリックアクセスまたは内部アクセスに設定できます。 詳細については、「NLBインスタンスの作成と管理」をご参照ください。

パラメーター

説明

名前

NLBインスタンスの名前。 このパラメーターは、NLBインスタンスを作成する場合にのみ必要です。

アクセス方法

有効な値: パブリックアクセスおよび内部アクセス

課金方法

有効値: 従量課金 (Pay-by-CU) 。 詳細は、「NLB課金」をご参照ください。

IPバージョン

IPアドレスのバージョン。 有効な値: IPv4およびDual-stack

スケジューリングアルゴリズム

有効な値:

  • ラウンドロビン: リクエストはバックエンドサーバーに順番に転送されます。

  • 重み付きラウンドロビン (デフォルト): 重みの大きいバックエンドサーバーは、重みの小さいバックエンドサーバーよりも多くのリクエストを受け取ります。

  • ソースIPハッシュ: ソースIPアドレスに基づくコンシステントハッシングを指定します。 同じ送信元IPアドレスからのリクエストは、同じバックエンドサーバーに配信されます。

  • Four-Element Hashing: 送信元IPアドレス、送信先IPアドレス、送信元ポート、および送信先ポートの各要素に基づくコンシステントハッシングを指定します。 上記の要因に基づいて同じ情報を含むリクエストは、同じバックエンドサーバーに転送されます。

  • QUIC ID Hashing: QUIC IDに基づいてコンシステントハッシングを指定します。 同じQUIC IDを持つリクエストは、同じバックエンドサーバーに転送されます。

  • 重み付き最小接続数: リクエストは、バックエンドサーバーへの接続の重みと数に基づいて転送されます。 2つのバックエンドサーバーの重みが同じ場合、接続数が少ないバックエンドサーバーはより多くのリクエストを受信します。

ヘルスチェック

ヘルスチェック機能を有効にするかどうかを指定します。

  • TCP (デフォルト): TCPヘルスチェックを実行するために、NLBはSYNパケットをバックエンドサーバーに送信して、バックエンドサーバーのポートがリクエストを受信できるかどうかを確認します。

    • ヘルスチェック応答タイムアウト: ヘルスチェックから応答を受け取るまでの待機時間。 バックエンドサーバーが指定されたタイムアウト期間内に応答しない場合、バックエンドサーバーは異常と見なされます。

    • ヘルスチェック間隔: ヘルスチェックが実行される間隔。

    • 正常しきい値: バックエンドサーバーが正常と見なされるまでに、バックエンドサーバーが連続してヘルスチェックに合格する必要がある最小回数。

    • 異常しきい値: バックエンドサーバーが異常と見なされるまでに、バックエンドサーバーが連続してヘルスチェックに合格しない必要がある最小回数。

  • HTTP: HTTPヘルスチェックを実行するために、NLBはHEADまたはGETリクエストをバックエンドサーバーに送信し、バックエンドサーバーが正常かどうかを確認します。

    • ドメイン名: ヘルスチェックに使用されるドメイン名。

      • バックエンドサーバーの内部IP (デフォルト): ヘルスチェックにバックエンドサーバーのプライベートIPアドレスを使用します。

      • カスタムドメイン名: ドメイン名を入力します。

    • パス: ヘルスチェックページのURL。

    • ヘルスチェックステータスコード: ヘルスチェックに対して返されるステータスコード。 有効な値は、http_2xxhttp_3xxhttp_4xxhttp_5xxです。 デフォルト値: http_2xx

その他

アノテーションを使用してNLBインスタンスを設定することもできます。 詳細については、「アノテーションを使用したNLBインスタンスの設定」をご参照ください。

[VPC]

デフォルトのクラスターVPCリージョンとVPC ID。

Vswitch

VPCのインスタンスでサポートされているゾーンでvSwitchを選択するか、新しいvSwitchを作成できます。

既存のNLBインスタンスの使用

[既存のNLBインスタンスを使用] を選択した場合、[既存のNLBインスタンスを使用] のドロップダウンリストから既存のNLBインスタンスを選択できます。 既存のリスナーの上書きを有効にするかどうかも選択できます。 詳細については、「既存のNLBインスタンスの使用」をご参照ください。

重要

既存のNLBインスタンスを使用する場合は、いくつかの制限と使用状況の注意を払う必要があります。 詳細については、「LoadBalancerサービスを設定するための考慮事項」トピックの使用方法の注意事項をご参照ください。

詳細設定

パラメーター

説明

スケジューリングアルゴリズム

有効な値:

  • ラウンドロビン: リクエストはバックエンドサーバーに順番に転送されます。

  • 重み付きラウンドロビン (デフォルト): 重みの大きいバックエンドサーバーは、重みの小さいバックエンドサーバーよりも多くのリクエストを受け取ります。

  • ソースIPハッシュ: ソースIPアドレスに基づくコンシステントハッシングを指定します。 同じ送信元IPアドレスからのリクエストは、同じバックエンドサーバーに配信されます。

  • Four-Element Hashing: 送信元IPアドレス、送信先IPアドレス、送信元ポート、および送信先ポートの各要素に基づくコンシステントハッシングを指定します。 上記の要因に基づいて同じ情報を含むリクエストは、同じバックエンドサーバーに転送されます。

  • QUIC ID Hashing: QUIC IDに基づいてコンシステントハッシングを指定します。 同じQUIC IDを持つリクエストは、同じバックエンドサーバーに転送されます。

  • 重み付き最小接続数: リクエストは、バックエンドサーバーへの接続の重みと数に基づいて転送されます。 2つのバックエンドサーバーの重みが同じ場合、接続数が少ないバックエンドサーバーはより多くのリクエストを受信します。

ヘルスチェック

ヘルスチェック機能を有効にするかどうかを指定します。

  • TCP (デフォルト): TCPヘルスチェックを実行するために、NLBはSYNパケットをバックエンドサーバーに送信して、バックエンドサーバーのポートがリクエストを受信できるかどうかを確認します。

    • ヘルスチェック応答タイムアウト: ヘルスチェックから応答を受け取るまでの待機時間。 バックエンドサーバーが指定されたタイムアウト期間内に応答しない場合、バックエンドサーバーは異常と見なされます。

    • ヘルスチェック間隔: ヘルスチェックが実行される間隔。

    • 正常しきい値: バックエンドサーバーが正常と見なされるまでに、バックエンドサーバーが連続してヘルスチェックに合格する必要がある最小回数。

    • 異常しきい値: バックエンドサーバーが異常と見なされるまでに、バックエンドサーバーが連続してヘルスチェックに合格しない必要がある最小回数。

  • HTTP: HTTPヘルスチェックを実行するために、NLBはHEADまたはGETリクエストをバックエンドサーバーに送信し、バックエンドサーバーが正常かどうかを確認します。

    • ドメイン名: ヘルスチェックに使用されるドメイン名。

      • バックエンドサーバーの内部IP: ヘルスチェックにバックエンドサーバーのプライベートIPアドレスを使用します。 デフォルト値です。

      • カスタムドメイン名: ドメイン名を入力します。

    • ヘルスチェックページのURL。

    • ヘルスチェックステータスコード: ヘルスチェックに対して返されるステータスコード。 有効な値は、http_2xxhttp_3xxhttp_4xxhttp_5xxです。 デフォルト値: http_2xx

その他

アノテーションを使用してNLBインスタンスを設定することもできます。 詳細については、「アノテーションを使用したNLBインスタンスの設定」をご参照ください。

[VPC]

デフォルトのクラスターVPCリージョンとVPC ID。

Vswitch

VPCのインスタンスでサポートされているゾーンでvSwitchを選択するか、新しいvSwitchを作成できます。

次に何をすべきか

サービスを表示、更新、および削除できます。 たとえば、サービスのインターネットに接続するSLBインスタンスを変更できます。

ACKコンソールの使用

  1. ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。

  2. [クラスター] ページで、管理するクラスターの名前をクリックします。 左側のウィンドウで、[ネットワーク] > [サービス] を選択します。

  3. [サービス] ページで、サービスをクリックして詳細を表示するか、サービスの [操作] 列の [更新] または [削除] をクリックして、サービスを更新または削除できます。

kubectlを使う

サービスの更新

  • 方法1: 次のコマンドを実行してサービスを更新します。

    kubectl edit service my-nginx-svc
  • 方法2: サービスを手動で削除し、YAMLファイルを変更してから、サービスを再作成します。

    kubectl apply -f my-nginx-svc.yaml

サービスの表示

次のコマンドを実行して、サービスを表示します。

kubectl get service my-nginx-svc

期待される出力:

NAME           TYPE           CLUSTER-IP    EXTERNAL-IP      PORT(S)        AGE
my-nginx-svc   LoadBalancer   172.21.XX.XX   192.168.XX.XX     80:31599/TCP   5m

サービスの削除

次のコマンドを実行して、サービスを削除します。

kubectl delete service my-nginx-svc