--- title: "Load Balancer インスタンスの連携" slug: "k8s-k8suse-loadbalancer" tags: ["Load Balancer", "Ncloud Kubernetes Service", "VPC"] updated: 2026-09-17T09:31:52Z published: 2026-09-17T09:31:52Z canonical: "guide.ncloud-docs.com/k8s-k8suse-loadbalancer" --- > ## Documentation Index > Fetch the complete documentation index at: https://guide.ncloud-docs.com/llms.txt > Use this file to discover all available pages before exploring further. # Load Balancer インスタンスの連携 VPC環境で利用できます。 Ncloud Kubernetes Serviceを利用するためにサービスを作成する際、そのサービスと連携する Load Balancerインスタンスを自動的に作成できます。 ## Kubernetesと連携する Load Balancerインスタンスの管理 注意 - Kubernetesで作成された NAVERクラウドプラットフォームの Load Balancerは Kubernetesのリソースとして管理します。 - Load Balancerをコンソールまたは APIで直接変更する場合、Kubernetesとのステータス同期が正常に行われないため、予期せぬ問題が発生することがあります。Load Balancer設定変更が必要な場合、必ず Kubernetesリソースを変更する方式で行います。 - コンソールまたは APIを用いた直接変更によって発生した問題には、テクニカルサポートを提供しません。 - 一度作成された Load Balancerのタイプは変更できません。 ### インスタンス作成 Ncloud Kubernetes Serviceと連携する Load Balancerインスタンスを作成するには、サービスマニフェストのタイプを LoadBalancerに指定した後、`service.beta.kubernetes.io/ncloud-load-balancer-layer-type`アノテーションを nplbまたは nlbに設定します。 - nplb: ネットワークプロキシロードバランサ(NPLB)インスタンスが作成されます。 - nlb: ネットワークロードバランサ(NLB)インスタンスが作成されます。 ### インスタンスのプロパティ設定 サービスマニフェストのアノテーションを用いて作成されるインスタンスのプロパティを設定できます。インスタンスのプロパティを設定するには、インスタンスを作成する時に次の表を参照して metadata.annotationsの値を入力します。 - ネットワークプロキシロードバランサ(NPLB) | アノテーション | 説明 | 備考 | | --- | --- | --- | | `service.beta.kubernetes.io/ncloud-load-balancer-layer-type` | ロードバランサのネットワークレイヤータイプを設定 - 次の値の中から1つ選択: nplb, nlb | デフォルト値 nplb | | `service.beta.kubernetes.io/ncloud-load-balancer-size` | ロードバランサの負荷処理性能 - 次の値の中から1つ選択: SMALL、MEDIUM、LARGE、XLARGE | デフォルト値 SMALL | | `service.beta.kubernetes.io/ncloud-load-balancer-internal` | プライベートネットワークタイプのロードバランサ作成を設定 - 次の値の中から1つを選択: `"true"`、`"false"` | デフォルト値 `"false"` | | `service.beta.kubernetes.io/ncloud-load-balancer-retain-public-ip-on-termination` | ロードバランサの削除時に割り当てられたパブリック IPアドレスを保存する設定。パブリック IPアドレスが割り当てられたロードバランサにのみ適用 - 次の値の中から1つ選択: `"true"`、`"false"` | デフォルト値 `"false"` | | `service.beta.kubernetes.io/ncloud-load-balancer-description` | 作成されるロードバランサインスタンスのメモを入力 | - | | `service.beta.kubernetes.io/ncloud-load-balancer-termination-protection` | タイプが LoadBalancerに指定された Serviceを削除する場合、ロードバランサの自動削除を防止する設定 - 次の値の中から1つを選択: `"true"`、`"false"` | デフォルト値 `"false"` | | `service.beta.kubernetes.io/ncloud-load-balancer-subnet-id` | ロードバランサを作成するためのロードバランサ専用サブネットの ID値 | デフォルト値で kube-system内の ncloud-config名の ConfigMap内の lbSubnetNoを使用 | | `service.beta.kubernetes.io/ncloud-load-balancer-ssl-certificate-no` | プロトコルが TLSのリスナーに適用する Certificate Managerの証明書番号 - 証明書番号は Resource Managerの nrnで確認可能(例: nrn:PUB:CertificateManager::000:Certificate/External/${certificateNo}) | - | | `service.beta.kubernetes.io/ncloud-load-balancer-tls-ports` | TLSを適用するポートリスト(例: `"443,6443"`) | デフォルト値`"443"`、コンマで区切られた値を使用可能 | | `service.beta.kubernetes.io/ncloud-load-balancer-tls-min-version` | TLS最小サポートバージョンタイプコード - 次の値の中から1つを選択: TLSV10, TLSV11, TLSV12, TLSV13 | デフォルト値 TLSV10 | | `service.beta.kubernetes.io/ncloud-load-balancer-proxy-protocol` | プロキシプロトコルの有効化有無 - 次の値の中から1つを選択: `"true"`、`"false"` | デフォルト値 `"false"` | | `service.beta.kubernetes.io/ncloud-load-balancer-algorithm-type-code` | Algorithmタイプに Round Robin(RR)、Source Ip Hash(SIPHS)、Least Connection(LC)の中から1つを設定可能 - 次の値の中から1つを選択: RR、SIPHS、LC | デフォルト値 RR | | `service.beta.kubernetes.io/ncloud-load-balancer-enable-skip-acg-update` | ACGアップデートの設定有無 - 次の値の中から1つを選択: `"true"`、`"false"` | デフォルト値 `"false"` | | `service.beta.kubernetes.io/ncloud-load-balancer-idle-timeout` | ロードバランサの Idle Timeoutを設定(1~3600) | デフォルト値60 | | `service.beta.kubernetes.io/ncloud-load-balancer-cipher-suite-list` | リスナーでサポートする Cipher Suiteリスト(例: TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) | デフォルト値リスナーでサポートするすべての cipher suite | | `service.beta.kubernetes.io/ncloud-load-balancer-listener-acl-id.{port}` | リスナーに指定する ACL ID | - | | `service.beta.kubernetes.io/ncloud-load-balancer-healthcheck-port.{port}` | 特定のリスナーポートに対してヘルスチェックに使用するサービスポートを指定 | - | | `service.beta.kubernetes.io/ncloud-load-balancer-healthcheck-interval-seconds.{port}` | 特定のリスナーポートに対してヘルスチェックサイクルを秒単位に指定 | 未指定時のデフォルト値`30` | | `service.beta.kubernetes.io/ncloud-load-balancer-healthy-threshold-count.{port}` | 特定のリスナーポートに対してヘルスチェック成功しきい値数を指定 | 未指定時のデフォルト値`2` | | `service.beta.kubernetes.io/ncloud-load-balancer-unhealthy-threshold-count.{port}` | 特定のリスナーポートに対してヘルスチェック失敗しきい値数を指定 | 未指定時のデフォルト値`2` | - ネットワークロードバランサ(NLB) | アノテーション | 説明 | 備考 | | --- | --- | --- | | `service.beta.kubernetes.io/ncloud-load-balancer-layer-type` | ロードバランサのネットワークレイヤータイプを設定 - 次の値の中から1つを選択: nplb, nlb | デフォルト値 nplb - ネットワークロードバランサを作成するには nlbを入力 | | `service.beta.kubernetes.io/ncloud-load-balancer-size` | ロードバランサの負荷処理性能 - 次の値の中から1つを選択: SMALL、MEDIUM、LARGE、DYNAMIC | デフォルト値 DYNAMIC - 新規作成時に DYNAMICのみ設定可能 - DYNAMICタイプでない場合、一部のロードバランサに限って DYNAMICアノテーションの適用時に DYNAMICタイプに変更可能 - DYNAMICタイプから他のタイプに変更不可 | | `service.beta.kubernetes.io/ncloud-load-balancer-internal` | プライベートネットワークタイプのロードバランサ作成を設定 - 次の値の中から1つを選択: `"true"`、`"false"` | デフォルト値 `"false"` | | `service.beta.kubernetes.io/ncloud-load-balancer-retain-public-ip-on-termination` | ロードバランサの削除時に割り当てられたパブリック IPアドレスを保存する設定。パブリック IPアドレスが割り当てられたロードバランサにのみ適用 - 次の値の中から1つ選択: `"true"`、`"false"` | デフォルト値 `"false"` | | `service.beta.kubernetes.io/ncloud-load-balancer-description` | 作成されるロードバランサインスタンスのメモを入力 | - | | `service.beta.kubernetes.io/ncloud-load-balancer-termination-protection` | タイプが LoadBalancerに指定された Serviceを削除する場合、ロードバランサの自動削除を防止する設定 - 次の値の中から1つ選択: `"true"`、`"false"` | デフォルト値 `"false"` | | `service.beta.kubernetes.io/ncloud-load-balancer-inbound-source` | ACGルールの Inboundアクセスソースとして使用する値 - 例: 119.194.195.143/32,143.248.12.77/32 | デフォルト値 0.0.0.0/0 | | `service.beta.kubernetes.io/ncloud-load-balancer-subnet-id` | ロードバランサを作成するためのロードバランサ専用サブネットの ID値 | デフォルト値として kube-system内の ncloud-config名の ConfigMap内の lbSubnetNoを使用 | | `service.beta.kubernetes.io/ncloud-load-balancer-algorithm-type-code` | Algorithmタイプに Hash(MH)、Round Robin(RR)の中から1つを設定可能 - 次の値の中から1つを選択: MH, RR | デフォルト値 MH | | `service.beta.kubernetes.io/ncloud-load-balancer-enable-skip-acg-update` | ACGアップデートの設定有無 - 次の値の中から1つを選択: `"true"`、`"false"` | デフォルト値 `"false"` | | `service.beta.kubernetes.io/ncloud-load-balancer-sticky-session` | Sticky Sessionの設定有無 - 次の値の中から1つを選択: `"true"`、`"false"` | デフォルト値 `"false"` | | `service.beta.kubernetes.io/ncloud-load-balancer-listener-acl-id.{port}` | リスナーに指定する ACL ID | - | | `service.beta.kubernetes.io/ncloud-load-balancer-healthcheck-port.{port}` | 特定のリスナーポートに対してヘルスチェックに使用するサービスポートを指定 | - | | `service.beta.kubernetes.io/ncloud-load-balancer-healthcheck-interval-seconds.{port}` | 特定のリスナーポートに対してヘルスチェックサイクルを秒単位に指定 | 未指定時のデフォルト値`30` | | `service.beta.kubernetes.io/ncloud-load-balancer-healthy-threshold-count.{port}` | 特定のリスナーポートに対してヘルスチェック成功しきい値数を指定 | 未指定時のデフォルト値`2` | | `service.beta.kubernetes.io/ncloud-load-balancer-unhealthy-threshold-count.{port}` | 特定のリスナーポートに対してヘルスチェック失敗しきい値数を指定 | 未指定時のデフォルト値`2` | | `service.beta.kubernetes.io/ncloud-load-balancer-enable-acl-operator` | ACL関連機能の ACL-operatorへの委任有無。有効化時に acl機能を無効化 - 次の値の中から1つを選択: `"true"`、`"false"` | デフォルト値 `"false"` | #### ロードバランサの Subnetタイプに応じたパブリックとプライベート IPアドレスの割り当て方式 ロードバランサ Subnetは **Public Subnet**と **Private Subnet**の2つのタイプがあり、パブリック IPアドレスとプライベート IPアドレスが付与されたロードバランサを作成するには、各々のタイプが必要です。 ロードバランサを作成すると、kube-system名前空間の ncloud-config ConfigMapに定義された`lbPublicSubnetNo`、`lbSubnetNo`フィールドの Subnet IDが使用されます。他の Subnetを使用するには、`service.beta.kubernetes.io/ncloud-load-balancer-subnet-id`アノテーションに希望する Subnet IDを指定します。 **1.Public Subnet(Internet Gateway専用)** パブリック IPアドレスが付与されたロードバランサを作成するには Public Subnetが必要です。NAVERクラウドプラットフォームコンソール VPC環境で、**Menu** > **All Services** > **Networking** > **VPC** > **Public IP**メニューを順にクリックしてパブリック IPアドレスを申し込んだ後、ロードバランサに割り当てます。パブリック IPアドレスを指定しないと、新規パブリック IPアドレスが自動的に申し込まれます。 **2. Private Subnet** プライベート IPアドレスが割り当てられたロードバランサを VPC内部に作成するには、Private Subnetが必要です。 #### マルチゾーン Subnet IDを指定 マルチゾーンクラスタで NPLB(ネットワークプロキシロードバランサ)を作成する場合、各ゾーンのロードバランサ専用 Subnet IDを `service.beta.kubernetes.io/ncloud-load-balancer-subnet-id` アノテーションに入力できます。マルチゾーンクラスタで NPLB Subnet IDを指定する場合、以下の内容をご参照ください。 - 2つ以上を入力する場合、コンマ(,)で区切ります。 - 各ゾーンごとにロードバランサ専用サブネットは、1つのみ指定できます。 - 同じゾーンに属する Subnet IDを2つ以上入力すると、ロードバランサ作成に失敗します。 - `subnet-id` 値はロードバランサを作成する場合のみ適用されます。作成されたロードバランサのサブネットを変更するには、ロードバランサを再度作成する必要があります。 - マルチゾーンサブネット指定は、NPLBでのみサポートします。NLB(ネットワークロードバランサ)は、マルチゾーンサブネット指定をサポートしません。 - マルチゾーンサブネットを指定する場合、パブリック IPアドレスを指定して割り当てられません。 ``` metadata: annotations: service.beta.kubernetes.io/ncloud-load-balancer-layer-type: "nplb" service.beta.kubernetes.io/ncloud-load-balancer-subnet-id: "123456,234567" ``` ### インスタンスプロパティ設定のユースケース インスタンスのプロパティ設定に関するユースケースは、[Load Balancerプロパティ設定のユースケース](/docs/ja/k8s-k8sexamples-loadbalancer)をご参照ください。 ### 作成されたロードバランサインスタンスの External IPを確認 作成されたインスタンスの external IPを確認するには、以下のコマンドを実行します。 ``` $ kubectl --kubeconfig $KUBE_CONFIG get svc example-service ``` EXTERNAL-IP列に当該インスタンスの external IPが表示されます。以下は、当該コマンドを使用して external IPを照会したユースケースです。 ``` $ kubectl --kubeconfig $KUBE_CONFIG get svc example-service NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE example-service LoadBalancer 172.16.101.104 10.39.10.118 8765:30365/TCP 2m11s ``` ### ロードバランサ管理を一時停止 `lb.ncloud.naver.com/pause: "true"`は Kubernetes 1.36以上の KVMクラスタで使用できる一時停止オプションです。この値が設定されると、コントローラの spec/provider reconcileが一時停止されます。 | 適用対象 | 動作 | | --- | --- | | Service | - pause中には Service変更が Load Balancer設定に未反映 - pauseステータスで Serviceを削除しても、既に作成された NCloud LB/TGは削除せずに維持 | | Service削除中 | - pauseが設定されている場合、`service.kubernetes.io/load-balancer-cleanup` finalizerを削除して NCloud LB/TGクリーンアップを待たない | 注意 pauseは既に作成された NCloud LB/TGを保存するためのオプションです。pauseステータスでは欠落した Load Balancerリソースを新しく作成しません。変更反映を再開するには、入力リソースで pauseアノテーションを削除します。 ### インスタンス削除 LoadBalancerタイプで作成した Kubernetesサービスを削除すると、連携された Load Balancerインスタンスが自動的に一緒に削除されます。削除する方法は、次の通りです。 1. 以下のコマンドを実行して作成された Kubernetesサービスを確認します。 - 結果値の TYPE列で各サービスのタイプを確認できます。 ``` $ kubectl --kubeconfig $KUBE_CONFIG get service ``` 1. 以下のコマンドを実行して LoadBalancerタイプのサービスを削除します。 ``` $ kubectl --kubeconfig $KUBE_CONFIG delete service my-nginx ```