5.2. MicroShift での Ingress 制御の設定
MicroShift サービス設定ファイルを更新するか、設定スニペットを使用することで、詳細な Ingress 制御の設定を使用できます。
-
config.yaml設定ファイルは、組み込み設定よりも優先されます。config.yamlファイルは、MicroShift サービスが起動するたびに読み取られます。 -
設定スニペット YAML は、組み込みの設定と
config.yaml設定ファイルよりも優先されます。
前提条件
-
OpenShift CLI (
oc) がインストールされている。 - ノードへの root アクセス権限がある。
- ノードが OVN-Kubernetes Container Network Interface (CNI)プラグインを使用している。
手順
次のどちらかの方法で Ingress 制御の設定を適用します。
-
/etc/microshift/ディレクトリーにあるconfig.yaml.defaultファイルのコピーを作成し、config.yamlという名前を付けてソースディレクトリーに保存することで、MicroShiftconfig.yaml設定ファイルを更新します。 -
設定スニペットを使用して、必要な Ingress 制御の設定を適用します。これを行うには、設定スニペット YAML ファイルを作成し、そのファイルを
/etc/microshift/config.d/設定ディレクトリーに配置します。
-
MicroShift YAML の
ingressセクションのデフォルト値を有効な値に置き換えるか、必要なセクションを含む設定スニペットファイルを作成します。デフォルト値を含む Ingress コントローラー設定フィールド
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Expand 表5.1 Ingress コントローラー設定フィールドの定義表 パラメーター 説明 ingressMicroShift
config.yamlファイルのingressセクションでは、OpenShift Container PlatformIngressControllerAPI の実装の設定可能なパラメーターを定義します。この表の以下のパラメーターはすべて、MicroShiftconfig.yamlのingressセクションのサブセクションです。accessLoggingこの
Ingressサブセクションでは、クライアント要求のログ方法を説明します。statusフィールドが空の場合、アクセスロギングは無効になります。status フィールドがEnabledに設定されている場合、アクセス要求はaccessLoggingパラメーターで設定されたものとしてログに記録され、accessLogging.destination.typeは自動的にコンテナーに設定されます。-
有効にすると、アクセスログは
openshift-routerログの一部になります。MicroShift の sos report 手順は、この Pod からのログをキャプチャーします。
accessLogging.destinationログの宛先。ログの宛先は、ローカルのサイドカーコンテナーまたはリモートにすることができます。デフォルト値は null です。
accessLogging.destination.typeログの宛先のタイプ。有効な値は
ContainerまたはSyslogです。-
この値を
Containerに設定すると、ログがサイドカーコンテナーに移動する必要があることを指定します。宛先タイプがContainerに設定されると、ログと呼ばれるコンテナーが自動的に作成されます。コンテナーログを使用すると、ログの割合がコンテナーランタイムの容量やカスタムロギングソリューションの容量を超えるとログがドロップされる可能性があります。このサイドカーからログを読み取るカスタムロギングソリューションが必要です。 -
この値を
Syslogに設定すると、ログが Syslog エンドポイントに送信されることを指定します。カスタム Syslog インスタンスを設定し、Syslog メッセージを受信できるエンドポイントを指定する必要があります。カスタム Syslog インスタンスが必要です。たとえば、カーネルロギングの使用開始 などです。
accessLogging.destination.containerコンテナーロギング先タイプのパラメーター
を記述します。このサイドカーからログを読み取るカスタムロギングソリューションを設定する必要があります。accessLogging.destination.container.maxLengthオプションの設定。デフォルト値は
1024バイトです。メッセージの長さは480以上で、8192バイトより大きくてはなりません。accessLogging.destination.syslogSyslogロギング宛先タイプのパラメーターを記述します。Syslog メッセージを受信できるエンドポイントでカスタム Syslog インスタンスを設定する必要があります。accessLogging.destination.syslog.addressSyslog宛先タイプが設定されている場合の必須の設定。有効な値は、ログメッセージを受信する syslog エンドポイントの IP アドレスです。accessLogging.destination.syslog.facilitySyslog宛先タイプが設定されている場合のオプション設定。ログメッセージの syslog 機能を指定します。このフィールドが空の場合、ファシリティーはlocal1になります。それ以外の場合は、このフィールドにkern、user、mail、daemon、allow、syslog、news、news、uucp、cron、auth2'、ftp、ntp、audit、audit、local0、local1、local1、local、2local4、local4、、またはlocal6local7のいずれかを指定する必要があります。accessLogging.destination.syslog.maxLengthSyslog宛先タイプが設定されている場合のオプション設定。Syslogメッセージの最大長。メッセージの長さは480以上で、4096バイト以下である必要があります。このフィールドが空の場合には、最大長はデフォルト値の1024バイトに設定されます。accessLogging.destination.syslog.portSyslog宛先タイプが設定されている場合の必須の設定。ログメッセージを受信する syslog エンドポイントの UDP ポート番号。デフォルト値は0です。httpCaptureCookiesアクセスログにキャプチャーする HTTP Cookie を指定します。
httpCaptureCookiesフィールドが空の場合、アクセスログは Cookie をキャプチャーしません。デフォルト値は空です。ingress.accessLogging.httpCaptureCookiesを設定すると、ingress アクセスロギングが自動的に有効になります。キャプチャーするすべての Cookie について、matchTypeおよびmaxLengthパラメーターも設定する必要があります。以下に例を示します。
httpCaptureCookies: - matchType: Exact maxLength: 128 name: MYCOOKIEhttpCaptureCookies: - matchType: Exact maxLength: 128 name: MYCOOKIECopy to Clipboard Copied! Toggle word wrap Toggle overflow
httpCaptureCookies.matchTypeクッキーのフィールド名がキャプチャーされた cookie 設定と完全に一致するか、キャプチャーされた cookie 設定の接頭辞であるかを指定します。有効な値は、完全文字列一致の場合は
Exact、文字列接頭辞一致の接頭辞 です。-
Exact設定を使用する場合は、httpCaptureCookies.nameフィールドで名前も指定する必要があります。 -
Prefix設定を使用する場合は、httpCaptureCookies.namePrefixフィールドに接頭辞も指定する必要があります。たとえば、nameの設定では、room という名前の 1 つではなく、mush または "mushroom" という名前のクッキーをキャプチャーします。最初に一致する Cookie がキャプチャーされます。Prefixがmush または "mushroom" という名前のクッキーをキャプチャーする場合の接頭辞:matchType
httpCaptureCookies.maxLengthログに記録される cookie の最大長を指定します。これには、Cookie 名、Cookie 値、および 1 文字の区切り文字が含まれます。ログエントリーがこの長さを超えると、値はログメッセージで切り捨てられます。Ingress コントローラーは、要求の HTTP ヘッダーの合計の長さに別個のバインドを課す可能性があります。最小値は
1バイトで、最大値は1024バイトです。デフォルト値は0です。httpCaptureCookies.namehttpCaptureCookies.matchTypeパラメーターで設定されるクッキー名の一致に使用される正確な名前を指定します。値は、RFC 6265 セクション 4.1 で定義されている有効な HTTP Cookie 名である必要があります。最小長は1バイトで、最大長は1024バイトです。httpCaptureCookies.namePrefixhttpCaptureCookies.matchTypeパラメーターに設定されるように、cookie 名の一致の接頭辞を指定します。値は、RFC 6265 セクション 4.1 で定義されている有効な HTTP Cookie 名である必要があります。最小長は1バイトで、最大長は1024バイトです。httpCaptureHeadersアクセスログに取得する必要のある HTTP ヘッダーを定義します。このフィールドはリストであり、リクエストおよび応答ヘッダーを個別に取得できるようにします。このフィールドが空の場合、ヘッダーはキャプチャされません。このオプションは、プレーンテキストの HTTP 接続と、入力コントローラーが暗号化を終了するセキュアな HTTP 接続にのみ適用されます(例:edge-terminated または reencrypt 接続)。TLS
パススルー接続のヘッダーをキャプチャすることはできません。ingress.accessLogging.httpCaptureHeadersパラメーターを設定すると、ingress アクセスロギングが自動的に有効になります。httpCaptureHeaders.requestキャプチャーする HTTP リクエストヘッダーを指定します。このフィールドが空の場合、要求ヘッダーはキャプチャされません。
httpCaptureHeaders.request.maxLengthヘッダー値の最大長を指定します。ヘッダー値がこの長さを超えると、値はログメッセージで切り捨てられます。最小値は
1バイトです。Ingress コントローラーは、要求の HTTP ヘッダーの合計の長さに別個のバインドを課す可能性があります。httpCaptureHeaders.request.nameヘッダー名を指定します。値は、RFC 2616 セクション 4.2 で定義されている有効な HTTP ヘッダー名である必要があります。この値を設定する場合は、
maxLengthおよびnameの値を指定する必要があります。httpCaptureHeaders.responseキャプチャーする HTTP 応答ヘッダーを指定します。このフィールドが空の場合、応答ヘッダーはキャプチャされません。
httpCaptureHeaders.response.maxLengthヘッダー値の最大長を指定します。ヘッダー値がこの長さを超えると、値はログメッセージで切り捨てられます。Ingress コントローラーは、要求の HTTP ヘッダーの合計の長さに別個のバインドを課す可能性があります。
httpCaptureHeaders.response.nameヘッダー名を指定します。値は、RFC 2616 セクション 4.2 で定義されている有効な HTTP ヘッダー名である必要があります。
httpLogFormatHTTP リクエストのログメッセージの形式を指定します。このフィールドが空の場合、ログメッセージはデフォルトの HTTP ログ形式を使用します。HAProxy のデフォルトの HTTP ログ形式については、HAProxy のドキュメント を参照してください。
statusアクセスをログに記録するかどうかを指定します。有効な値は
EnabledおよびDisabledです。デフォルト値はDisabledです。-
ingress.accessLogging.httpCaptureHeadersまたはingress.accessLogging.httpCaptureCookiesのいずれかを設定する場合は、ingress.accessLogging.statusをEnabledに設定する必要があります。 -
ingress.statusフィールドをEnabledに設定すると、accessLogging.destination.typeは自動的にコンテナーに設定され、ルーターはログコンテナーのすべての要求をログに記録します。 -
この値を
Disabledに設定すると、ルーターはアクセスログに要求をログに記録しません。
certificateSecretMicroShift Ingress コントローラーが提供するデフォルトの証明書を含む
kubernetes.io/tlsタイプのシークレットへの参照。ルートが独自の証明書を指定しない場合は、certificateSecretパラメーターが使用されます。使用されるすべてのシークレットには、tls.keyキーファイルの内容とtls.crt証明書ファイルの内容が含まれている必要があります。-
certificateSecretパラメーターが設定されていない場合は、ワイルドカード証明書が自動的に生成され、使用されます。ワイルドカード証明書は、Ingress コントローラーのデフォルトdomainとそのsubdomainsに対して有効です。生成された認証局(CA)は、ノードのトラストストアと自動的に統合されます。 - 使用中の生成された証明書とユーザー指定の証明書は、MicroShift に組み込まれた OAuth サーバーと自動的に統合されます。
clientTLSノードおよびサービスへのクライアントアクセスを認証します。その結果、相互 TLS 認証が有効になります。このパラメーターが設定されていない場合、クライアント TLS は有効になりません。クライアント TLS を使用するには、
spec.clientTLS.clientCertificatePolicyおよびspec.clientTLS.clientCAパラメーターを設定する必要があります。clientTLS.AllowedSubjectPatterns要求をフィルタリングするために、有効なクライアント証明書の識別名と照合される正規表現のリストを指定するオプションのサブフィールド。このパラメーターは、クライアント認証がある場合に役立ちます。このパラメーターを使用すると、Ingress コントローラーは識別名に基づいて証明書を拒否します。Perl Compatible Regular Expressions (PCRE) 構文が必要です。
clientTLS.AllowedSubjectPatternsを使用するには、spec.clientTLS.clientCertificatePolicyおよびspec.clientTLS.clientCAパラメーターを設定する必要があります。重要設定された場合、このフィールドには有効な式が含まれている必要があります。含まれていない場合、MicroShift サービスは失敗します。1 つ以上のパターンがクライアント証明書の識別名と一致している必要があります。一致しない場合、Ingress コントローラーは証明書を拒否し、接続を拒否します。
clientTLS.clientCAopenshift-ingressnamespace 内の必須の config map を指定します。クライアント TLS を有効にするために必要です。config map には、ca-bundle.pemという名前の認証局 (CA) バンドルが含まれている必要があります。含まれていない場合、デフォルトルーターのデプロイメントは失敗します。clienttls.clientCA.nameclientTLS.clientCA値で参照される設定マップのmetadata.name。clientTLS.ClientCertificatePolicy有効な値は
RequiredまたはOptionalです。クライアント TLS を有効にするには、Requiredに設定します。Ingress コントローラーは、エッジで終了および再暗号化された TLS ルートのクライアント証明書のみをチェックします。Ingress コントローラーは、プレーンテキスト HTTP またはパススルー TLS ルートの証明書をチェックできません。defaultHTTPVersionIngress コントローラーの HTTP バージョンを設定します。デフォルト値は、HTTP 1.
1の 1 です。HTTP 2 および 3 にロードバランサーを設定することが推奨されます。forwardedHeaderPolicyIngress コントローラーが
Forwarded、X-Forwarded-For、X-Forwarded-Host、X-Forwarded-Port、X-Forwarded-Proto、およびX-Forwarded-Proto-VersionHTTP ヘッダーを設定するタイミングと方法を指定します。次の値が有効です。-
Appendは、Ingress コントローラーが既存のヘッダーに追加することを指定することで、それらのヘッダーを保持します。'Append` はデフォルト値です。 -
Replaceは、Ingress コントローラーによってヘッダーを設定するように指定して、既存のヘッダーを削除します。 -
IfNoneは、ヘッダーがまだ設定されていない場合に Ingress コントローラーがヘッダーを設定することを指定します。 -
Neverは、Ingress コントローラーによってヘッダーを設定しないように指定して、既存のヘッダーを保持します。
httpCompressionHTTP トラフィック圧縮のポリシーを定義します。
httpCompression.mimeTypes圧縮を適用する必要がある MIME タイプのリストを定義します。
-
たとえば、
text/css; charset=utf-8、text/html、text/*、image/svg+xml、application/octet-stream、X-custom/customsubのように、type/subtype; [;attribute=value]という形式で指定します。 -
有効な
typesは、application、image、message、multipart、text、video、またはX-で始まるカスタムタイプです。MIME タイプとサブタイプの完全な表記は、RFC1341 (IETF Datatracker ドキュメント) を参照してください。
httpEmptyRequestsPolicyリクエストを受信する前に接続がタイムアウトした場合に HTTP 接続をどのように処理するかを指定します。このフィールドに使用できる値は
RespondおよびIgnoreです。デフォルト値はRespondです。空の要求は通常、ロードバランサーの正常性プローブまたは事前接続から送信されるもので、多くの場合、無視しても問題ありません。ただし、ネットワークエラーおよびポートスキャンも、これらの要求を引き起こす可能性があります。したがって、このフィールドをIgnoreに設定すると、ネットワークの問題の検出や診断および侵入の試みの検出が妨げられる可能性があります。-
このポリシーが
Respondに設定されている場合、Ingress コントローラーが HTTP400または408レスポンスを送信し、接続をログに記録し (アクセスログが有効な場合)、適切なメトリクスで接続をカウントします。 -
ポリシーを
Ignoreに設定すると、http-ignore-probesパラメーターがHAproxyプロセス設定に追加されます。このパラメーターが追加されると、Ingress コントローラーはレスポンスを送信せずに接続を閉じ、その後、接続をログに記録するか、メトリクスを増分します。
logEmptyRequestsリクエストを受信せず、ログに記録しない接続を指定します。有効な値は
LogとIgnoreです。空の要求は通常、ロードバランサーの正常性プローブまたは事前接続から送信されるもので、多くの場合、無視しても問題ありません。ただし、ネットワークエラーおよびポートスキャンも、これらの要求を引き起こす可能性があります。したがって、このフィールドをIgnoreに設定すると、ネットワークの問題の検出や診断および侵入の試みの検出が妨げられる可能性があります。デフォルト値はLogです。-
この値を
Logに設定すると、イベントがログに記録される必要があることを示します。 -
この値を
Ignoreに設定すると、HAproxy設定のdontlognullオプションを設定します。
httpErrorCodePagesカスタムエラーコードページについて説明します。この設定を使用するには、
httpErrorCodePages.nameパラメーターを設定する必要があります。httpErrorCodePages.nameカスタムのエラーコードページを指定します。
503および404ページコードに対してのみエラーをカスタマイズできます。エラーコードページをカスタマイズするには、ConfigMap名を指定します。ConfigMapオブジェクトはopenshift-ingressnamespace にあり、error-page-<error code>.http 形式のキーが含まれる必要があります。<error code> は HTTP ステータスコードになります。ConfigMapの各値は、HTTP ヘッダーを含む完全な応答である必要があります。このパラメーターのデフォルト値は null です。portsデフォルトのルーターポートを定義します。
ports.httpデフォルトのルーター http ポート。1-65535 の範囲で指定する必要があります。デフォルト値は
80です。ports.httpsデフォルトのルーター https ポート。1-65535 の範囲で指定する必要があります。デフォルト値は
443です。routeAdmissionnamespace 全体にわたるクレームの許可または拒否など、新しいルート要求を処理するためのポリシーを定義します。
routeAdmission.namespaceOwnership複数の namespace のホスト名要求の処理方法を記述します。デフォルトは
InterNamespaceAllowedです。有効な値は次のとおりです。-
Strict: ルートが複数の namespace 間で同じホスト名を要求することを許可しません。 -
InterNamespaceAllowed: ルートが複数の namespace 間で同じホスト名の異なるパスを要求することを許可します。
routeAdmission.wildcardPolicyIngress コントローラーが、設定されたワイルドカードポリシーを使用してルートを処理する方法を制御します。
WildcardsAllowedとWildcardsDisallowedは有効な値です。デフォルト値はWildcardsDisallowedです。-
WildcardPolicyAllowedは、Ingress コントローラーがワイルドカードポリシーを持つルートを許可することを意味します。 -
WildcardPolicyDisallowedは、Ingress コントローラーがワイルドカードポリシーがNoneのルートのみを許可することを意味します。
重要ワイルドカードポリシーを
WildcardsAllowedからWildcardsDisallowedに更新すると、subdomainのワイルドカードポリシーを持つ許可されたルートが機能しなくなります。Ingress コントローラーは、これらのルートは、ワイルドカードポリシーNoneで再作成された後にのみ読み取ります。statusデフォルトのルーターのステータス。有効な値は
ManagedまたはRemovedです。tlsSecurityProfiletlsSecurityProfileは、Ingress コントローラーの TLS 接続の設定を指定します。これが設定されていない場合、デフォルト値はapiservers.config.openshift.io/clusterリソースをベースとして設定されます。OldプロファイルまたはCustomプロファイルの TLS1.0バージョンは、Ingress コントローラーによって自動的に1.1に変換されます。Intermediateがデフォルトの設定です。-
Ingress コントローラーの最小 TLS バージョンは
1.1です。TLS の最大バージョンは1.3です。
注記TLSProfileステータスは、設定されたセキュリティープロファイルの暗号と最小 TLS バージョンを表示します。プロファイルは意図に基づいているため、新しい暗号が開発されたり、既存の暗号が安全でないことが判明したりすると、時間の経過に応じて変更されます。特定のプロセスで使用できる暗号に応じて、使用可能なリストが削減される可能性があります。tlsSecurityProfile.customユーザー定義の TLS セキュリティープロファイル。このパラメーターおよび関連パラメーターを設定する場合は、細心の注意を払ってください。
tlsSecurityProfile.custom.ciphersTLS ハンドシェイク中にネゴシエートされる暗号アルゴリズムを指定します。Operator は、オペランドがサポートしていないエントリーを削除する可能性があります。
tlsSecurityProfile.custom.minTLSVersionTLS ハンドシェイク中にネゴシエートされる TLS プロトコルの最小バージョンを指定します。たとえば、TLS バージョン 1.1、1.2、1.3 を使用するには、値を
VersionTLS11に設定します。minTLSVersionの有効な最高値はVersionTLS12です。tlsSecurityProfile.intermediateほとんどのサービスにこの TLS プロファイルを使用できます。Intermediate compatibility (recommended).
tlsSecurityProfile.old下位互換性のために使用されます。Old backward compatibility.
tlsSecurityProfile.type有効な値は、
Intermediate、Old、またはCustomです。Modern値はサポートされていません。tuningOptionsIngress コントローラー Pod のパフォーマンスをチューニングするためのオプションを指定します。
tuningOptions.clientFinTimeoutサーバーが接続を閉じる前に、クライアント応答を待機している間に Ingress コントローラーが接続が開かれる期間を指定します。デフォルトのタイムアウトは
1sです。tuningOptions.clientTimeoutクライアント応答を待機している間に、Ingress コントローラーが接続を開く期間を指定します。デフォルトのタイムアウトは
30sです。tuningOptions.headerBufferBytesIngress コントローラー接続セッション用に予約されるメモリーの量 (バイト単位) を指定します。Ingress コントローラーで HTTP/2 が有効になっている場合、この値は少なくとも
16384である必要があります。設定されていない場合、デフォルト値は32768バイトになります。重要このフィールドを設定することは推奨しません。
headerBufferMaxRewriteBytesパラメーター値が小さすぎると、Ingress コントローラーが壊れる可能性があるためです。逆に、headerBufferMaxRewriteBytesの値が大きすぎると、Ingress コントローラーが必要以上に多くのメモリーを使用する可能性があります。tuningOptions.headerBufferMaxRewriteBytesIngress コントローラー接続セッションの HTTP ヘッダーの書き換えと追加のために、
headerBufferBytesから予約するメモリー量 (バイト単位) を指定します。headerBufferMaxRewriteBytesの最小値は4096です。受信 HTTP リクエストのheaderBufferBytesは、headerBufferMaxRewriteBytes値よりも大きくする必要があります。設定されていない場合、デフォルト値は8192バイトになります。重要このフィールドを設定することは推奨しません。
headerBufferMaxRewriteBytes値が小さすぎると Ingress コントローラーが破損する可能性があり、headerBufferMaxRewriteBytes値が大きすぎると、Ingress コントローラーが必要以上に大量にメモリーを使用する可能性があるためです。tuningOptions.healthCheckIntervalルーターがヘルスチェック間で待機する時間を秒単位で指定します。デフォルトは
5sです。tuningOptions.maxConnections各
HAProxyプロセスで確立できる同時接続の最大数を指定します。この値を増やすと、追加のシステムリソースで各 Ingress コントローラー Pod がより多くの接続を処理できるようになります。0、-1、2000から2000000の範囲内の任意の値を使用でき、フィールドを空にすることも可能です。-
このフィールドが空であるか、値が
0の場合、Ingress コントローラーはデフォルト値の50000を使用します。 -
フィールド値が
-1の場合、HAProxyは、実行中のコンテナーで使用可能なulimitsに基づき最大値を動的に計算します。このプロセスにより計算値が大きくなり、現在のデフォルト値である50000と比較して、メモリー使用量が大幅に増加します。 -
フィールドの値が現在のオペレーティングシステムの制限よりも大きい場合、
HAProxyプロセスは開始されません。 -
個別の値を選択し、ルーター Pod が新しいノードに移行された場合、新しいノードに同一の
ulimitが設定されていない可能性があります。このような場合、Pod は起動に失敗します。 -
container_memory_working_set_bytes{container="router",namespace="openshift-ingress"}メトリクスを使用すると、ルーターコンテナーのメモリー使用量を監視できます。 -
container_memory_working_set_bytes{container="router",namespace="openshift-ingress"}/container_processes{container="router",namespace="openshift-ingress"}メトリクスを使用すると、ルーターコンテナー内の個々のHAProxyプロセスのメモリー使用量を監視できます。
tuningOptions.serverFinTimeout接続を閉じているクライアントへのサーバーレスポンスを待機している間、接続を開いたままにする時間を指定します。デフォルトのタイムアウトは
1sです。tuningOptions.serverTimeoutサーバーの応答を待機している間に接続が開かれる期間を指定します。デフォルトのタイムアウトは
30sです。tuningOptions.threadCountHAProxy プロセスごとに作成するスレッドの数を指定します。より多くのスレッドを作成すると、より多くのシステムリソースを使用する代わりに、各 Ingress コントローラー Pod がより多くの接続を処理できるようになります。HAProxy ロードバランサーは、最大
64スレッドをサポートします。このフィールドが空の場合、Ingress コントローラーはデフォルト値の4スレッドを使用します。重要このフィールドを設定することは推奨しません。
HAProxyスレッドの数を増やすと、Ingress コントローラー Pod がより多くの CPU 時間を負荷発生時に使用できるようになり、他の Pod が実行に必要な CPU リソースを受け取れなくなるためです。スレッドの数を減らすと、Ingress コントローラーのパフォーマンスが低下する可能性があります。tuningOptions.tlsInspectDelay一致するルートを検出するためにルーターがデータを保持できる時間を指定します。この設定値が低すぎると、より適合性の高い証明書を使用している場合でも、ルーターがエッジ終端ルート、再暗号化ルート、またはパススルールート用のデフォルト証明書にフォールバックする可能性があります。デフォルトの検査遅延は
5sです。tuningOptions.tunnelTimeoutトンネルがアイドル状態のときに、websocket を含むトンネル接続を開いたままにする時間を指定します。デフォルトのタイムアウトは
1hです。-
有効にすると、アクセスログは
その他の必要な設定を完了したら、次のいずれかのコマンドを実行して MicroShift を起動または再起動します。
sudo systemctl start microshift
$ sudo systemctl start microshiftCopy to Clipboard Copied! Toggle word wrap Toggle overflow sudo systemctl restart microshift
$ sudo systemctl restart microshiftCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
Ingress 設定を変更して MicroShift を再起動した後、ルーター Pod の経過時間を確認して、変更が適用されていることを確認できます。
ルーター Pod のステータスを確認するには、次のコマンドを実行します。
oc get pods -n openshift-ingress
$ oc get pods -n openshift-ingressCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME READY STATUS RESTARTS AGE router-default-8649b5bf65-w29cn 1/1 Running 0 6m10s
NAME READY STATUS RESTARTS AGE router-default-8649b5bf65-w29cn 1/1 Running 0 6m10sCopy to Clipboard Copied! Toggle word wrap Toggle overflow
5.2.1. Ingress コントローラーの certificateSecret 用のシークレットを作成する リンクのコピーリンクがクリップボードにコピーされました!
MicroShift 設定ファイルの certificateSecret パラメーター値によって参照されるシークレットを作成するには、この手順を使用します。このシークレットには、Ingress コントローラーによって提供されるデフォルトの証明書が含まれています。
使用中の証明書はすべて、MicroShift に組み込まれた OAuth サーバーに自動的に統合されます。
前提条件
- MicroShift へのルートアクセス権がある。
-
OpenShift CLI (
oc) がインストールされている。 - 秘密鍵が暗号化されていないか、MicroShift にインポートするために秘密鍵が復号化されている。
手順
ワイルドカード証明書チェーンおよびキーが含まれるシークレットを作成します。
oc create secret tls <secret>
$ oc create secret tls <secret>1 --cert=</path/to/cert.crt>2 --key=</path/to/cert.key>3 -n openshift-ingressCopy to Clipboard Copied! Toggle word wrap Toggle overflow 重要証明書には、
*.apps.<nodename>.<domain> を示すます。subjectAltName拡張が含まれている必要があり-
新しく作成されたシークレットを使用して、MicroShift 設定 YAML の
certificateSecretパラメーター値を更新します。 その他の必要な設定を完了したら、次のいずれかのコマンドを実行して MicroShift を起動または再起動します。
sudo systemctl start microshift
$ sudo systemctl start microshiftCopy to Clipboard Copied! Toggle word wrap Toggle overflow sudo systemctl restart microshift
$ sudo systemctl restart microshiftCopy to Clipboard Copied! Toggle word wrap Toggle overflow
5.2.2. Ingress コントローラーの TLS セキュリティープロファイルの設定 リンクのコピーリンクがクリップボードにコピーされました!
MicroShift 設定 YAML でタイプを設定することで、Ingress コントローラーが使用する TLS セキュリティープロファイルを設定できます。
前提条件
- MicroShift ノードへの root アクセスがある。
手順
spec.tlsSecurityProfileフィールドを MicroShift YAML 設定ファイルに追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 変更を適用するためにファイルを保存します。
次のコマンドを実行して MicroShift を再起動します。
sudo systemctl restart microshift
$ sudo systemctl restart microshiftCopy to Clipboard Copied! Toggle word wrap Toggle overflow