8.9. 仮想マシンのサービスメッシュへの接続
OpenShift Virtualization が OpenShift Service Mesh に統合されるようになりました。IPv4 を使用してデフォルトの Pod ネットワークで仮想マシンのワークロードを実行する Pod 間のトラフィックのモニター、可視化、制御が可能です。
8.9.1. サービスメッシュへの仮想マシンの追加
仮想マシン (VM) ワークロードをサービスメッシュに追加するには、sidecar.istio.io/inject
アノテーションを true
に設定して、仮想マシン設定ファイルでサイドカーコンテナーの自動挿入を有効にします。次に、仮想マシンをサービスとして公開し、メッシュでアプリケーションを表示します。
ポートの競合を回避するには、Istio サイドカープロキシーが使用するポートを使用しないでください。これには、ポート 15000、15001、15006、15008、15020、15021、および 15090 が含まれます。
前提条件
- Service Mesh Operators がインストールされました。
- Service Mesh コントロールプレーンを作成しました。
- 仮想マシンプロジェクトを Service Mesh メンバーロールに追加しました。
手順
仮想マシン設定ファイルを編集し、
sidecar.istio.io/inject: "true"
アノテーションを追加します。設定ファイルのサンプル
apiVersion: kubevirt.io/v1 kind: VirtualMachine metadata: labels: kubevirt.io/vm: vm-istio name: vm-istio spec: runStrategy: Always template: metadata: labels: kubevirt.io/vm: vm-istio app: vm-istio 1 annotations: sidecar.istio.io/inject: "true" 2 spec: domain: devices: interfaces: - name: default masquerade: {} 3 disks: - disk: bus: virtio name: containerdisk - disk: bus: virtio name: cloudinitdisk resources: requests: memory: 1024M networks: - name: default pod: {} terminationGracePeriodSeconds: 180 volumes: - containerDisk: image: registry:5000/kubevirt/fedora-cloud-container-disk-demo:devel name: containerdisk
仮想マシン設定を適用します。
$ oc apply -f <vm_name>.yaml 1
- 1
- 仮想マシン YAML ファイルの名前。
Service
オブジェクトを作成し、仮想マシンをサービスメッシュに公開します。apiVersion: v1 kind: Service metadata: name: vm-istio spec: selector: app: vm-istio 1 ports: - port: 8080 name: http protocol: TCP
- 1
- サービスの対象となる Pod セットを判別するサービスセレクターです。この属性は、仮想マシン設定ファイルの
spec.metadata.labels
フィールドに対応します。上記の例では、vm-istio
という名前のService
オブジェクトは、ラベルがapp=vm-istio
の Pod の TCP ポート 8080 をターゲットにします。
サービスを作成します。
$ oc create -f <service_name>.yaml 1
- 1
- サービス YAML ファイルの名前。