OCIのロード・バランサ

Verrazzanoシステムおよびアプリケーション・エンドポイントのOCIでのロード・バランサのカスタマイズ

Verrazzanoでは、インストール時にKubernetesに次のロード・バランサを設定します:

  • NGINXイングレス用のロード・バランサ
  • Istioイングレス用のロード・バランサ

Verrazzanoでは、OCI Cloud Controller Manager (OCI-CCM)で定義された注釈を使用して、Oracle Cloud Infrastructure (OCI)によって割り当てられたロード・バランサをカスタマイズできます。様々なロード・バランサのカスタマイズ注釈の詳細は、ここでドキュメントを参照してください。

このドキュメントでは、これらの注釈を使用してVerrazzanoロード・バランサの次の設定をカスタマイズする方法について説明します:

  • ロード・バランサ・シェイプ
  • ロード・バランサの最小/最大帯域幅
  • プライベートIPアドレスおよびサブネットの配置

ロード・バランサ・シェイプのカスタマイズ

インストール時に、Verrazzanoを使用すると、作成されたロード・バランサのシェイプおよびサイズをカスタマイズできます。OCIロード・バランサのシェイプは、最大合計帯域幅を指定します。デフォルトでは、ロード・バランサは100Mbpsのシェイプで作成されます。その他のシェイプ(400Mbpsや8000Mbpsなど)も使用できます。

サービス制限およびシェイプの詳細は、ここを参照してください。

たとえば、minおよびmax帯域幅を持つflexible NGINXロード・バランサを次のように設定できます:

apiVersion: install.verrazzano.io/v1beta1
kind: Verrazzano
metadata:
  name: example-verrazzano
spec:
  profile: dev
  components:
    ingress:
      type: LoadBalancer
      overrides:
        - values:
            controller:
              service:
                annotations:
                  service.beta.kubernetes.io/oci-load-balancer-shape: flexible
                  service.beta.kubernetes.io/oci-load-balancer-shape-flex-max: "100"
                  service.beta.kubernetes.io/oci-load-balancer-shape-flex-min: "100"

たとえば、minおよびmax帯域幅を持つflexible Istioロード・バランサを次のように設定できます:

apiVersion: install.verrazzano.io/v1beta1
kind: Verrazzano
metadata:
  name: example-verrazzano
spec:
  profile: dev
  components:
    istio:
      overrides:
        - values:
            apiVersion: install.istio.io/v1alpha1
            kind: IstioOperator
            spec:
              components:
                ingressGateways:
                  - enabled: true
                    name: istio-ingressgateway
                    k8s:
                      serviceAnnotations:
                        service.beta.kubernetes.io/oci-load-balancer-shape: flexible
                        service.beta.kubernetes.io/oci-load-balancer-shape-flex-max: "100"
                        service.beta.kubernetes.io/oci-load-balancer-shape-flex-min: "100"

ロード・バランサでのプライベートIPアドレスの使用

インストール時に、Verrazzanoを使用すると、作成されたロード・バランサのIPアドレスおよびサブネットをカスタマイズできます。これを実現するには、ここに記載されているように、NGINXおよびIstioロード・バランサ・サービスのOCI-CCM注釈を使用します。

次の例では、OCID ocid1.subnet.oc1.phx.aaaa..sdjxaで識別されるプライベート・サブネットにプライベート・ロード・バランサIPアドレスを持つようにNGINXロード・バランサ・サービスを構成し、Istioにデフォルトの(パブリック)ロード・バランサ構成を使用します。

apiVersion: install.verrazzano.io/v1beta1
kind: Verrazzano
metadata:
  name: example-verrazzano
spec:
  profile: dev
  components:
    ingress:
      type: LoadBalancer
      overrides:
        - values:
            controller:
              service:
                annotations:
                  service.beta.kubernetes.io/oci-load-balancer-internal: "true"
                  service.beta.kubernetes.io/oci-load-balancer-subnet1: "ocid1.subnet.oc1.phx.aaaa..sdjxa"

次の例では、OCID ocid1.subnet.oc1.phx.aaaa..sdjxaで識別されるプライベート・サブネットにプライベート・ロード・バランサIPアドレスを持つようにIstioイングレス・ゲートウェイ・サービスを構成し、NGINXにデフォルトの(パブリック)ロード・バランサ構成を使用します。

apiVersion: install.verrazzano.io/v1beta1
kind: Verrazzano
metadata:
  name: example-verrazzano
spec:
  profile: dev
  components:  
    istio:
      overrides:
        - values:
            apiVersion: install.istio.io/v1alpha1
            kind: IstioOperator
            spec:
              components:
                ingressGateways:
                  - enabled: true
                    name: istio-ingressgateway
                    k8s:
                      serviceAnnotations:
                        service.beta.kubernetes.io/oci-load-balancer-internal: "true"
                        service.beta.kubernetes.io/oci-load-balancer-subnet1: "ocid1.subnet.oc1.phx.aaaa..sdjxa"

次の例では、OCID ocid1.subnet.oc1.phx.aaaa..sdjxaで識別されるプライベート・サブネットにプライベート・ロード・バランサIPアドレスを持つように、NGINXとIstioの両方を構成します。

apiVersion: install.verrazzano.io/v1beta1
kind: Verrazzano
metadata:
  name: example-verrazzano
spec:
  profile: dev
  components:
    ingress:
      type: LoadBalancer
      overrides:
        - values:
            controller:
              service:
                annotations:
                  service.beta.kubernetes.io/oci-load-balancer-internal: "true"
                  service.beta.kubernetes.io/oci-load-balancer-subnet1: "ocid1.subnet.oc1.phx.aaaa..sdjxa"
    istio:
      overrides:
        - values:
            apiVersion: install.istio.io/v1alpha1
            kind: IstioOperator
            spec:
              components:
                ingressGateways:
                  - enabled: true
                    name: istio-ingressgateway
                    k8s:
                      serviceAnnotations:
                        service.beta.kubernetes.io/oci-load-balancer-internal: "true"
                        service.beta.kubernetes.io/oci-load-balancer-subnet1: "ocid1.subnet.oc1.phx.aaaa..sdjxa"