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 ファイルの例
- 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 は、ポート範囲の拡張時に避けるべきポートを示しています。
Expand 表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 ファイルの内容の例
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! Toggle word wrap Toggle overflow 次のコマンドを実行して、生成されたローカルアクセス
kubeconfigファイルを~/.kube/ディレクトリーにコピーします。sudo cat /var/lib/microshift/resources/kubeadmin/kubeconfig > ~/.kube/config
$ sudo cat /var/lib/microshift/resources/kubeadmin/kubeconfig > ~/.kube/configCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
~/.kube/configファイルの権限を更新します。chmod go-r ~/.kube/config
$ chmod go-r ~/.kube/configCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
次のコマンドを実行して、Red Hat build of MicroShift が実行していることを確認します。
oc get all -A
$ oc get all -ACopy to Clipboard Copied! Toggle word wrap Toggle overflow
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.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow (オプション) 次のコマンドを実行すると、リモートアクセス
kubeconfigファイルの内容を表示できます。cat /var/lib/microshift/resources/kubeadmin/<hostname>/kubeconfig
$ cat /var/lib/microshift/resources/kubeadmin/<hostname>/kubeconfigCopy to Clipboard Copied! Toggle word wrap Toggle overflow 重要追加のリモートアクセス
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の例Copy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat build of MicroShift を再起動して設定の変更を適用し、次のコマンドを実行して必要な
kubeconfigファイルを自動生成します。sudo systemctl restart microshift
$ sudo systemctl restart microshiftCopy to Clipboard Copied! Toggle word wrap Toggle overflow 追加のリモートアクセス
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/kubeconfigCopy to Clipboard Copied! Toggle word wrap Toggle overflow クラスターの接続に使用する SAN または IP アドレスを含む、使用する
kubeconfigファイルを選択します。この例では、cluster.serverフィールドに `alt-name-1` を含むkubeconfigが正しいファイルです。追加の
kubeconfigファイルの内容の例clusters: - cluster: certificate-authority-data: <base64 CA> server: https://alt-name-1:6443clusters: - cluster: certificate-authority-data: <base64 CA> server: https://alt-name-1:64431 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 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 --reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
user@microshiftとして、次のコマンドを実行して、Red Hat build of MicroShift が実行していることを確認します。oc get all -A
[user@microshift]$ oc get all -ACopy to Clipboard Copied! Toggle word wrap Toggle overflow
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! Toggle word wrap Toggle overflow 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! Toggle word wrap Toggle overflow 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/configCopy to Clipboard Copied! Toggle word wrap Toggle overflow user@workstationとして、次のコマンドを実行して~/.kube/configファイルのパーミッションを更新します。chmod go-r ~/.kube/config
$ chmod go-r ~/.kube/configCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
user@workstationとして、次のコマンドを実行して、Red Hat build of MicroShift が実行していることを確認します。oc get all -A
[user@workstation]$ oc get all -ACopy to Clipboard Copied! Toggle word wrap Toggle overflow