This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.7.17. 仮想マシンのネットワーク
7.17.1. デフォルトの Pod ネットワーク用の仮想マシンの設定 リンクのコピーリンクがクリップボードにコピーされました!
masquerade バインディングモードを使用するようにネットワークインターフェイスを設定することで、仮想マシンをデフォルトの内部 Pod ネットワークに接続できます。
KubeMacPool コンポーネントは、指定の namespace に仮想マシン NIC の MAC アドレスプールサービスを提供します。これはデフォルトで有効にされません。KubeMacPool ラベルを namespace に適用して、その namespace で MAC アドレスプールを有効にします。
7.17.1.1. コマンドラインでのマスカレードモードの設定 リンクのコピーリンクがクリップボードにコピーされました!
マスカレードモードを使用し、仮想マシンの送信トラフィックを Pod IP アドレスの背後で非表示にすることができます。マスカレードモードは、ネットワークアドレス変換 (NAT) を使用して仮想マシンを Linux ブリッジ経由で Pod ネットワークバックエンドに接続します。
仮想マシンの設定ファイルを編集して、マスカレードモードを有効にし、トラフィックが仮想マシンに到達できるようにします。
前提条件
- 仮想マシンは、IPv4 アドレスを取得するために DHCP を使用できるように設定される必要がある。以下の例では、DHCP を使用するように設定されます。
手順
仮想マシン設定ファイルの
interfaces仕様を編集します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記ポート 49152 および 49153 は libvirt プラットフォームで使用するために予約され、これらのポートへの他のすべての受信トラフィックは破棄されます。
仮想マシンを作成します。
oc create -f <vm-name>.yaml
$ oc create -f <vm-name>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
7.17.1.2. 仮想マシンからのサービスの作成 リンクのコピーリンクがクリップボードにコピーされました!
仮想マシンを公開するために Service オブジェクトを最初に作成し、実行中の仮想マシンからサービスを作成します。
ClusterIP サービスタイプは、クラスター内で仮想マシンを内部に公開します。NodePort または LoadBalancer サービスタイプは、クラスター外から仮想マシンを外部に公開します。
この手順では、type: ClusterIP の Service オブジェクトを仮想マシンバックエンドサービスとして作成し、これに接続し、公開する方法についての例を示します。
ClusterIP は、サービスの type が指定されていない場合のデフォルトサービスの type です。
手順
以下のように仮想マシンの YAML を編集します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- ラベル
special: keyをspec.template.metadata.labelsセクションに追加します。
注記仮想マシンのラベルは Pod に渡されます。
VirtualMachine設定のラベル (例:special: key) は、この手順の後で作成するServiceYAMLselector属性のラベルに一致する必要があります。- 仮想マシン YAML を保存して変更を適用します。
ServiceYAML を編集し、Serviceオブジェクトを作成し、公開するために必要な設定を行います。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 作成および公開するサービスの
nameを指定します。 - 2
- 仮想マシン YAML に指定する
namespaceに対応するServiceYAML のmetadataセクションのnamespaceを指定します。 - 3
targetPort: 22を追加し、SSH ポート22にサービスを公開します。- 4
ServiceYAML のspecセクションで、special: keyをselector属性に追加します。これは、仮想マシン YAML 設定ファイルに追加したlabelsに対応します。- 5
ServiceYAML のspecセクションで、ClusterIP サービスのtype: ClusterIPを追加します。NodePortやLoadBalancerなどのクラスター外にある他のタイプのサービスを作成し、公開するには、type: ClusterIPをtype: NodePortまたはtype: LoadBalancerに随時置き換えます。
-
ServiceYAML を保存し、サービス設定を保管します。 ClusterIPサービスを作成します。oc create -f <service_name>.yaml
$ oc create -f <service_name>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 仮想マシンを起動します。仮想マシンがすでに実行中の場合は、これを再起動します。
Serviceオブジェクトをクエリーし、これが利用可能であり、ClusterIPタイプで設定されていることを確認します。検証
oc get serviceコマンドを実行し、仮想マシンで参照するnamespaceおよびServiceYAML ファイルを指定します。oc get service -n example-namespace
$ oc get service -n example-namespaceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE vmservice ClusterIP 172.30.3.149 <none> 27017/TCP 2m
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE vmservice ClusterIP 172.30.3.149 <none> 27017/TCP 2mCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
出力で示されているように、
vmserviceが実行されています。 -
TYPEは、ServiceYAML で指定したようにClusterIPとして表示されます。
-
出力で示されているように、
サービスをサポートするために使用する仮想マシンへの接続を確立します。別の仮想マシンなど、クラスター内のオブジェクトから接続します。
以下のように仮想マシンの YAML を編集します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc createコマンドを実行して 2 番目の仮想マシンを作成します。ここで、file.yamlは仮想マシン YAML の名前になります。oc create -f <file.yaml>
$ oc create -f <file.yaml>Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 仮想マシンを起動します。
以下の
virtctlコマンドを実行して仮想マシンに接続します。virtctl -n example-namespace console <new-vm-name>
$ virtctl -n example-namespace console <new-vm-name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記サービスタイプ
LoadBalancerの場合、vinagreクライアントを使用し、パブリック IP およびポートを使用して仮想マシンに接続します。外部ポートは、サービスタイプLoadBalancerを使用する場合に動的に割り当てられます。sshコマンドを実行して接続を認証します。ここで、172.30.3.149はサービスの ClusterIP であり、fedoraは仮想マシンのユーザー名です。ssh fedora@172.30.3.149 -p 27017
$ ssh fedora@172.30.3.149 -p 27017Copy to Clipboard Copied! Toggle word wrap Toggle overflow 検証
- 公開するサービスをサポートする仮想マシンのコマンドプロンプトが表示されます。実行中の仮想マシンがサポートするサービスの準備ができました。