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フィールドが空の場合、アクセスロギングは無効になります。ステータスフィールドがEnabledに設定されている場合、アクセス要求はaccessLoggingパラメーターで設定されたとおりにログに記録され、accessLogging.destination.typeは自動的にContainerに設定されます。-
有効にすると、アクセスロギングが
openshift-routerログに含まれます。MicroShift の sos report 手順は、この Pod からログをキャプチャーします。
accessLogging.destinationログの保存先。ログの保存先は、ローカルサイドカーコンテナーまたはリモートに設定できます。デフォルト値は null です。
accessLogging.destination.typeログの宛先のタイプ。有効な値は
ContainerまたはSyslogです。-
この値を
Containerに設定すると、ログはサイドカーコンテナーに送信されます。宛先タイプをContainerに設定すると、logsと呼ばれるコンテナーが自動的に作成されます。コンテナーログを使用すると、ログの割合がコンテナーランタイムの容量やカスタムロギングソリューションの容量を超えるとログがドロップされることがあります。このサイドカーからログを読み取るカスタムロギングソリューションが必要です。 -
この値を
Syslogに設定すると、ログは Syslog エンドポイントに送信されます。カスタム Syslog インスタンスを設定し、Syslog メッセージを受信できるエンドポイントを指定する必要があります。カスタム Syslog インスタンスが必要です。たとえば、カーネルロギングの開始 など。
accessLogging.destination.containerContainerロギング宛先タイプのパラメーターを記述します。このサイドカーからログを読み取るカスタムロギングソリューションを設定する必要があります。accessLogging.destination.container.maxLength任意の設定。デフォルト値は
1024バイトです。メッセージの長さは480バイト以上8192バイト以下である必要があります。accessLogging.destination.syslogSyslogロギング宛先タイプのパラメーターを記述します。Syslog メッセージを受信できるエンドポイントを持つカスタム Syslog インスタンスを設定する必要があります。accessLogging.destination.syslog.addressSyslog宛先タイプを設定するときに必要な設定。有効な値は、ログメッセージを受信する syslog エンドポイントの IP アドレスです。accessLogging.destination.syslog.facilitySyslog宛先タイプが設定されている場合のオプションの設定。ログメッセージの syslog 機能を指定します。このフィールドが空の場合、ファシリティーはlocal1になります。それ以外の場合、このフィールドには、次の有効な syslog 機能のいずれかを指定する必要があります:kern、user、mail、daemon、auth、syslog、lpr、news、uucp、cron、auth2、ftp、ntp、audit、alert、cron2、local0、local1、local2、local3、local4、local5、local6、またはlocal7。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.matchTypeCookie のフィールドの名前が、キャプチャー Cookie 設定と完全に一致するか、キャプチャー Cookie 設定の接頭辞であるかを指定します。有効な値は、文字列の完全一致を指定する場合は
Exact、文字列の前方一致を指定する場合はPrefixです。-
Exact設定を使用する場合は、httpCaptureCookies.nameフィールドにも名前を指定する必要があります。 -
Prefix設定を使用する場合は、httpCaptureCookies.namePrefixフィールドにも接頭辞を指定する必要があります。たとえば、matchType: Prefixを設定しており、namePrefixが "mush" の場合、"mush" または "mushroom" という名前の Cookie がキャプチャーされますが、"room" という名前の Cookie はキャプチャーされません。最初に一致する Cookie がキャプチャーされます。
httpCaptureCookies.maxLengthログに記録される Cookie の最大長を指定します。これには、Cookie 名、Cookie 値、および 1 文字の区切り文字が含まれます。ログエントリーの長さがこれを超えると、ログメッセージ内の値が切り捨てられます。Ingress コントローラーは、要求内の HTTP ヘッダーの合計長に別の制限を課す場合があります。最小値は
1バイト、最大値は1024バイトです。デフォルト値は0です。httpCaptureCookies.namehttpCaptureCookies.matchTypeパラメーターで設定されている Cookie 名の照合に使用される正確な名前を指定します。値は、RFC 6265 section 4.1 で定義されている有効な HTTP Cookie 名である必要があります。最小長は1バイト、最大長は1024バイトです。httpCaptureCookies.namePrefixhttpCaptureCookies.matchTypeパラメーターで設定されている Cookie 名の照合に使用する接頭辞を指定します。値は、RFC 6265 section 4.1 で定義されている有効な HTTP Cookie 名である必要があります。最小長は1バイト、最大長は1024バイトです。httpCaptureHeadersアクセスログにキャプチャーする HTTP ヘッダーを定義します。このフィールドはリストであり、リクエストヘッダーとレスポンスヘッダーを個別にキャプチャーできます。このフィールドが空の場合、ヘッダーはキャプチャーされません。このオプションは、プレーンテキスト HTTP 接続と、入力コントローラーが暗号化を終了するセキュア HTTP 接続 (たとえばエッジ終了または再暗号化接続) にのみ適用されることに注意してください。TLS
passthrough接続のヘッダーはキャプチャーできません。ingress.accessLogging.httpCaptureHeadersパラメーターを設定すると、Ingress アクセスロギングが自動的に有効になります。httpCaptureHeaders.requestキャプチャーする HTTP リクエストヘッダーを指定します。このフィールドが空の場合、リクエストヘッダーはキャプチャーされません。
httpCaptureHeaders.request.maxLengthヘッダー値の最大長を指定します。ヘッダー値がこの長さを超えると、ログメッセージ内の値は切り捨てられます。必要最小限の値は
1バイトです。Ingress コントローラーは、要求内の HTTP ヘッダーの合計長に別の制限を課す場合があります。httpCaptureHeaders.request.nameヘッダー名を指定します。値は、RFC 2616 section 4.2 で定義されているとおり、有効な HTTP ヘッダー名である必要があります。この値を設定する場合は、
maxLengthとnameの値も指定する必要があります。httpCaptureHeaders.responseキャプチャーする HTTP レスポンスヘッダーを指定します。このフィールドが空の場合、応答ヘッダーはキャプチャされません。
httpCaptureHeaders.response.maxLengthヘッダー値の最大長を指定します。ヘッダー値がこの長さを超えると、ログメッセージ内の値は切り捨てられます。Ingress コントローラーは、要求内の HTTP ヘッダーの合計長に別の制限を課す場合があります。
httpCaptureHeaders.response.nameヘッダー名を指定します。値は、RFC 2616 section 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が自動的にContainerに設定され、ルーターはすべてのリクエストをlogsコンテナーに記録します。 -
この値を
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値で参照される config map の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.clientTimeoutIngress コントローラーが、クライアントのレスポンスを待って接続を開いたまま維持する時間を指定します。デフォルトのタイムアウトは
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 ノードへのルートアクセス権があります。
手順
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