10.5. 内部 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 を使用した仮想マシンへの接続 を参照してください。
10.5.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.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
10.5.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 - 変更を保存し、エディターを終了します。
- 仮想マシンを再起動して変更を適用します。
10.5.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-fedoraCopy to Clipboard Copied! Toggle word wrap Toggle overflow 要求された FQDN を使用して仮想マシンに接続するには、次のコマンドを実行します。
ping myvm.mysubdomain.<namespace>.svc.cluster.local
$ ping myvm.mysubdomain.<namespace>.svc.cluster.localCopy 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 msCopy to Clipboard Copied! Toggle word wrap Toggle overflow 上記の例では、
myvm.mysubdomain.default.svc.cluster.localの DNS エントリーは10.244.0.57を指しています。これは、現在仮想マシンに割り当てられているクラスター IP アドレスです。