8.4. リモートアクセス用の追加の kubeconfig ファイルの生成
デフォルトのリモートアクセスファイルが提供するものより多くのホスト名または IP アドレスが必要な場合は、追加の kubeconfig ファイルを生成して使用できます。
設定の変更を実装するには、MicroShift を再起動する必要があります。
前提条件
-
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-12 - 1.2.3.43 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:64431 - 1
/var/lib/microshift/resources/kubeadmin/alt-name-1/kubeconfigファイルの値は、apiServer.subjectAltNames設定値からのものです。
これらのパラメーターはすべて、API サーバーの外部提供証明書に共通名 (CN) およびサブジェクト代替名 (SAN) として含まれています。
8.4.1. MicroShift ノードへのリモートアクセス用にファイアウォールを開く リンクのコピーリンクがクリップボードにコピーされました!
リモートユーザーが MicroShift サービスにアクセスできるように、次の手順を使用してファイアウォールを開きます。この手順を完了しなければ、ワークステーションユーザーはノードにリモートでアクセスできません。
この手順では、user@microshift は、MicroShift ホストマシン上のユーザーであり、別のワークステーション上のリモートユーザーがアクセスできるようにそのマシンをセットアップする責任があります。
前提条件
-
OpenShift CLI (
oc) がインストールされている。 - クラスター管理者の権限がある。
手順
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として次のコマンドを実行して、MicroShift が入力されていることを確認します。$ oc get pods -A出力例
NAMESPACE NAME READY STATUS RESTARTS AGE default i-06166fbb376f14a8bus-west-2computeinternal-debug-qtwcr 1/1 Running 0 46m kube-system csi-snapshot-controller-5c6586d546-lprv4 1/1 Running 0 51m openshift-dns dns-default-45jl7 2/2 Running 0 50m openshift-dns node-resolver-7wmzf 1/1 Running 0 51m openshift-ingress router-default-78b86fbf9d-qvj9s 1/1 Running 0 51m openshift-ovn-kubernetes ovnkube-master-5rfhh 4/4 Running 0 51m openshift-ovn-kubernetes ovnkube-node-gcnt6 1/1 Running 0 51m openshift-service-ca service-ca-bf5b7c9f8-pn6rk 1/1 Running 0 51m openshift-storage topolvm-controller-549f7fbdd5-7vrmv 5/5 Running 0 51m openshift-storage topolvm-node-rht2m 3/3 Running 0 50m注記この出力例は、基本的な MicroShift インストールを示しています。オプションの RPM をインストールした場合は、それらのサービスを実行している Pod のステータスも出力に表示されることが予想されます。
8.4.2. MicroShift ノードへのリモートアクセス リンクのコピーリンクがクリップボードにコピーされました!
以下の手順に従って、kubeconfig ファイルを使用してリモートロケーションから MicroShift サービスにアクセスします。
user@workstation ログインは、ホストマシンにリモートからアクセスするのに使用されます。手順の <user> 値は、user@workstation が MicroShift ホストにログインするユーザーの名前になります。
前提条件
-
OpenShift CLI (
oc) がインストールされている。 -
user@microshiftは、ローカルホストからファイアウォールを開いている。 -
追加の
kubeconfigファイルが生成した。
手順
user@workstationとして、Red Hat Enterprise Linux (RHEL) マシンに~/.kube/フォルダーがない場合は、次のコマンドを実行してこのフォルダーを作成します。[user@workstation]$ mkdir -p ~/.kube/user@workstationとして、次のコマンドを実行して、MicroShift ホストのホスト名の変数を設定します。[user@workstation]$ MICROSHIFT_MACHINE=<microshift_hostname>1 - 1
- <MicroShift_hostname> の値は、実行しているホストの名前または IP アドレスに置き換えます。
user@workstationとして、次のコマンドを実行して、MicroShift を実行している RHEL マシンからローカルマシンに接続するホスト名または IP アドレスを含む生成されたkubeconfigファイルをコピーします。[user@workstation]$ ssh <user>@$MICROSHIFT_MACHINE "sudo cat /var/lib/microshift/resources/kubeadmin/$MICROSHIFT_MACHINE/kubeconfig" > ~/.kube/config1 - 1
- <user> は、SSH ログイン認証情報に置き換えます。
user@workstationとして、次のコマンドを実行して~/.kube/configファイルのパーミッションを更新します。$ chmod go-r ~/.kube/config
検証
user@workstationとして、次のコマンドを入力して、MicroShift が実行されていることを確認します。$ oc get pods -A出力例
NAMESPACE NAME READY STATUS RESTARTS AGE default i-06166fbb376f14a8bus-west-2computeinternal-debug-qtwcr 1/1 Running 0 46m kube-system csi-snapshot-controller-5c6586d546-lprv4 1/1 Running 0 51m openshift-dns dns-default-45jl7 2/2 Running 0 50m openshift-dns node-resolver-7wmzf 1/1 Running 0 51m openshift-ingress router-default-78b86fbf9d-qvj9s 1/1 Running 0 51m openshift-ovn-kubernetes ovnkube-master-5rfhh 4/4 Running 0 51m openshift-ovn-kubernetes ovnkube-node-gcnt6 1/1 Running 0 51m openshift-service-ca service-ca-bf5b7c9f8-pn6rk 1/1 Running 0 51m openshift-storage topolvm-controller-549f7fbdd5-7vrmv 5/5 Running 0 51m openshift-storage topolvm-node-rht2m 3/3 Running 0 50m注記この出力例は、基本的な MicroShift インストールを示しています。オプションの RPM をインストールした場合は、それらのサービスを実行している Pod のステータスも出力に表示されることが予想されます。