OKEでのロード・バランサのカスタマイズ

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

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

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

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

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

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

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

インストール時に、Verrazzanoを使用すると、作成されたロード・バランサのシェイプおよびサイズをカスタマイズできます。OCIは、動的シェイプを使用する柔軟なロード・バランサを提供します:

  • 10 Mbps
  • 100 Mbps
  • 400 Mbps
  • 8,000 Mbps

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

たとえば、10Mbpsを使用してNGINXロード・バランサを次のように設定できます:

apiVersion: install.verrazzano.io/v1alpha1
kind: Verrazzano
metadata:
  name: example-verrazzano
spec:
  profile: dev
  environmentName: default
  components:
    ingress:
      type: LoadBalancer
      nginxInstallArgs:
      - name: controller.service.annotations."service\.beta\.kubernetes\.io/oci-load-balancer-shape"
        value: "10Mbps"   

たとえば、10Mbpsを使用してIstioロード・バランサを次のように設定できます:

apiVersion: install.verrazzano.io/v1alpha1
kind: Verrazzano
metadata:
  name: example-verrazzano
spec:
  profile: dev
  environmentName: default
  components:
    ingress:
      type: LoadBalancer
      istioInstallArgs:
      - name: gateways.istio-ingressgateway.serviceAnnotations."service\.beta\.kubernetes\.io/oci-load-balancer-shape"
        value: "10Mbps"

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

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

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

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

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

apiVersion: install.verrazzano.io/v1alpha1
kind: Verrazzano
metadata:
  name: example-verrazzano
spec:
  profile: dev
  environmentName: default
  components:
    ingress:
      type: LoadBalancer      
    istio:
      istioInstallArgs:
        - name: gateways.istio-ingressgateway.serviceAnnotations."service\.beta\.kubernetes\.io/oci-load-balancer-internal"
          value: "true"
        - name: gateways.istio-ingressgateway.serviceAnnotations."service\.beta\.kubernetes\.io/oci-load-balancer-subnet1"
          value: "ocid1.subnet.oc1.phx.aaaa..sdjxa"

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

apiVersion: install.verrazzano.io/v1alpha1
kind: Verrazzano
metadata:
  name: example-verrazzano
spec:
  profile: dev
  environmentName: default
  components:
    ingress:
      type: LoadBalancer
      nginxInstallArgs:
      - name: controller.service.annotations."service\.beta\.kubernetes\.io/oci-load-balancer-internal"
        value: "true"
      - name: controller.service.annotations."service\.beta\.kubernetes\.io/oci-load-balancer-subnet1"
        value: "ocid1.subnet.oc1.phx.aaaa..sdjxa"
    istio:
      istioInstallArgs:
      - name: gateways.istio-ingressgateway.serviceAnnotations."service\.beta\.kubernetes\.io/oci-load-balancer-internal"
        value: "true"
      - name: gateways.istio-ingressgateway.serviceAnnotations."service\.beta\.kubernetes\.io/oci-load-balancer-subnet1"
        value: "ocid1.subnet.oc1.phx.aaaa..sdjxa"