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"