8.4. 내부 FQDN을 사용하여 가상 머신에 액세스


헤드리스 서비스를 사용하여 안정적인 FQDN(정규화된 도메인 이름)의 기본 내부 pod 네트워크에 연결된 VM(가상 머신)에 액세스할 수 있습니다.

Kubernetes 헤드리스 서비스는 Pod 세트를 나타내는 클러스터 IP 주소를 할당하지 않는 일종의 서비스입니다. 서비스에 대한 단일 가상 IP 주소를 제공하는 대신 헤드리스 서비스는 서비스와 연결된 각 Pod에 대한 DNS 레코드를 생성합니다. 특정 TCP 또는 UDP 포트를 노출하지 않고도 FQDN을 통해 VM을 노출할 수 있습니다.

중요

OpenShift Container Platform 웹 콘솔을 사용하여 VM을 생성한 경우 VirtualMachine 세부 정보 페이지의 개요 탭에서 네트워크 타일에 나열된 내부 FQDN을 찾을 수 있습니다. VM에 연결하는 방법에 대한 자세한 내용은 내부 FQDN을 사용하여 가상 머신에 연결을 참조하십시오.

8.4.1. CLI를 사용하여 프로젝트에서 헤드리스 서비스 생성

네임스페이스에서 헤드리스 서비스를 생성하려면 clusterIP: None 매개변수를 서비스 YAML 정의에 추가합니다.

사전 요구 사항

  • OpenShift CLI(oc)가 설치되어 있습니다.

프로세스

  1. 다음 예와 같이 VM을 노출하는 서비스 매니페스트를 생성합니다.

    apiVersion: v1
    kind: Service
    metadata:
      name: mysubdomain 1
    spec:
      selector:
        expose: me 2
      clusterIP: None 3
      ports: 4
      - protocol: TCP
        port: 1234
        targetPort: 1234
    1
    서비스 이름입니다. VirtualMachine 매니페스트 파일의 spec.subdomain 속성과 일치해야 합니다.
    2
    이 서비스 선택기는 VirtualMachine 매니페스트 파일의 expose:me 레이블과 일치해야 합니다.
    3
    헤드리스 서비스를 지정합니다.
    4
    서비스에서 노출하는 포트 목록입니다. 포트를 하나 이상 정의해야 합니다. 헤드리스 서비스에 영향을 미치지 않으므로 임의의 값이 될 수 있습니다.
  2. 서비스 매니페스트 파일을 저장합니다.
  3. 다음 명령을 실행하여 서비스를 생성합니다.

    $ oc create -f headless_service.yaml

8.4.2. CLI를 사용하여 가상 머신을 헤드리스 서비스에 매핑

FQDN(정규화된 도메인 이름)을 사용하여 클러스터 내에서 VM(가상 머신)에 연결하려면 먼저 VM을 헤드리스 서비스에 매핑해야 합니다. VM 구성 파일에서 spec.hostnamespec.subdomain 매개변수를 설정합니다.

하위 도메인과 일치하는 이름이 있는 헤드리스 서비스가 있으면 < vm.spec.hostname>.<vm.subdomain>.<vm.subdomain>.<vm.metadata.namespace>.svc.cluster.local 형식의 VM에 대한 고유한 DNS A 레코드가 생성됩니다.

프로세스

  1. 다음 명령을 실행하여 VirtualMachine 매니페스트를 편집하여 서비스 선택기 레이블 및 하위 도메인을 추가합니다.

    $ oc edit vm <vm_name>

    VirtualMachine 매니페스트 파일의 예

    apiVersion: kubevirt.io/v1
    kind: VirtualMachine
    metadata:
      name: vm-fedora
    spec:
      template:
        metadata:
          labels:
            expose: me 1
        spec:
          hostname: "myvm" 2
          subdomain: "mysubdomain" 3
    # ...

    1
    expose:me 레이블은 이전에 생성한 서비스 매니페스트의 spec.selector 속성과 일치해야 합니다.
    2
    이 속성을 지정하지 않으면 결과 DNS A 레코드는 < vm.metadata.name>.<vm.spec.subdomain>.<vm.metadata.namespace>.svc.cluster.local 형식을 사용합니다.
    3
    spec.subdomain 속성은 Service 오브젝트의 metadata.name 값과 일치해야 합니다.
  2. 변경 사항을 저장하고 편집기를 종료합니다.
  3. VM을 다시 시작하여 변경 사항을 적용합니다.

8.4.3. 내부 FQDN을 사용하여 가상 머신에 연결

FQDN(정규화된 도메인 이름)을 사용하여 VM(가상 머신)에 연결할 수 있습니다.

사전 요구 사항

  • virtctl 툴을 설치했습니다.
  • 웹 콘솔에서 VM의 내부 FQDN을 식별하거나 VM을 헤드리스 서비스에 매핑하여 확인했습니다. 내부 FQDN 형식은 < vm.spec.hostname>.<vm.spec.subdomain>.<vm.metadata.namespace>.svc.cluster.local 입니다.

프로세스

  1. 다음 명령을 입력하여 VM 콘솔에 연결합니다.

    $ virtctl console vm-fedora
  2. 요청된 FQDN을 사용하여 VM에 연결하려면 다음 명령을 실행합니다.

    $ ping myvm.mysubdomain.<namespace>.svc.cluster.local

    출력 예

    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

    이전 예에서 myvm.mysubdomain.default.svc.cluster.local 은 현재 VM에 할당된 클러스터 IP 주소인 10.244.0.57 을 가리킵니다.

8.4.4. 추가 리소스

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.