1.2. カスタム設定の使用
カスタム設定を作成するには、/etc/microshift/
ディレクトリーで提供される config.yaml.default
ファイルのコピーを作成し、config.yaml
という名前を付けます。このファイルを /etc/microshift/
ディレクトリー保存し、MicroShift を起動または再起動する前に、デフォルトをオーバーライドすることが予想されるサポート対象の設定を変更できます。
設定を変更したら、MicroShift を再起動して有効にします。config.yaml
は MicroShift 起動時の読み取り専用ファイルです。
1.2.1. 個別の再起動
MicroShift クラスターで使用されるアプリケーションおよびその他のオプションサービスも、クラスター全体で設定の変更を適用するには、個別に再起動する必要がある場合があります。たとえば、特定のネットワーク設定に変更を加える場合は、サービスおよびアプリケーション Pod を停止して再起動し、それらの変更を適用する必要があります。詳細は、完了するタスクのそれぞれの手順を参照してください。
必要な設定をすべて一度に追加すると、システムの再起動を最小限に抑えることができます。
1.2.2. MicroShift config.yaml ファイルのパラメーターと値
次の表は、MicroShift 設定 YAML パラメーターとそれぞれの有効な値を説明しています。
フィールド | 型 | 説明 |
---|---|---|
|
| API サーバーがクラスターのメンバーにアドバタイズされる IP アドレスを指定する文字列。デフォルト値は、サービスネットワークのアドレスに基づいて計算されます。 |
|
|
ログファイルが自動的に削除されるまでの保存期間。 |
|
|
デフォルトでは、 |
|
| 保存されるログファイルの合計数。デフォルトでは、MicroShift は 10 個のログファイルを保持します。余分なファイルが作成されると、最も古いものが削除されます。この値は設定可能です。 |
|
|
読み取りおよび書き込み要求のメタデータのみをログに記録します。OAuth アクセストークン要求を除く要求の本文はログに記録されません。このフィールドを指定しない場合は、 |
|
| カスタム認証局を使用して、外部で生成された証明書およびドメイン名を定義します。 |
|
| 証明書への完全パス。 |
|
| 証明書キーへの完全パス。 |
|
| 任意です。明示的な DNS 名のリストを追加します。ワイルドカードは、先頭に指定できます。名前が指定されていない場合は、暗黙名が証明書から抽出されます。 |
|
完全修飾ドメイン名 (FQDN)、 | API サーバー証明書のサブジェクト代替名 (SAN)。SAN は、証明書で保護されたすべてのドメイン名および IP アドレスを示します。 |
|
|
ログの詳細レベル。デフォルトは |
|
| クラスターのベースドメイン。管理されるすべての DNS レコードはこのベースのサブドメインです。 |
|
|
デフォルトでは、 |
|
|
ingress に使用するデフォルトの HTTP バージョンを決定します。デフォルト値は |
|
|
Ingress ルーターが
|
|
|
|
|
|
すべての MIME タイプが圧縮の恩恵を受けるわけではありませんが、圧縮が設定されていれば、 |
|
|
デフォルト値は
|
| IP アドレス、NIC 名、またはその複数。 | デフォルト値は、ホストのネットワーク全体になります。有効な設定可能な値は、単一の IP アドレスまたは NIC 名、あるいは複数の IP アドレスと NIC 名のリストです。 |
|
|
デフォルト値は |
|
|
デフォルトのポートが表示されます。設定可能です。有効な値は、 |
|
|
デフォルトのポートが表示されます。設定可能です。有効な値は、 |
|
|
複数の namespace のホスト名要求の処理方法を記述します。デフォルトでは、ルートが、複数の namespace においてホストが同じ名前でパスが異なる要求を許可します。 |
|
|
ルーターのステータス。デフォルトは |
| オブジェクト | Ingress コントローラー Pod のパフォーマンスをチューニングするためのオプションを指定します。 |
|
|
接続を閉じる前に、サーバー/バックエンドへのクライアントのレスポンスを待機している間、接続を開いたままにする時間を定義します。デフォルトのタイムアウトは |
|
|
クライアントのレスポンスを待機している間、接続を開いたままにする時間を定義します。デフォルトのタイムアウトは |
|
|
|
|
|
|
|
次のパターンを持つ |
デフォルトの
|
|
|
デフォルト値は
|
|
|
接続を閉じる前に、サーバーまたはバックエンドからのクライアントへのレスポンスを待機している間、接続を開いたままにする時間を定義します。デフォルトのタイムアウトは |
|
|
サーバーまたはバックエンドのレスポンスを待機している間、接続を開いたままにする時間を定義します。デフォルトのタイムアウトは |
|
|
|
|
| 一致するルートを検出するためにルーターがデータを保持できる時間を定義します。この間隔の設定値が短すぎると、より適合性の高い証明書を使用できる場合でも、ルーターがエッジ終端クライアントまたは再暗号化ルート用のデフォルト証明書に戻す可能性があります。
|
|
|
トンネルがアイドル状態の間、WebSocket を含むトンネル接続を開いたままにする時間を定義します。デフォルトのタイムアウトは |
| MicroShift の低レイテンシーの手順を参照してください | kubelet ノードエージェントのパススルー設定のパラメーター。低レイテンシー設定に使用されます。デフォルト値は null です。 |
|
|
マニフェストをロードするために使用する |
| IP アドレスブロック |
Pod IP アドレスの割り当てに使用する IP アドレスのブロック。IPv4 がデフォルトのネットワークです。デュアルスタックエントリーはサポートされています。このフィールドの最初のエントリーは、MicroShift の起動後は変更できません。デフォルトの範囲は |
| IP アドレスブロック |
Kubernetes サービスの仮想 IP アドレスのブロック。サービスの IP アドレスプール。IPv4 がデフォルトです。デュアルスタックエントリーはサポートされています。このフィールドの最初のエントリーは、MicroShift の起動後は変更できません。デフォルトの範囲は |
|
|
|
|
| ノードの名前。デフォルト値はホスト名です。空でない場合、この文字列はホスト名ではなく、ノードを識別するために使用されます。この値は、MicroShift の起動後は変更できません。 |
| IPv4 アドレス | ノードの IPv4 アドレス。デフォルト値は、デフォルトルートの IP アドレスです。 |
| IPv6 アドレス | デュアルスタック設定のノードの IPv6 アドレス。IPv4 または IPv6 のいずれかのシングルスタックでは設定できません。デフォルトは空の値または null です。 |
|
| デフォルト値は空です。空の値または null フィールドのデフォルトは LVMS デプロイメントです。 |
|
|
デフォルト値は null または空の配列です。null または空の配列はデフォルトで |
1.2.3. 設定スニペットの使用
サブジェクト代替名 (SAN) の追加など、1 つまたは 2 つの設定を指定する場合は、/etc/microshift/config.d/
設定ディレクトリーを使用して、設定スニペット YAML ファイルをドロップインできます。新しい設定を適用するには、MicroShift を再起動する必要があります。
以前の値に戻すには、設定スニペットを削除して MicroShift を再起動します。
1.2.3.1. 設定スニペットの仕組み
/etc/microshift/config.d
内の YAML ファイルは、その設定がデフォルト値の結果であるか、ユーザーが作成した config.yaml
ファイルであるかに関係なく、実行時に既存の MicroShift 設定にマージされます。設定スニペットを使用するために config.yaml
ファイルを作成する必要はありません。
スニペットディレクトリー内のファイルは辞書順に並べられ、順番に実行されます。スニペットに数値の接頭辞を使用すると、各スニペットが希望の順序で読み取られるようになります。同じパラメーターの YAML が複数ある場合は、最後に読み取られたファイルが優先されます。
設定スニペットは、デフォルト値とカスタマイズされた config.yaml
設定ファイルよりも優先されます。
1.2.3.2. リスト設定スニペットの例
リストまたは配列はマージされず、上書きされます。たとえば、最初のスニペットの後に読み取られる同じフィールドの追加スニペットを作成することで、SAN または SAN のリストを置き換えることができます。
MicroShift 設定ディレクトリーの内容
-
/etc/microshift/config.yaml.default
または/etc/microshift/config.yaml
MicroShift 設定スニペットのディレクトリー内容の例
-
/etc/microshift/config.d/10-san.yaml
/etc/microshift/config.d/20-san.yaml
10-san.yaml
スニペットの例apiServer: subjectAltNames: - host1 - host2
20-san.yaml
スニペットの例apiServer: subjectAltNames: - hostZ
設定結果の例
apiServer: subjectAltNames: - hostZ
既存のリストに値を追加する場合は、その値を既存のスニペットに追加できます。たとえば、既存の SAN リストに hostZ
を追加するには、新しいスニペットを作成するのではなく、既存のスニペットを編集します。
10-san.yaml
スニペットの例
apiServer: subjectAltNames: - host1 - host2 - hostZ
設定結果の例
apiServer: subjectAltNames: - host1 - host2 - hostZ
1.2.3.3. オブジェクト設定スニペットの例
オブジェクトがマージされます。
10-advertiseAddress.yaml
スニペットの例
apiServer: advertiseAddress: "microshift-example"
20-audit-log.yaml
スニペットの例
apiServer: auditLog: maxFileAge: 12
設定結果の例
apiServer: advertiseAddress: "microshift-example" auditLog: maxFileAge: 12
1.2.3.4. 混合設定スニペットの例
この例では、advertiseAddress
フィールドと auditLog.maxFileAge
フィールドの両方の値が設定にマージされます。しかし、保持されるのは、c.com
と d.com
の subjectAltNames
値だけです。ファイル名に含まれる番号によって、これらの値の優先度が高いことが指定されるためです。
10-advertiseAddress.yaml
スニペットの例
apiServer: advertiseAddress: "microshift-example"
20-audit-log.yaml
スニペットの例
apiServer: auditLog: maxFileAge: 12
30-SAN.yaml
スニペットの例
apiServer: subjectAltNames: - a.com - b.com
40-SAN.yaml
スニペットの例
apiServer: subjectAltNames: - c.com - d.com
設定結果の例
apiServer: advertiseAddress: "microshift-example" auditLog: maxFileAge: 12 subjectAltNames: - c.com - d.com
1.2.4. アドバタイズアドレスネットワークフラグの設定
apiserver.advertiseAddress
フラグは、API サーバーをクラスターのメンバーにアドバタイズする IP アドレスを指定します。このアドレスは、クラスターから到達可能である必要があります。ここでカスタム IP アドレスを設定できますが、その IP アドレスをホストインターフェイスに追加する必要もあります。このパラメーターをカスタマイズすると、MicroShift がデフォルトの IP アドレスを br-ex
ネットワークインターフェイスに追加しなくなります。
advertiseAddress
IP アドレスをカスタマイズする場合は、ホストインターフェイスに IP アドレスを追加して、MicroShift の起動時にクラスターからその IP アドレスに到達できることを確認してください。
設定されていない場合、デフォルト値はサービスネットワークのすぐ後のサブネットに設定されます。たとえば、サービスネットワークが 10.43.0.0/16
の場合、advertiseAddress
は、10.44.0.0/32
に設定されます。
1.2.5. NodePort サービスのポート範囲の拡張
serviceNodePortRange
設定では、NodePort サービスで使用できるポート範囲が拡張します。このオプションは、30000-32767
範囲内で特定の標準ポートを公開する必要がある場合に役立ちます。たとえば、クライアントデバイスは別のポートを使用できないため、デバイスはネットワーク上で 1883/tcp
MQ Telemetry Transport (MQTT) ポートを公開する必要があります。
NodePort がシステムポートと重複し、システムまたは MicroShift の誤動作を引き起こす可能性があります。
NodePort サービス範囲を設定するときは、次の点を考慮してください。
-
nodePort
を明示的に選択せずに NodePort サービスを作成しないでください。明示的なnodePort
が指定されていない場合、このポートはkube-apiserver
によってランダムに割り当てられるため、予測できません。 -
デバイスの
HostNetwork
で公開するシステムサービスポート、MicroShift ポート、またはその他のサービスに対して NodePort サービスを作成しないでください。 表 1 は、ポート範囲の拡張時に避けるべきポートを示しています。
表1.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 スケジューラー