2.4. リモートアクセス用の追加の kubeconfig ファイルの生成
デフォルトのリモートアクセスファイルが提供するものより多くのホスト名または IP アドレスが必要な場合は、追加の kubeconfig
ファイルを生成して使用できます。
設定の変更を実装するには、Red Hat build of MicroShift を再起動する必要があります。
前提条件
-
Red Hat build of MicroShift の
config.yaml
が作成されている。
手順
(オプション) 次のコマンドを実行すると、
config.yaml
の内容を表示できます。$ cat /etc/microshift/config.yaml
(オプション) 次のコマンドを実行すると、リモートアクセス
kubeconfig
ファイルの内容を表示できます。$ cat /var/lib/microshift/resources/kubeadmin/<hostname>/kubeconfig
重要追加のリモートアクセス
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" 1 nodeIP: 10.0.0.1 apiServer: subjectAltNames: - alt-name-1 2 - 1.2.3.4 3
Red Hat build of MicroShift を再起動して設定の変更を適用し、次のコマンドを実行して必要な
kubeconfig
ファイルを自動生成します。$ sudo systemctl restart microshift
追加のリモートアクセス
kubeconfig
ファイルの内容を確認するには、config.yaml
にリストされている名前または IP アドレスをcat
コマンドに挿入します。たとえば、次のコマンド例ではalt-name-1
が使用されています。$ cat /var/lib/microshift/resources/kubeadmin/alt-name-1/kubeconfig
クラスターの接続に使用する SAN または IP アドレスを含む、使用する
kubeconfig
ファイルを選択します。この例では、cluster.server
フィールドに `alt-name-1` を含むkubeconfig
が正しいファイルです。追加の
kubeconfig
ファイルの内容の例clusters: - cluster: certificate-authority-data: <base64 CA> server: https://alt-name-1:6443 1
- 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
) のファイアウォールポートを開きます。[user@microshift]$ sudo firewall-cmd --permanent --zone=public --add-port=6443/tcp && sudo firewall-cmd --reload
検証
user@microshift
として、次のコマンドを実行して、Red Hat build of MicroShift が実行していることを確認します。[user@microshift]$ oc get all -A
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
として、次のコマンドを実行してフォルダーを作成します。[user@workstation]$ mkdir -p ~/.kube/
user@workstation
として、次のコマンドを実行して、Red Hat build of MicroShift ホストのホスト名の変数を設定します。[user@workstation]$ MICROSHIFT_MACHINE=<name or IP address of Red Hat build of MicroShift machine>
user@workstation
として、次のコマンドを実行して、Red Hat build of MicroShift を実行している RHEL マシンからローカルマシンに接続するホスト名または IP アドレスを含む生成されたkubeconfig
ファイルをコピーします。[user@workstation]$ ssh <user>@$MICROSHIFT_MACHINE "sudo cat /var/lib/microshift/resources/kubeadmin/$MICROSHIFT_MACHINE/kubeconfig" > ~/.kube/config
user@workstation
として、次のコマンドを実行して~/.kube/config
ファイルのパーミッションを更新します。$ chmod go-r ~/.kube/config
検証
user@workstation
として、次のコマンドを実行して、Red Hat build of MicroShift が実行していることを確認します。[user@workstation]$ oc get all -A