kubectlを使用したイングレス・ゲートウェイ・デプロイメント・バインディングの管理

kubectlコマンドを使用すると、イングレス・ゲートウェイ・デプロイメントを作成、更新、移動、リスト、表示および削除できます。次のトピックでは、kubectlを使用してこれらの操作を管理する方法について説明します。

イングレス・ゲートウェイ・デプロイメントのKubernetes構成オプションの表示

カスタム・リソース定義(CRD)を表示することで、Kubernetes CLIイングレス・ゲートウェイ・デプロイメントのYAML構成オプションを表示できます。次のコマンドを使用します:

kubectl describe crd ingressgatewaydeployments.servicemesh.oci.oracle.com

CRDでは、spec:schema:openAPIV3Schema:properties:specの下のYAML構成ファイルで使用されているフィールドが表示されます。CRD出力には、フィールド・タイプ、範囲および制限に関する情報も含まれます。次の項では、YAML構成ファイルの例を示します。

イングレス・ゲートウェイ・デプロイメントの作成、更新または移動

イングレス・ゲートウェイ・デプロイメントを作成するには、kubectl applyコマンドを使用します。

次のいずれかのコマンドを使用して、イングレス・ゲートウェイ・デプロイメントを作成します。

  • イングレス・ゲートウェイ名を使用して、イングレス・ゲートウェイ・デプロイメントを作成します。

    kubectl apply -f - <<EOF
    apiVersion: servicemesh.oci.oracle.com/v1beta1
    kind: IngressGatewayDeployment
    metadata:
      name: <sample-ingress-gateway>-deployment
      namespace: <sample-namespace>
    spec:
      ingressGateway:
        ref:
          name: <sample-ingress-gateway>
      deployment:
        autoscaling:
          minPods: 1
          maxPods: 1
      ports:
        - protocol: TCP
          port: 8080
          serviceport: 80
      service:
        type: LoadBalancer
      secrets:
        - secretName: secret-tls-secret
    EOF
  • イングレス・ゲートウェイOCIDを使用して、イングレス・ゲートウェイ・デプロイメントを作成します。

    kubectl apply -f - <<EOF
    apiVersion: servicemesh.oci.oracle.com/v1beta1
    kind: IngressGatewayDeployment
    metadata:
      name: <sample-ingress-gateway>-deployment
      namespace: <sample-namespace>
    spec:
      ingressGateway:
        id: <ocid_of_referenced_ig_created_from_cli>
      deployment:
        autoscaling:
          minPods: 1
          maxPods: 1
      ports:
        - protocol: TCP
          port: 8080
          serviceport: 80
      service:
        type: LoadBalancer
      secrets:
        - secretName: secret-tls-secret
    EOF
kubectlを使用してイングレス・ゲートウェイ・デプロイメントを更新するには:
  1. 必要に応じて構成テキストを変更します。
  2. applyコマンドを再度実行します。

イングレス・ゲートウェイ・デプロイメントを別のコンパートメントに移動します。リンクされたイングレス・ゲートウェイを別のコンパートメントに移動します。

イングレス・ゲートウェイ・デプロイメント用のLoad Balancer機能の構成

イングレス・ゲートウェイ・デプロイメントの水平自動スケーリング機能を構成するには、deployment:キーの下に次のキーを追加します。

spec:
  deployment:
    autoscaling:
      minPods: 1
      maxPods: 4
    requests:
      memory: "64Mi"
      cpu: "250m"
    limits:
      memory: "128Mi"
      cpu: "500m"

次の説明は、例の重要なキーを示しています。

  • deployment:autoscaling:maxPods 1つ上の値を設定して、スケール・アップ機能を有効にします。前述の例では、イングレス・ゲートウェイは最大4つのポッドまでスケーリングできます。
  • deployment:requests:memory:コンテナの最小メモリー・サイズ。前述の例では、コンテナは64MBから始まります。
  • deployment:requests:CPU:コンテナの最小CPU使用率しきい値。前述の例では、値は仮想CPUの25%使用率を表します。複数のポッドがデプロイされている場合、このしきい値を下回るコンテナはスケール・ダウンします。
  • deployment:limits:memory:コンテナの最大メモリー・サイズ。前述の例では、コンテナは128MBまで拡張できます。
  • deployment:limits:CPU:コンテナの最大CPU使用率しきい値。前述の例では、値は仮想CPUの50%使用率を表します。コンテナがこのしきい値に達すると、スケール・アップされます。

イングレス・ゲートウェイ・デプロイメントのサービス注釈の追加

service.annotationsフィールドを使用して、ロード・バランサのサービス注釈を指定します。次のYAMLファイル・スニペットの例を次に示します。

spec:
  service:
    type: LoadBalancer
    annotations:
      oci.oraclecloud.com/load-balancer-type: "lb"
      service.beta.kubernetes.io/oci-load-balancer-shape: "400Mbps"
      service.beta.kubernetes.io/oci-load-balancer-subnet1: "ocid..."
      service.beta.kubernetes.io/oci-load-balancer-subnet2: "ocid..."
      oci.oraclecloud.com/loadbalancer-policy: "IP_HASH"

サポートされている注釈の完全なリストは、GitHubのドキュメントを参照してください。

Load Balancer注釈

イングレス・ゲートウェイ・デプロイメントのリストの取得

ネームスペースでイングレス・ゲートウェイ・デプロイメントのリストを取得するには、次のコマンドを使用します:

kubectl get ingressgatewaydeployments -n <namespace>

受信ゲートウェイ・デプロイメントの表示

ネームスペース内の特定のイングレス・ゲートウェイ・デプロイメントの詳細を表示するには、次のコマンドを使用します:

kubectl describe ingressgatewaydeployment <name> -n <namespace>

Ingress Gatewayデプロイメントの削除

ネームスペース内の特定のイングレス・ゲートウェイ・デプロイメントを削除するには、次のコマンドを使用します:

kubectl delete ingressgatewaydeployment <name> -n <namespace>