8.13. 外部 FQDN を使用した仮想マシンへのアクセス
完全修飾ドメイン名 (FQDN) を使用して、クラスターの外部からセカンダリーネットワークインターフェイスに接続されている仮想マシン (VM) にアクセスできます。
FQDN を使用してクラスター外から VM へのアクセスは、テクノロジープレビューのみの機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビューの機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
8.13.1. セカンダリーネットワーク用の DNS サーバーの設定
Cluster Network Addons Operator (CNAO) は、HyperConverged
カスタムリソース (CR) で deployKubeSecondaryDNS
機能ゲートを有効にすると、ドメインネームサーバー (DNS) サーバーと監視コンポーネントをデプロイします。
前提条件
-
OpenShift CLI (
oc
) がインストールされている。 - クラスターのロードバランサーを設定しました。
-
cluster-admin
パーミッションを使用してクラスターにログインしました。
手順
次の例に従って
oc expose
コマンドを実行して、クラスターの外部に DNS サーバーを公開するロードバランサーサービスを作成します。$ oc expose -n openshift-cnv deployment/secondary-dns --name=dns-lb \ --type=LoadBalancer --port=53 --target-port=5353 --protocol='UDP'
次のコマンドを実行して、外部 IP アドレスを取得します。
$ oc get service -n openshift-cnv
出力例
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE dns-lb LoadBalancer 172.30.27.5 10.46.41.94 53:31829/TCP 5s
以下のコマンドを実行して、デフォルトエディターで
HyperConverged
CR を編集します。$ oc edit hyperconverged kubevirt-hyperconverged -n openshift-cnv
次の例に従って、DNS サーバーと監視コンポーネントを有効にします。
apiVersion: hco.kubevirt.io/v1beta1 kind: HyperConverged metadata: name: kubevirt-hyperconverged namespace: openshift-cnv spec: featureGates: deployKubeSecondaryDNS: true kubeSecondaryDNSNameServerIP: "10.46.41.94" 1 # ...
- 1
- ロードバランサーサービスによって公開される外部 IP アドレスを指定します。
- ファイルを保存して、エディターを終了します。
次のコマンドを実行して、クラスターの FQDN を取得します。
$ oc get dnses.config.openshift.io cluster -o jsonpath='{.spec.baseDomain}'
出力例
openshift.example.com
次のいずれかの方法を使用して、DNS サーバーを指定します。
ローカルマシンの
resolv.conf
ファイルにkubeSecondaryDNSNameServerIP
値を追加します。注記resolv.conf
ファイルを編集すると、既存の DNS 設定が上書きされます。kubeSecondaryDNSNameServerIP
値とクラスター FQDN をエンタープライズ DNS サーバーレコードに追加します。以下に例を示します。vm.<FQDN>. IN NS ns.vm.<FQDN>.
ns.vm.<FQDN>. IN A 10.46.41.94
8.13.2. クラスター FQDN を使用したセカンダリーネットワーク上の仮想マシンへの接続
クラスターの完全修飾ドメイン名 (FQDN) を使用して、セカンダリーネットワークインターフェイスに接続された実行中の仮想マシンにアクセスできます。
前提条件
- QEMU ゲストエージェントを仮想マシンにインストールしました。
- 仮想マシンの IP アドレスはパブリックです。
- セカンダリーネットワーク用の DNS サーバーを設定しました。
- クラスターの完全修飾ドメイン名 (FQDN) を取得しました。
手順
次のコマンドを実行して、仮想マシン設定からネットワークインターフェイス名を取得します。
$ oc get vm -n <namespace> <vm_name> -o yaml
出力例
apiVersion: kubevirt.io/v1 kind: VirtualMachine metadata: name: example-vm namespace: example-namespace spec: running: true template: spec: domain: devices: interfaces: - bridge: {} name: example-nic # ... networks: - multus: networkName: bridge-conf name: example-nic 1
- 1
- ネットワークインターフェイスの名前を書き留めます。
ssh
コマンドを使用して仮想マシンに接続します。$ ssh <user_name>@<interface_name>.<vm_name>.<namespace>.vm.<cluster_fqdn>