受信ゲートウェイの作成
サービス・メッシュのイングレス・ゲートウェイを作成します。
ingress-gateway create
で使用可能な操作を確認するには、次を使用します:oci service-mesh ingress-gateway create -h
CLIを使用してイングレス・ゲートウェイを作成するには、
oci service-mesh ingress-gateway create
を実行してイングレス・ゲートウェイを作成します:oci service-mesh ingress-gateway create --name <name> --compartment-id <compartmentId> --mesh-id <meshId> --hosts <hosts> --access-logging <accessLogging> --description <description>
説明:
<name>
イングレス・ゲートウェイの名前。名前は同じサービス・メッシュ内で一意である必要があり、作成後に変更できません。名前は、文字またはアンダースコアで始まり、文字、数字、ハイフンまたはアンダースコアが続く必要があります。長さは1から255文字です。機密情報を入力しないでください。<compartmentId>
: イングレス・ゲートウェイが属するコンパートメントのOCID。<meshId>
: このインターネット・ゲートウェイが作成されるサービス・メッシュのOCID。<hosts>
: このゲートウェイがバインドするホスト名とそのリスナー構成の配列。<name>
: ホストの使いやすい名前。名前は、メッシュ内のイングレス・ゲートウェイ間で一意である必要があります。この名前は、イングレス・ゲートウェイのルート表リソースで使用して、このホストにルートをアタッチできます。<hostnames>
:ゲートウェイのコール元が使用するDNSホスト名。ワイルドカード・ホスト名は接頭辞形式でサポートされています。このゲートウェイには最大10個のDNSホスト名を指定します。次の例は、有効なホスト名です:www.example.com, *.example.com, *.com, www.example.com:9080, *.example.com:9080
注意
メッシュ・リソースでは、15000、15003、15006および9901のサービス・メッシュ予約済ポートを使用しないでください。HTTPリスナーを使用するホストの場合、ホスト名はゲートウェイとの通信に使用されるHTTPホスト・ヘッダーと一致する必要があります。不一致が発生した場合、このゲートウェイに接続しているユーザーは404エラーを認識します。HTTPホストヘッダーは、標準ポート80および443に対して
リスナーTLS_PASSTHROUGHを持つホストの場合、ホスト名は、ゲートウェイとの通信に使用されるサーバー名指示(SNI)と一致する必要があります。不一致が発生した場合、このゲートウェイに接続しているユーザーはTLSハンドシェイク・エラーを検出します。接頭辞形式のワイルドカードを使用できます。包括ワイルドカードexample.com
という形式を使用します。9080のような非標準ポートの場合、ホスト・ヘッダーはexample.com:9080
という形式を使用します。*
は使用できません。
<listeners>
:<port>
: リスニングするポートを指定します。<protocol>
: プロトコルHTTP
、TCP
またはTLS_PASSTHROUGH
を選択します。TLS_PASSTHROUGH
が選択されている場合、プロキシはTLSを管理しません。暗号化されたデータは、TLSを独自に管理するアプリケーションにそのまま渡されます。<tls>
:<mode>
: 次から選択します:- 相互TLS: mTLSトラフィックのみが受け入れられます。メッシュおよび仮想サービス用の
STRICT
などの機能。 - 許容: 接続はプレーン・テキストまたはTLS/mTLSのいずれかです。リスナーに対してTLSクライアント検証セクションが構成されている場合、mTLSが実行され、ゲートウェイはクライアントの証明書を検証します。TLSクライアントの検証セクションについては、フォームの次のセクションを参照してください。
- TLS: 一方向TLS認証を許可します。ゲートウェイに接続しているクライアントのみがゲートウェイのアイデンティティを検証します。
- Disabled: raw TCPトラフィックは受け入れられます。
- 相互TLS: mTLSトラフィックのみが受け入れられます。メッシュおよび仮想サービス用の
<clientValidation>
:<subjectAlternateNames>
: ここにドメイン名を入力します。例:example.com, servicemesh.example.com
。<trustedCaBundle >
:<type>
: 使用可能な値はOCI_CERTIFICATES
またはLOCAL_FILE
です。<caBundleId>
: CAバンドルのOCID。<secretName>
:LOCAL_FILE
が選択されている場合、TLSタイプのKubernetesシークレットのファイル名。シークレットの名前をこのフィールドに入力します。
<serviceCertificate>
<type>
: 使用可能な値はOCI_CERTIFICATES
またはLOCAL_FILE
です。<certificateId>
:OCI_CERTIFICATES
が指定されている場合、TLS証明書のOCID。<secretName>
:LOCAL_FILE
が選択されている場合、キーがca.crt
の不透明なKubernetesシークレットのファイル名。シークレットの名前をこのフィールドに入力します。
これは、値が有効なJSONである複雑な型です。YAMLの例はファイルに格納し、必要に応じてファイルを変更して更新することをお薦めします。JSON値の取得の詳細は、次の項を参照してください: JSONファイルを使用したイングレス・ゲートウェイの作成。
<accessLogging>
: 値をtrue
またはfalse
に設定して、ロギングをオンまたはオフにします。これは、値が有効なJSONである複雑な型です。JSON値の取得の詳細は、次の項を参照してください: JSONファイルを使用したイングレス・ゲートウェイの作成。<description>
イングレス・ゲートウェイの説明。説明は作成後に変更できます。機密情報を入力しないでください。
例:
oci service-mesh ingress-gateway create --name "ingress gateway" --compartment-id ocid1.compartment.oc1..aaa... --mesh-id ocid1.mesh.oc1..aaa... --hosts '[{ "hostnames": ["test.com"], "listeners": [{"port": 8080, "protocol": "HTTP", "tls": {"clientValidation": {"subjectAlternateNames": ["authorized1.client"], "trustedCaBundle": [{"caBundleId": "ocid1.caBundle.oc1..aaa...", "type": "OCI_CERTIFICATES"}]}, "mode": "MUTUAL_TLS", "serverCertificate": [{"certificateId": "ocid1.certificate.oc1..aaa...", "type": "OCI_CERTIFICATES"}]}}]'
コマンドへの応答は次のとおりです。
- イングレス・ゲートウェイのOCID。
- ライフサイクルの状態(
ACTIVE
、FAILED
など)。 - イングレス・ゲートウェイを作成する作業リクエストのID(作業リクエストの詳細は、完了、取消または失敗の後の7日間使用できます)。
イングレス・ゲートウェイがアクティブになるか、リクエストが失敗するまでコマンドが制御を返すのを待機する場合は、次のいずれかまたは両方のパラメータを含めます:
--wait-for-state SUCCEEDED
--wait-for-state FAILED
例:
oci service-mesh ingress-gateway create --name "ingress gateway" --compartment-id ocid1.compartment.oc1..aaaaaaaasbdlq2go7wwxlk6g2sjiiamouh4zarpe5zpewhbv333sekhfnkka --mesh-id ocid1.mesh.oc1.iad.amaaaaaafesvpoaauhikwwofwuali3f3lgmfikqwdgosr22hj3pznak6qrvq --hosts file:///ig_hosts.json --wait-for-state SUCCEEDED
ヒント
作業リクエストが正常に作成され、イングレス・ゲートウェイがアクティブになるまで、イングレス・ゲートウェイは使用できません。イングレス・ゲートウェイ・ステータスの確認
イングレス・ゲートウェイのステータスを確認するには、次を入力します:
oci service-mesh ingress-gateway get --ingress-gateway-id <ingressGatewayId>
イングレス・ゲートウェイを作成する作業リクエストのステータスを表示するには、サービス・メッシュ作業リクエストを参照してください。
JSONファイルを使用したイングレス・ゲートウェイの作成
または、createコマンドにJSONファイルを指定してイングレス・ゲートウェイを作成します。
イングレス・ゲートウェイのサンプルJSONファイルを生成します:
oci service-mesh ingress-gateway create --generate-full-command-json-input
- 前のステップで生成されたサンプル出力を含むJSONファイルを作成し、フィールドを適切な値で更新します。
ingress-gateway create
コマンドにJSONファイルを指定します:oci service-mesh ingress-gateway create --from-json file:///<filename>
CLIの使用方法の詳細は、次を参照してください:
CreateIngressGateway操作を使用して、イングレス・ゲートウェイを作成します。