第2章 設定ファイルを使用した MicroShift のカスタマイズ
MicroShift YAML ファイルを使用して、設定、設定、およびパラメーターをカスタマイズします。
MicroShift の汎用デバイスプラグインは、テクノロジープレビュー機能のみです。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
2.1. カスタム設定の使用 リンクのコピーリンクがクリップボードにコピーされました!
カスタム設定を作成するには、/etc/microshift/ ディレクトリーで指定されている config.yaml.default ファイルのコピーを作成し、config.yaml という名前を変更します。このファイルを /etc/microshift/ ディレクトリーに保持してから、MicroShift を起動または再起動する前に、デフォルトをオーバーライドするサポートされている設定を変更できます。
デフォルト設定に変更を加えた場合には、代替方法として設定のドロップインスニペットの使用を検討してください。
設定を変更したら、MicroShift を再起動して有効にします。config.yaml ファイルは、MicroShift の起動時にのみ読み取られます。
2.1.1. 個別の再起動 リンクのコピーリンクがクリップボードにコピーされました!
MicroShift ノードで使用されるアプリケーションおよびその他のオプションサービスも、ノード全体で設定の変更を適用するには、個別に再起動する必要がある場合があります。たとえば、特定のネットワーク設定に変更を加える場合は、サービスおよびアプリケーション Pod を停止して再起動し、それらの変更を適用する必要があります。詳細は、完了するタスクのそれぞれの手順を参照してください。
必要な設定をすべて一度に追加すると、システムの再起動を最小限に抑えることができます。
2.1.2. MicroShift config.yaml ファイルのパラメーターと値 リンクのコピーリンクがクリップボードにコピーされました!
次の表は、MicroShift 設定 YAML パラメーターとそれぞれの有効な値を説明しています。
| フィールド | 型 | 説明 |
|---|---|---|
|
|
| API サーバーがノードのメンバーにアドバタイズされる IP アドレスを指定する文字列。デフォルト値は、サービスネットワークのアドレスに基づいて計算されます。 |
|
|
|
自動削除前にログファイルが保存される期間。 |
|
|
|
デフォルトでは、 |
|
|
| 保存されるログファイルの合計数。デフォルトでは、MicroShift は 10 個のログファイルを保持します。余分なファイルが作成されると、最も古いものが削除されます。この値は設定できます。 |
|
|
|
読み取りおよび書き込み要求のメタデータのみをログに記録します。OAuth アクセストークン要求を除く要求の本文はログに記録されません。このフィールドを指定しない場合は、 |
|
|
| カスタム認証局を使用して、外部で生成された証明書およびドメイン名を定義します。 |
|
|
| 証明書への完全パス。 |
|
|
| 証明書キーへの完全パス。 |
|
|
| オプション: 明示的な DNS 名のリストを追加します。ワイルドカードは、先頭に指定できます。名前を一覧表示しないと、暗黙的な名前が証明書から抽出されます。 |
|
|
完全修飾ドメイン名 (FQDN)、 | API サーバー証明書のサブジェクト代替名。SAN は、証明書で保護されたすべてのドメイン名および IP アドレスを示します。 |
|
|
| 使用されるトランスポート層プロトコル (TLS) と許可される暗号スイートを定義します。公開された MicroShift API サーバーと内部コントロールプレーンエンドポイントにセキュリティーを提供します。 |
|
|
|
API サーバーが受け入れて提供する許可された暗号スイートをリスト表示します。デフォルトでは、 |
|
|
|
API サーバーから提供する TLS の最小バージョンを指定します。デフォルト値は |
|
|
|
ログの詳細レベル。デフォルト値は |
|
|
| ノードのベースドメイン。管理されるすべての DNS レコードはこのベースのサブドメインです。 |
|
|
|
デフォルトでは、 |
|
|
| プラグインによって公開されるデバイス定義を一覧表示します。各デバイスエントリーには、名前およびグループのリストが含まれます。 |
|
|
| デバイスグループを一覧表示します。グループ内のデバイスは、共通名のデバイスのプールを設定します。そのプールからデバイスを要求すると、異なる定義されたパスからデバイスを受信できます。 |
|
|
|
このデバイスのグループを同時にマウントできる回数を指定します。指定しない場合、Count はデフォルトで 1 に設定されます。上限がないため、 |
|
|
|
ホストデバイスファイルパスを一覧表示します。パスは glob パターンにすることができます。たとえば、 |
|
|
|
グループ内の他のデバイスがより一致しなくなると、グループ内でこのデバイスを同時に使用できる回数まで指定してください。たとえば、グループ内の 1 つのパスが 5 つのデバイスと一致し、もう 1 つのパスが 1 つのデバイスに一致するが、制限が 10 の場合、グループはデバイスのペアを 5 つ提供します。指定しない場合、制限はデフォルトで |
|
|
|
ホストデバイスをコンテナーにマウントする必要があるファイルパス。指定しない場合、mountPath のデフォルトは |
|
|
|
ホスト上のデバイスのファイルパス。たとえば、 |
|
|
|
マウントされたデバイスに指定されるファイルシステムのパーミッション。
指定しない場合、デフォルト値は |
|
|
|
パスを読み取り専用でマウントするかどうかを指定します。マウント タイプのマウントにのみ適用されます。 |
|
|
|
この |
|
|
|
このデバイス グループが構成する USB 仕様の一覧が表示されます。ベンダー ID と製品 ID が常に一致する必要があります。シリアル ID が指定されている場合は一致するか、ID が空の場合は省略する必要があります。 |
|
|
|
照合するデバイスの USB 製品 ID。たとえば、 |
|
|
| 照合するデバイスのシリアル番号。USB デバイスは、指定したすべての属性で完全に一致して渡す必要があります。 |
|
|
|
一致するデバイスの USB ベンダー ID。たとえば、 |
|
|
|
この仕様が記述するデバイスの種類を表す一意の文字列。たとえば、 |
|
|
|
ドメイン接頭辞で、ノードにアドバタイズされ、存在するデバイスを指定します。たとえば、 |
|
|
| デフォルトの GDP ステータスを指定します。 |
|
|
|
Ingress コントローラーによって提供されるデフォルトの証明書を含むシークレットへの参照。ルートが独自の証明書を指定しない場合は、 シークレットには以下のキーおよびデータが含まれている必要があります。
これらの値のいずれかを設定しない場合は、ワイルドカード証明書が自動的に生成され、使用されます。証明書は Ingress コントローラーの 使用中の証明書はすべて、MicroShift OAuth サーバーに自動的に統合されます。 |
|
|
|
ノードおよびサービスへのクライアントアクセスを認証します。これらの設定を使用する場合、相互 TLS 認証が有効化されます。 |
|
|
| 要求をフィルタリングするために、有効なクライアント証明書の識別名と照合される正規表現のリストを指定するオプションのサブフィールド。このパラメーターを使用すると、Ingress コントローラーは識別名に基づいて証明書を拒否します。Perl Compatible Regular Expressions (PCRE) 構文が必要です。このフィールドを設定する場合、有効な式を含める必要があります。そうしないと、MicroShift サービスは失敗します。1 つ以上のパターンがクライアント証明書の識別名と一致している必要があります。一致しない場合、Ingress コントローラーは証明書を拒否し、接続を拒否します。 |
|
|
|
|
|
|
| カスタム証明書を使用した再暗号化 TLS Termination により、セキュアなルートを作成するための必須サブフィールド。PEM エンコードされたファイルに証明書/キーのペアが必要です。ここで、証明書はルートホストに対して有効となっています。Ingress コントローラーは、エッジで終了および再暗号化された TLS ルートのクライアント証明書のみをチェックします。この設定では、プレーンテキスト HTTP またはパススルー TLS ルートの証明書はチェックされません。 |
|
|
|
ingress に使用するデフォルトの HTTP バージョンを決定します。デフォルト値は |
|
|
|
Ingress コントローラーが
|
|
|
| HTTP トラフィック圧縮のポリシーを定義します。デフォルトでは HTTP 圧縮はありません。 |
|
|
|
圧縮する MIME タイプのリスト。リストが空の場合、Ingress コントローラーは圧縮を適用しません。リストを定義するには、メッセージボディーのデータのタイプとサブタイプ、およびデータのネイティブエンコーディングを指定する RFC 1341 の Content-Type 定義の形式を使用します。たとえば、
すべての MIME タイプが圧縮の恩恵を受けるわけではありませんが、圧縮が設定されていれば、 |
|
|
|
デフォルト値は
|
|
| IP アドレス、NIC 名、またはその複数。 | デフォルト値は、ホストのネットワーク全体になります。有効な設定可能な値は、単一の IP アドレスまたは NIC 名、あるいは複数の IP アドレスと NIC 名のリストです。 |
|
|
|
デフォルト値は |
|
|
|
表示されるデフォルトのポート。設定可能です。有効な値は、 |
|
|
|
表示されるデフォルトのポート。設定可能です。有効な値は、 |
|
|
| namespace 全体にわたるクレームの許可または拒否など、新しいルート要求を処理するためのポリシーを定義します。デフォルトでは、複数の namespace にまたがって、ルートが同じホスト名の異なるパスを要求することを許可します。 |
|
|
|
namespace 全体にわたるホスト名要求の処理方法を記述します。デフォルト値は
|
|
|
| ワイルドカードポリシーを持つルートが Ingress コントローラーによって処理される方法を記述します。
|
|
|
|
ルーターのステータス。デフォルトは |
|
|
|
Ingress コントローラーの TLS 接続の設定を指定します。設定しない場合は、デフォルト値は |
|
|
|
TLS セキュリティーのプロファイルタイプを指定します。デフォルト値は
|
|
|
| Ingress コントローラーの TLS バージョンを指定します。
最小 TLS バージョンは
|
|
| オブジェクト | Ingress コントローラー Pod のパフォーマンスをチューニングするためのオプションを指定します。 |
|
|
|
接続を閉じる前に、サーバー/バックエンドへのクライアントのレスポンスを待機している間、接続を開いたままにする時間を定義します。デフォルトのタイムアウトは |
|
|
|
クライアントのレスポンスを待機している間、接続を開いたままにする時間を定義します。デフォルトのタイムアウトは |
|
|
|
|
|
|
|
|
|
|
次のパターンを持つ |
デフォルトの
|
|
|
|
デフォルト値は
|
|
|
|
接続を閉じる前に、サーバーまたはバックエンドからのクライアントへのレスポンスを待機している間、接続を開いたままにする時間を定義します。デフォルトのタイムアウトは |
|
|
|
サーバーまたはバックエンドのレスポンスを待機している間、接続を開いたままにする時間を定義します。デフォルトのタイムアウトは |
|
|
|
|
|
|
| 一致するルートを検出するためにルーターがデータを保持できる時間を定義します。この間隔の設定値が短すぎると、より適合性の高い証明書を使用できる場合でも、ルーターがエッジ終端クライアントまたは再暗号化ルート用のデフォルト証明書に戻す可能性があります。
|
|
|
|
トンネルがアイドル状態の間、websocket を含むトンネル接続を開いたままにする時間を定義します。デフォルトのタイムアウトは |
|
| MicroShift の低レイテンシーの手順を参照してください | kubelet ノードエージェントのパススルー設定のパラメーター。低レイテンシー設定に使用されます。デフォルト値は null です。 |
|
|
|
マニフェストをロードするために使用する |
|
| IP アドレスブロック |
Pod IP アドレスの割り当てに使用する IP アドレスのブロック。IPv4 がデフォルトのネットワークです。デュアルスタックエントリーはサポートされています。このフィールドの最初のエントリーは、MicroShift の起動後は変更できません。デフォルトの範囲は |
|
| String |
空の場合、または |
|
|
|
Multus Container Network Interface (CNI) のデプロイメントを制御します。デフォルトのステータスは |
|
| IP アドレスブロック |
Kubernetes サービスの仮想 IP アドレスのブロック。サービスの IP アドレスプール。IPv4 がデフォルトです。デュアルスタックエントリーはサポートされています。このフィールドの最初のエントリーは、MicroShift の起動後は変更できません。デフォルトの範囲は |
|
|
|
|
|
|
| ノードの名前。デフォルト値はホスト名です。空でない場合、この文字列はホスト名ではなく、ノードを識別するために使用されます。この値は、MicroShift の起動後は変更できません。 |
|
| IPv4 アドレス | ノードの IPv4 アドレス。デフォルト値は、デフォルトルートの IP アドレスです。 |
|
| IPv6 アドレス | デュアルスタック設定のノードの IPv6 アドレス。IPv4 または IPv6 のいずれかのシングルスタックでは設定できません。デフォルトは空の値または null です。 |
|
|
| デフォルト値は空です。空の値または null フィールドのデフォルトは LVMS デプロイメントです。 |
|
|
|
デフォルト値は null または空の配列です。null または空の配列の場合、デフォルトで |
|
|
テレメトリーデータが送信されるエンドポイント。報告されるメトリクスには、ユーザーデータや個人データは含まれません。デフォルト値は | |
|
|
|
テレメトリーのステータスで、 |
2.1.3. アドバタイズアドレスネットワークフラグの設定 リンクのコピーリンクがクリップボードにコピーされました!
apiserver.advertiseAddress フラグは、API サーバーをノードのメンバーにアドバタイズする IP アドレスを指定します。このアドレスは、ノードから到達可能である必要があります。ここでカスタム IP アドレスを設定できますが、その IP アドレスをホストインターフェイスに追加する必要もあります。このパラメーターをカスタマイズすると、MicroShift がデフォルトの IP アドレスを br-ex ネットワークインターフェイスに追加しなくなります。
advertiseAddress IP アドレスをカスタマイズする場合は、ホストインターフェイスに IP アドレスを追加して、MicroShift の起動時にノードからアクセスできることを確認してください。
設定されていない場合、デフォルト値はサービスネットワークのすぐ後のサブネットに設定されます。たとえば、サービスネットワークが 10.43.0.0/16 の場合、advertiseAddress は、10.44.0.0/32 に設定されます。
2.1.4. NodePort サービスのポート範囲の拡張 リンクのコピーリンクがクリップボードにコピーされました!
serviceNodePortRange 設定では、NodePort サービスで使用できるポート範囲が拡張します。このオプションは、30000-32767 範囲内で特定の標準ポートを公開する必要がある場合に役立ちます。たとえば、クライアントデバイスは別のポートを使用できないため、デバイスはネットワーク上で 1883/tcp MQ Telemetry Transport (MQTT) ポートを公開する必要があります。
NodePort がシステムポートと重複し、システムまたは MicroShift の誤動作を引き起こす可能性があります。
NodePort サービス範囲を設定するときは、次の点を考慮してください。
-
nodePortを明示的に選択せずに NodePort サービスを作成しないでください。明示的なnodePortが指定されていない場合、このポートはkube-apiserverによってランダムに割り当てられるため、予測できません。 -
デバイスの
HostNetworkで公開するシステムサービスポート、MicroShift ポート、またはその他のサービスに対して NodePort サービスを作成しないでください。 表 1 は、ポート範囲の拡張時に避けるべきポートを示しています。
Expand 表2.2 回避するポート ポート 説明 22/tcp
SSH ポート
80/tcp
OpenShift Router HTTP エンドポイント
443/tcp
OpenShift Router HTTPS エンドポイント
1936/tcp
現在公開されていない openshift-router のメトリクスサービス
2379/tcp
etcd ポート
2380/tcp
etcd ポート
6443
Kubernetes API
8445/tcp
openshift-route-controller-manager
9537/tcp
cri-o metrics
10250/tcp
kubelet
10248/tcp
kubelet healthz ポート
10259/tcp
kube スケジューラー