MicroShift is Technology Preview software only.
For more information about the support scope of Red Hat Technology Preview software, see Technology Preview Support Scope.設定
第1章 設定ツールの仕組み
YAML ファイルは、設定およびパラメーターを使用して Red Hat build of MicroShift インスタンスをカスタマイズします。
1.1. YAML 設定ファイルの使用
Red Hat build of MicroShift は、ユーザー固有のディレクトリー ~/.microshift/config.yaml
で、次にシステム全体の /etc/microshift/config.yaml
ディレクトリーで設定ファイルを検索します。Red Hat build of MicroShift を開始する前に、設定ファイルを作成し、デフォルトをオーバーライドする設定を指定する必要があります。
1.1.1. デフォルトの設定
config.yaml
ファイルを作成しない場合は、デフォルト値が使用されます。次の設定例には、デフォルト設定が含まれています。Red Hat build of MicroShift を開始する前に、デフォルトをオーバーライドする設定を変更する必要があります。
デフォルトの YAML ファイルの例
dns: baseDomain: microshift.example.com network: clusterNetwork: - cidr: 10.42.0.0/16 serviceNetwork: - 10.43.0.0/16 serviceNodePortRange: 30000-32767 node: hostnameOverride: "" nodeIP: "" apiServer: subjectAltNames: [] debugging: logLevel: "Normal"
dns:
baseDomain: microshift.example.com
network:
clusterNetwork:
- cidr: 10.42.0.0/16
serviceNetwork:
- 10.43.0.0/16
serviceNodePortRange: 30000-32767
node:
hostnameOverride: ""
nodeIP: ""
apiServer:
subjectAltNames: []
debugging:
logLevel: "Normal"
- 1
- クラスターのベースドメイン。すべての管理対象 DNS レコードは、このベースのサブドメインになります。
- 2
- Pod IP アドレスの割り当てに使用する IP アドレスのブロック。
- 3
- Kubernetes サービスの仮想 IP アドレスのブロック。
- 4
- タイプ NodePort の Kubernetes サービスに許可されるポート範囲。
- 5
- ノードの名前。デフォルト値はホスト名です。
- 6
- ノードの IP アドレス。デフォルト値は、デフォルトルートの IP アドレスです。
- 7
- API サーバー証明書のサブジェクト代替名。
- 8
- ログの詳細レベル。このフィールドの有効な値は、
Normal
、Debug
、Trace
、またはTraceAll
です。
構成設定を変更したら、Red Hat build of MicroShift を再起動して有効にします。Red Hat build of MicroShift は、起動時にのみ設定ファイルを読み取ります。
1.2. NodePort サービスのポート範囲の拡張
serviceNodePortRange
設定では、NodePort サービスで使用できるポート範囲が拡張します。このオプションは、30000-32767
範囲内で特定の標準ポートを公開する必要がある場合に役立ちます。たとえば、クライアントデバイスは別のポートを使用できないため、デバイスはネットワーク上で 1883/tcp
MQ Telemetry Transport (MQTT) ポートを公開する必要があります。
NodePort がシステムポートと重複し、システムまたは Red Hat build of MicroShift の誤動作を引き起こす可能性があります。
NodePort サービス範囲を設定するときは、次の点を考慮してください。
-
nodePort
を明示的に選択せずに NodePort サービスを作成しないでください。明示的なnodePort
が指定されていない場合、このポートはkube-apiserver
によってランダムに割り当てられるため、予測できません。 -
デバイスの
HostNetwork
で公開するシステムサービスポート、Red Hat build of MicroShift ポート、またはその他のサービスに対して NodePort サービスを作成しないでください。 表 1 は、ポート範囲の拡張時に避けるべきポートを示しています。
表1.1 回避するポート ポート 説明 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 スケジューラー
第2章 kubeconfig を使用したクラスターアクセス
Red Hat build of MicroShift デプロイメントで kubeconfig
ファイルがどのように使用されるかを説明します。CLI ツールは、kubeconfig
ファイルを使用してクラスターの API サーバーと通信します。これらのファイルには、クラスターの詳細、IP アドレス、および認証に必要なその他の情報が含まれています。
2.1. クラスターアクセスを設定するための Kubeconfig ファイル
Red Hat build of MicroShift で使用される kubeconfig
ファイルの 2 つのカテゴリーは、ローカルアクセスとリモートアクセスです。Red Hat build of MicroShift が起動するたびに、API サーバーへのローカルおよびリモートアクセスのための kubeconfig
ファイルのセットが生成されます。これらのファイルは、既存の設定情報を使用して /var/lib/microshift/resources/kubeadmin/
ディレクトリーに生成されます。
各アクセスタイプには、異なる認証局 (CA) によって署名された異なる認証証明書が必要です。複数の kubeconfig
ファイルを生成することで、このニーズに対応できます。
それぞれの場合に必要なアクセスタイプに適切な kubeconfig
ファイルを使用して、認証の詳細を提供できます。Red Hat build of MicroShift kubeconfig
ファイルの内容は、デフォルトの組み込み値または config.yaml
ファイルによって決まります。
クラスターにアクセスするには、kubeconfig
ファイルが存在する必要があります。値は、組み込みのデフォルト値、または config.yaml
(作成されている場合) から適用されます。
kubeconfig ファイルの内容の例
/var/lib/microshift/resources/kubeadmin/ ├── kubeconfig ├── alt-name-1 │ └── kubeconfig ├── 1.2.3.4 │ └── kubeconfig └── microshift-rhel9 └── kubeconfig
/var/lib/microshift/resources/kubeadmin/
├── kubeconfig
├── alt-name-1
│ └── kubeconfig
├── 1.2.3.4
│ └── kubeconfig
└── microshift-rhel9
└── kubeconfig
2.2. ローカルアクセスの kubeconfig ファイル
ローカルアクセスの kubeconfig
ファイルは /var/lib/microshift/resources/kubeadmin/kubeconfig
に書き込まれます。この kubeconfig
ファイルは、localhost
を使用した API サーバーへのアクセスを提供します。クラスターをローカルに接続する場合は、このファイルを選択します。
ローカルアクセス用の kubeconfig
の内容例
clusters: - cluster: certificate-authority-data: <base64 CA> server: https://localhost:6443
clusters:
- cluster:
certificate-authority-data: <base64 CA>
server: https://localhost:6443
localhost
の kubeconfig
ファイルは、同じホストから API サーバーに接続するクライアントからのみ使用できます。ファイル内の証明書はリモート接続では機能しません。
2.2.1. Red Hat build of MicroShift クラスターにローカルでアクセス
以下の手順に従って、kubeconfig
ファイルを使用して Red Hat build of MicroShift クラスターをローカルでアクセスします。
前提条件
-
oc
バイナリーがインストールされている。
手順
オプション: RHEL マシンに
~/.kube/
フォルダーがない場合に作成するには、次のコマンドを実行します。mkdir -p ~/.kube/
$ mkdir -p ~/.kube/
Copy to Clipboard Copied! 次のコマンドを実行して、生成されたローカルアクセス
kubeconfig
ファイルを~/.kube/
ディレクトリーにコピーします。sudo cat /var/lib/microshift/resources/kubeadmin/kubeconfig > ~/.kube/config
$ sudo cat /var/lib/microshift/resources/kubeadmin/kubeconfig > ~/.kube/config
Copy to Clipboard Copied! 次のコマンドを実行して、
~/.kube/config
ファイルの権限を更新します。chmod go-r ~/.kube/config
$ chmod go-r ~/.kube/config
Copy to Clipboard Copied!
検証
次のコマンドを実行して、Red Hat build of MicroShift が実行していることを確認します。
oc get all -A
$ oc get all -A
Copy to Clipboard Copied!
2.3. リモートアクセスの kubeconfig ファイル
Red Hat build of MicroShift クラスターが外部ソースから API サーバーに接続する場合は、SAN フィールド内のすべての代替名を持つ証明書が検証に使用されます。Red Hat build of MicroShift の Red Hat ビルドは、hostname
値を使用して外部アクセス用のデフォルトの kubeconfig
を生成します。デフォルトは、デフォルトの kubeconfig
ファイルの <node.hostnameOverride>
、<node.nodeIP>
、および api.<dns.baseDomain>
パラメーター値に設定されます。
/var/lib/microshift/resources/kubeadmin/<hostname>/kubeconfig
ファイルは、マシンの hostname
、またはオプションが設定されている場合は node.hostnameOverride
を使用して、API サーバーにアクセスします。kubeconfig
ファイルの CA は、外部からアクセスされたときに証明書を検証できます。
リモートアクセス用のデフォルトの kubeconfig
ファイルの内容の例
clusters: - cluster: certificate-authority-data: <base64 CA> server: https://microshift-rhel9:6443
clusters:
- cluster:
certificate-authority-data: <base64 CA>
server: https://microshift-rhel9:6443
2.3.1. リモートアクセスのカスタマイズ
異なる IP アドレスまたはホスト名でクラスターにアクセスするために、複数のリモートアクセス kubeconfig
ファイル値を生成できます。apiServer.subjectAltNames
パラメーターのエントリーごとに追加の kubeconfig
ファイルが生成されます。IP 接続中にホストからリモートアクセス kubeconfig
ファイルをコピーし、それを使用して他のワークステーションから API サーバーにアクセスできます。
2.4. リモートアクセス用の追加の kubeconfig ファイルの生成
デフォルトのリモートアクセスファイルが提供するものより多くのホスト名または IP アドレスが必要な場合は、追加の kubeconfig
ファイルを生成して使用できます。
設定の変更を実装するには、Red Hat build of MicroShift を再起動する必要があります。
前提条件
-
Red Hat build of MicroShift の
config.yaml
が作成されている。
手順
(オプション) 次のコマンドを実行すると、
config.yaml
の内容を表示できます。cat /etc/microshift/config.yaml
$ cat /etc/microshift/config.yaml
Copy to Clipboard Copied! (オプション) 次のコマンドを実行すると、リモートアクセス
kubeconfig
ファイルの内容を表示できます。cat /var/lib/microshift/resources/kubeadmin/<hostname>/kubeconfig
$ cat /var/lib/microshift/resources/kubeadmin/<hostname>/kubeconfig
Copy to Clipboard Copied! 重要追加のリモートアクセス
kubeconfig
ファイルには、Red Hat build of MicroShiftconfig.yaml
ファイルにリストされているサーバー名のいずれかを含める必要があります。追加のkubeconfig
ファイルも検証に同じ CA を使用する必要があります。追加の DNS 名、SAN、または外部 IP アドレス用に追加の
kubeconfig
ファイルを生成するには、必要なエントリーをapiServer.subjectAltNames
フィールドに追加します。次の例では、使用される DNS 名はalt-name-1
、IP アドレスは1.2.3.4
です。追加の認証値を含む
config.yaml
の例dns: baseDomain: example.com node: hostnameOverride: "microshift-rhel9" nodeIP: 10.0.0.1 apiServer: subjectAltNames: - alt-name-1 - 1.2.3.4
dns: baseDomain: example.com node: hostnameOverride: "microshift-rhel9"
1 nodeIP: 10.0.0.1 apiServer: subjectAltNames: - alt-name-1
2 - 1.2.3.4
3 Copy to Clipboard Copied! Red Hat build of MicroShift を再起動して設定の変更を適用し、次のコマンドを実行して必要な
kubeconfig
ファイルを自動生成します。sudo systemctl restart microshift
$ sudo systemctl restart microshift
Copy to Clipboard Copied! 追加のリモートアクセス
kubeconfig
ファイルの内容を確認するには、config.yaml
にリストされている名前または IP アドレスをcat
コマンドに挿入します。たとえば、次のコマンド例ではalt-name-1
が使用されています。cat /var/lib/microshift/resources/kubeadmin/alt-name-1/kubeconfig
$ cat /var/lib/microshift/resources/kubeadmin/alt-name-1/kubeconfig
Copy to Clipboard Copied! クラスターの接続に使用する SAN または IP アドレスを含む、使用する
kubeconfig
ファイルを選択します。この例では、cluster.server
フィールドに `alt-name-1` を含むkubeconfig
が正しいファイルです。追加の
kubeconfig
ファイルの内容の例clusters: - cluster: certificate-authority-data: <base64 CA> server: https://alt-name-1:6443
clusters: - cluster: certificate-authority-data: <base64 CA> server: https://alt-name-1:6443
1 Copy to Clipboard Copied! - 1
/var/lib/microshift/resources/kubeadmin/alt-name-1/kubeconfig
ファイルの値は、apiServer.subjectAltNames
設定値からのものです。
これらのパラメーターはすべて、API サーバーの外部提供証明書に共通名 (CN) およびサブジェクト代替名 (SAN) として含まれています。
2.4.1. Red Hat build of MicroShift クラスターにリモートアクセスするためにファイアウォールを開く
リモートユーザーが Red Hat build of MicroShift クラスターにアクセスできるように、次の手順を使用してファイアウォールを開きます。この手順は、ワークステーションユーザーがリモートでクラスターにアクセスする前に完了する必要があります。
この手順では、user@microshift
は、Red Hat build of MicroShift ホストマシンのユーザーで、別のワークステーション上のリモートユーザーがアクセスできるようにそのマシンを設定します。
前提条件
-
oc
バイナリーがインストールされている。 - クラスター管理者の権限がある。
手順
Red Hat build of MicroShift ホストの
user@microshift
として、次のコマンドを実行して、Kubernetes API サーバー (6443/tcp
) のファイアウォールポートを開きます。sudo firewall-cmd --permanent --zone=public --add-port=6443/tcp && sudo firewall-cmd --reload
[user@microshift]$ sudo firewall-cmd --permanent --zone=public --add-port=6443/tcp && sudo firewall-cmd --reload
Copy to Clipboard Copied!
検証
user@microshift
として、次のコマンドを実行して、Red Hat build of MicroShift が実行していることを確認します。oc get all -A
[user@microshift]$ oc get all -A
Copy to Clipboard Copied!
2.4.2. Red Hat build of MicroShift クラスターにリモートでアクセス
以下の手順に従って、kubeconfig
ファイルを使用してリモートワークステーションから Red Hat build of MicroShift クラスターにアクセスします。
user@workstation
ログインは、ホストマシンにリモートからアクセスするのに使用されます。手順の <user>
値は、user@workstation
が Red Hat build of MicroShift ホストにログインするユーザーの名前になります。
前提条件
-
oc
バイナリーがインストールされている。 -
@user@microshift
は、ローカルホストからファイアウォールを開いている。
手順
RHEL マシンに
~/.kube/
フォルダーがない場合は、user@workstation
として、次のコマンドを実行してフォルダーを作成します。mkdir -p ~/.kube/
[user@workstation]$ mkdir -p ~/.kube/
Copy to Clipboard Copied! user@workstation
として、次のコマンドを実行して、Red Hat build of MicroShift ホストのホスト名の変数を設定します。MICROSHIFT_MACHINE=<name or IP address of Red Hat build of MicroShift machine>
[user@workstation]$ MICROSHIFT_MACHINE=<name or IP address of Red Hat build of MicroShift machine>
Copy to Clipboard Copied! user@workstation
として、次のコマンドを実行して、Red Hat build of MicroShift を実行している RHEL マシンからローカルマシンに接続するホスト名または IP アドレスを含む生成されたkubeconfig
ファイルをコピーします。ssh <user>@$MICROSHIFT_MACHINE "sudo cat /var/lib/microshift/resources/kubeadmin/$MICROSHIFT_MACHINE/kubeconfig" > ~/.kube/config
[user@workstation]$ ssh <user>@$MICROSHIFT_MACHINE "sudo cat /var/lib/microshift/resources/kubeadmin/$MICROSHIFT_MACHINE/kubeconfig" > ~/.kube/config
Copy to Clipboard Copied! user@workstation
として、次のコマンドを実行して~/.kube/config
ファイルのパーミッションを更新します。chmod go-r ~/.kube/config
$ chmod go-r ~/.kube/config
Copy to Clipboard Copied!
検証
user@workstation
として、次のコマンドを実行して、Red Hat build of MicroShift が実行していることを確認します。oc get all -A
[user@workstation]$ oc get all -A
Copy to Clipboard Copied!