ロードバランサー商品連動ガイド

Kubernetesのサービスによるロードバランサー商品連動

ネイバークラウドプラットフォームのKubernetes Serviceは、Kubernetesサービス作成時にタイプをLoadBalancerに指定すると、ロードバランサーインスタンスを自動的に作成します。 ロードバランサの設定はサービスマニフェスト(Manifest)のアノテーション(Annotation)によって行います。

次のロードバランサ設定のためのアノテーションを提供します。

設定値 説明 備考
service.beta.kubernetes.io/ncloud-load-balancer-backend-protocol ロードバランサプロトコル
次の値のいずれか選択 : tcp, http, https, ssl
基本値 tcp
service.beta.kubernetes.io/ncloud-load-balancer-proxy-protocol プロキシプロトコルを有効にするかどうか。
次の値のいずれかを選択: true/false
ロードバランサプロトコルの値がsslあるいはtcpで選択されているときに有効。
service.beta.kubernetes.io/ncloud-load-balancer-internal 私設ネットワークタイプのロードバランサ生成設定。
次の値のいずれかを選択 : true/false
基本値 false
service.beta.kubernetes.io/ncloud-load-balancer-ssl-cert ロードバランサプロトコルがhttpsあるいはsslのときのlistener構成のためのSSL Certificateの名前 Certificate Manager 商品に登録されている認証書の名前を入力
service.beta.kubernetes.io/ncloud-load-balancer-ssl-ports ロードバランサインスタンスがhttpsあるいはsslプロトコルであるとき、追加的にインスタンスに割り当てられるポート入力。
','で区切って入力
入力例: "443,6443"
service.beta.kubernetes.io/ncloud-load-balancer-l7-healthcheck-path ロードバランサプロトコルがhttpあるいはhttpsのとき、L7 HealthcheckのためのPath 基本値 "/"
service.beta.kubernetes.io/ncloud-load-balancer-description 作成されるロードバランサーインスタンスのメモ入力
service.beta.kubernetes.io/ncloud-load-balancer-algorithm-type ロードバランシングアルゴリズム
次の値のいずれか選択 : RR(ROUND ROBIN), LC(LEAST_CONNECTION), SIPHS(Source IP Hash)
基本値 RR
service.beta.kubernetes.io/ncloud-load-balancer-termination-protection タイプがLoad Balancerに指定されたServiceを除去する際、ロードバランサーを自動除去することを防止するオプション 基本値 false

クライアントのIPを確認する場合には、service.beta.kubernetes.ioの値をtrueと宣言します。 詳細は、[Ingressチュートリアル]の参考事項を参照してください。

ロードバランサインスタンス作成

Kubernetesのサービスを通じてロードバランサインスタンスを生成するには、サービスマニフェストのタイプを次のように指定します。

"type": "LoadBalancer"

以下は、そのタイプが適用された yaml 設定ファイルの例です。 私設のネットワーク タイプのロード バランサ インスタンスを生成するためのアノテーションが追加されていることを確認します。

kind: Service
apiVersion: v1
metadata:
  name: example-service
  annotations:
    service.beta.kubernetes.io/ncloud-load-balancer-internal: "true"
spec:
  ports:
  - port: 8765
    targetPort: 9376
  selector:
    app: example
  type: LoadBalancer

上記の内容をnks-lb.ymlにし、kubectl apply -f nks-lb.ymlを通じて配布すると、NAVERクラウドプラットフォームのロードバランサーインスタンスが自動的に作成されます。 生成には水分がかかることがあります。

生成されたロードバランサ インスタンスの私設 IP アドレスを確認するためには、以下のコマンドを利用します。 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

kubectl exposeコマンドを利用したロードバランサインスタンス作成

前述した方法以外にも、kubectl exposeコマンドと--type=LoadBalancerフラグを利用してロードバランサインスタンスを生成することができます。

ロード バランサ インスタンスの生成を例題するため、以下のコマンドを利用して、my-nginx名を持つ Deployment を配布します。 この配布でNginxパドを駆動させることができます。

$ kubectl --kubeconfig=$KUBE_CONFIG create deployment --image nginx my-nginx

以下のコマンドを利用して、ロード バランサ インスタンスを作成することができます。

$ kubectl --kubeconfig=$KUBE_CONFIG expose deployment my-nginx --port=80 --type=LoadBalancer

ロードバランサインスタンスを削除する

ロードバランサタイプで作成されたkubernetesサービスリソースは、自動的に作成されたネイバークラウドプラットフォームのロードバランサ(Load Balancer)インスタンスと連動されます。 kerbernetesで該当タイプのサービスを削除する場合、自動的にロードバランサインスタンスも削除されます。

以下のコマンドから、生成されたサービスを確認することができます。 サービスに対するタイプはTYPE 列で確認できます。

$ kubectl --kubeconfig=$KUBE_CONFIG get service
NAME         TYPE           CLUSTER-IP       EXTERNAL-IP   PORT(S)        AGE
my-nginx     LoadBalancer   172.16.188.167   slb-904582.ncloudslb.com     80:32681/TCP   21s

ロード バランサ タイプの kubernetes サービス リソースを削除するために、次のコマンドを利用します。

$ kubectl --kubeconfig=$KUBE_CONFIG delete service my-nginx
service "my-nginx" deleted

kubernetesサービスリソースが削除されると同時に、ロードバランサインスタンスも削除されます。 この作業には数分かかることがあります。

に対する検索結果は~件です。 ""

    に対する検索結果がありません。 ""

    処理中...