8.9. 서비스 메시에 가상 머신 연결
OpenShift Virtualization이 OpenShift Service Mesh와 통합되었습니다. IPv4를 사용하여 기본 Pod 네트워크에서 가상 머신 워크로드를 실행하는 Pod 간 트래픽을 모니터링, 시각화 및 제어할 수 있습니다.
8.9.1. 서비스 메시에 가상 머신 추가
VM(가상 머신) 워크로드를 서비스 메시에 추가하려면 sidecar.istio.io/inject
주석을 true
로 설정하여 VM 구성 파일에서 자동 사이드카 삽입을 활성화합니다. 그런 다음 VM을 서비스로 노출하여 메시에서 애플리케이션을 확인합니다.
포트 충돌을 방지하려면 Istio 사이드카 프록시에서 사용하는 포트를 사용하지 마십시오. 여기에는 포트 15000, 15001, 15006, 15008, 15020, 15021 및 15090이 포함됩니다.
사전 요구 사항
- Service Mesh Operator가 설치되어 있어야 합니다.
- Service Mesh Control Plane을 생성하셨습니다.
- VM 프로젝트를 서비스 메시 멤버 롤에 추가했습니다.
프로세스
VM 구성 파일을 편집하여
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
VM 구성을 적용합니다.
$ oc apply -f <vm_name>.yaml 1
- 1
- 가상 머신 YAML 파일의 이름입니다.
VM을
서비스
메시에 노출하는 서비스 오브젝트를 생성합니다.apiVersion: v1 kind: Service metadata: name: vm-istio spec: selector: app: vm-istio 1 ports: - port: 8080 name: http protocol: TCP
- 1
- 서비스에서 대상으로 하는 Pod 세트를 결정하는 서비스 선택기입니다. 이 속성은 VM 구성 파일의
spec.metadata.labels
필드에 해당합니다. 위의 예에서 vm-istio라는Service
오브젝트는app=
레이블이 있는 모든 Pod에서 TCP 포트 8080을 대상으로 합니다.vm-istio
서비스를 생성합니다.
$ oc create -f <service_name>.yaml 1
- 1
- 서비스 YAML 파일의 이름입니다.