ロードバランサ連動ガイド
    • PDF

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

    • PDF

    Article Summary

    Classic環境で利用できます。

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

    ネイバークラウドプラットフォームのNcloud 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サービスリソースが削除されると同時に、ロードバランサインスタンスも削除されます。 この作業には数分かかることがあります。


    この記事は役に立ちましたか?

    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.