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
を使用してイングレス・ゲートウェイ・デプロイメントを更新するには: - 必要に応じて構成テキストを変更します。
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のドキュメントを参照してください。
イングレス・ゲートウェイ・デプロイメントのリストの取得
ネームスペースでイングレス・ゲートウェイ・デプロイメントのリストを取得するには、次のコマンドを使用します:
kubectl get ingressgatewaydeployments -n <namespace>
受信ゲートウェイ・デプロイメントの表示
ネームスペース内の特定のイングレス・ゲートウェイ・デプロイメントの詳細を表示するには、次のコマンドを使用します:
kubectl describe ingressgatewaydeployment <name> -n <namespace>
Ingress Gatewayデプロイメントの削除
ネームスペース内の特定のイングレス・ゲートウェイ・デプロイメントを削除するには、次のコマンドを使用します:
kubectl delete ingressgatewaydeployment <name> -n <namespace>