最新のコンテンツが反映されていません。早急にアップデート内容をご提供できるよう努めております。最新のコンテンツ内容は韓国語ページをご参照ください。
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 Cloud 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 |
ロードバランサのネットワークレイヤータイプを設定
|
デフォルト値 nplb |
service.beta.kubernetes.io/ncloud-load-balancer-size |
ロードバランサの負荷処理性能
|
デフォルト値 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アドレスが割り当てられたロードバランサにのみ適用
|
デフォルト値 "false" |
service.beta.kubernetes.io/ncloud-load-balancer-description |
作成するロードバランサインスタンスについてメモを入力 | - |
service.beta.kubernetes.io/ncloud-load-balancer-termination-protection |
タイプが LoadBalancerに指定された Serviceを削除する場合、ロードバランサの自動削除を防止する設定
|
デフォルト値 "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の証明書番号
|
- |
service.beta.kubernetes.io/ncloud-load-balancer-tls-ports |
TLSを適用するポートリスト。e.g. "443,6443" | デフォルト値 "443"、コンマで区切られた値を使用可能 |
service.beta.kubernetes.io/ncloud-load-balancer-tls-min-version |
TLS最小サポートバージョンタイプコード
|
デフォルト値 TLSV10 |
service.beta.kubernetes.io/ncloud-load-balancer-proxy-protocol |
プロキシプロトコルの有効化有無
|
デフォルト値 "false" |
service.beta.kubernetes.io/ncloud-load-balancer-algorithm-type-code |
Algorithmタイプに Round Robin(RR)、Source Ip Hash(SIPHS)、Least Connection(LC)の中から1つを設定可能
|
デフォルト値 RR |
service.beta.kubernetes.io/ncloud-load-balancer-enable-skip-acg-update |
ACGアップデートの設定有無
|
デフォルト値 "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 | - |
- ネットワークロードバランサ(NLB)
| アノテーション | 説明 | 備考 |
|---|---|---|
service.beta.kubernetes.io/ncloud-load-balancer-layer-type |
ロードバランサのネットワークレイヤータイプを設定
|
デフォルト値 nplb
|
service.beta.kubernetes.io/ncloud-load-balancer-size |
ロードバランサの負荷処理性能
|
デフォルト値 DYNAMIC
|
service.beta.kubernetes.io/ncloud-load-balancer-internal |
プライベートネットワークタイプのロードバランサ作成を設定
|
デフォルト値 "false" |
service.beta.kubernetes.io/ncloud-load-balancer-retain-public-ip-on-termination |
ロードバランサの削除時に割り当てられたパブリック IPアドレスを保存する設定。パブリック IPアドレスが割り当てられたロードバランサにのみ適用
|
デフォルト値 "false" |
service.beta.kubernetes.io/ncloud-load-balancer-description |
作成するロードバランサインスタンスについてメモを入力 | - |
service.beta.kubernetes.io/ncloud-load-balancer-termination-protection |
タイプが LoadBalancerに指定された Serviceを削除する場合、ロードバランサの自動削除を防止する設定
|
デフォルト値 "false" |
service.beta.kubernetes.io/ncloud-load-balancer-inbound-source |
ACGルールの Inboundアクセスソースとして使用する値
|
デフォルト値 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つを設定可能
|
デフォルト値 MH |
service.beta.kubernetes.io/ncloud-load-balancer-enable-skip-acg-update |
ACGアップデートの設定有無
|
デフォルト値 "false" |
service.beta.kubernetes.io/ncloud-load-balancer-sticky-session |
Sticky Sessionの設定有無
|
デフォルト値 "false" |
service.beta.kubernetes.io/ncloud-load-balancer-listener-acl-id.{port} |
リスナーに指定する ACL ID | - |
service.beta.kubernetes.io/ncloud-load-balancer-healthcheck-port.{port} |
特定のリスナーポートに対してヘルスチェックに使用するポートを指定 | - |
ロードバランサの Subnetタイプに応じたパブリックとプライベート IPアドレスの割り当て方式
ロードバランサ Subnetには Public Subnetと Private Subnetの2つのタイプがあります。各タイプは、パブリックとプライベート IPアドレスが付与されたロードバランサを作成するために必要です。ロードバランサを作成する際、kube-system名前空間内の ncloud-config ConfigMapで定義された lbPublicSubnetNoと lbSubnetNoフィールドにある Subnet IDを使用します。この Subnet IDはロードバランサを作成する時、service.beta.kubernetes.io/ncloud-load-balancer-subnet-id annotationを利用して他の Subnet IDを使うように指定できます。
1. Public Subnet(Internet Gateway専用)
パブリック IPアドレスが付与されたロードバランサを作成するには、Public Subnetが必要です。NAVERクラウドプラットフォームコンソール VPC環境の
> Services > Networking > VPC > Public IPメニューからパブリック IPアドレスを申し込み、これをロードバランサに割り当てることができます。パブリック IPアドレスを指定しないと、新規パブリック IPアドレスが申し込まれます。
2. Private Subnet
VPC内でロードバランサをプライベート IPアドレスが割り当てられた Private Subnetに作成するには、そのサブネットが必要です。
インスタンスプロパティ設定のユースケース
インスタンスのプロパティ設定に関するユースケースは、Load Balancerプロパティ設定のユースケースをご参照ください。
作成されたロードバランサインスタンスの 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
インスタンス削除
LoadBalancerタイプで作成した Kubernetesサービスを削除すると、連携された Load Balancerインスタンスが自動的に一緒に削除されます。
LoadBalancerタイプで作成した Kubernetesサービスを確認して削除する方法は、次の通りです。
- 以下のコマンドを実行して作成された Kubernetesサービスを確認します。
- 結果値の TYPE列で各サービスのタイプを確認できます。
$ kubectl --kubeconfig $KUBE_CONFIG get service
- 下記のコマンドを実行して LoadBalancerタイプのサービスを削除します。
$ kubectl --kubeconfig $KUBE_CONFIG delete service my-nginx