11.6. 内部 FQDN を使用した仮想マシンへのアクセス
ヘッドレスサービスを使用すると、安定した完全修飾ドメイン名 (FQDN) 上のデフォルトの内部 Pod ネットワークに接続されている仮想マシン (VM) にアクセスできます。
Kubernetes ヘッドレスサービス は、Pod のセットの表現にクラスター IP アドレスを割り当てないサービス形式です。ヘッドレスサービスは、サービスに単一の仮想 IP アドレスを提供する代わりに、サービスに関連付けられた Pod ごとに DNS レコードを作成します。特定の TCP ポートまたは UDP ポートを公開しなくても、FQDN を通じて仮想マシンを公開できます。
OpenShift Container Platform Web コンソールを使用して VM を作成した場合、VirtualMachine details ページの Overview タブの Network タイルにその内部 FQDN が表示されます。VM への接続の詳細は、内部 FQDN を使用した仮想マシンへの接続 を参照してください。
11.6.1. CLI を使用したプロジェクトでのヘッドレスサービスの作成 リンクのコピーリンクがクリップボードにコピーされました!
namespace にヘッドレスサービスを作成するには、サービス YAML 定義に clusterIP: None
パラメーターを追加します。
前提条件
-
OpenShift CLI (
oc
) がインストールされている。
手順
次の例のように、仮想マシンを公開するための
Service
マニフェストを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Service
マニフェストファイルを保存します。 以下のコマンドを実行してサービスを作成します。
oc create -f headless_service.yaml
$ oc create -f headless_service.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
11.6.2. CLI を使用した仮想マシンのヘッドレスサービスへのマッピング リンクのコピーリンクがクリップボードにコピーされました!
内部の完全修飾ドメイン名 (FQDN) を使用してクラスター内から仮想マシン (VM) に接続するには、まず仮想マシンをヘッドレスサービスにマップする必要があります。仮想マシン設定ファイルに spec.hostname
および spec.subdomain
パラメーターを設定します。
サブドメインと名前が一致するヘッドレスサービスが存在する場合、<vm.spec.hostname>.<vm.spec.subdomain>.<vm.metadata.namespace>.svc.cluster.local
の形式で仮想マシンに対して一意の DNS A レコードが作成されます。
前提条件
-
OpenShift CLI (
oc
) がインストールされている。
手順
次のコマンドを実行して、
VirtualMachine
マニフェストを編集し、サービスセレクターラベルとサブドメインを追加します。oc edit vm <vm_name>
$ oc edit vm <vm_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow VirtualMachine
マニフェストファイルの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 変更を保存し、エディターを終了します。
- 仮想マシンを再起動して変更を適用します。
11.6.3. 内部 FQDN を使用した仮想マシンへの接続 リンクのコピーリンクがクリップボードにコピーされました!
内部の完全修飾ドメイン名 (FQDN) を使用して仮想マシン (VM) に接続できます。
前提条件
-
virtctl
ツールがインストールされている。 -
Web コンソールから仮想マシンの内部 FQDN を特定するか、仮想マシンをヘッドレスサービスにマッピングしている。内部 FQDN の形式は
<vm.spec.hostname>.<vm.spec.subdomain>.<vm.metadata.namespace>.svc.cluster.local
です。
手順
次のコマンドを入力して仮想マシンコンソールに接続します。
virtctl console vm-fedora
$ virtctl console vm-fedora
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要求された FQDN を使用して仮想マシンに接続するには、次のコマンドを実行します。
ping myvm.mysubdomain.<namespace>.svc.cluster.local
$ ping myvm.mysubdomain.<namespace>.svc.cluster.local
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
PING myvm.mysubdomain.default.svc.cluster.local (10.244.0.57) 56(84) bytes of data. 64 bytes from myvm.mysubdomain.default.svc.cluster.local (10.244.0.57): icmp_seq=1 ttl=64 time=0.029 ms
PING myvm.mysubdomain.default.svc.cluster.local (10.244.0.57) 56(84) bytes of data. 64 bytes from myvm.mysubdomain.default.svc.cluster.local (10.244.0.57): icmp_seq=1 ttl=64 time=0.029 ms
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 上記の例では、
myvm.mysubdomain.default.svc.cluster.local
の DNS エントリーは10.244.0.57
を指しています。これは、現在仮想マシンに割り当てられているクラスター IP アドレスです。