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
)가 설치되어 있습니다.
프로세스
다음 예와 같이 VM을 노출하는
서비스
매니페스트를 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
서비스
매니페스트 파일을 저장합니다. 다음 명령을 실행하여 서비스를 생성합니다.
oc create -f headless_service.yaml
$ oc create -f headless_service.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
8.4.2. CLI를 사용하여 가상 머신을 헤드리스 서비스에 매핑 링크 복사링크가 클립보드에 복사되었습니다!
FQDN(정규화된 도메인 이름)을 사용하여 클러스터 내에서 VM(가상 머신)에 연결하려면 먼저 VM을 헤드리스 서비스에 매핑해야 합니다. VM 구성 파일에서 spec.hostname
및 spec.subdomain
매개변수를 설정합니다.
하위 도메인과 일치하는 이름이 있는 헤드리스 서비스가 있으면 < vm.spec.hostname>.<vm.subdomain>.<vm.subdomain>.<vm.metadata.namespace>.svc.cluster.local
형식의 VM에 대한 고유한 DNS A 레코드가 생성됩니다.
프로세스
다음 명령을 실행하여
VirtualMachine
매니페스트를 편집하여 서비스 선택기 레이블 및 하위 도메인을 추가합니다.oc edit vm <vm_name>
$ oc edit vm <vm_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow VirtualMachine
매니페스트 파일의 예Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 변경 사항을 저장하고 편집기를 종료합니다.
- VM을 다시 시작하여 변경 사항을 적용합니다.
8.4.3. 내부 FQDN을 사용하여 가상 머신에 연결 링크 복사링크가 클립보드에 복사되었습니다!
FQDN(정규화된 도메인 이름)을 사용하여 VM(가상 머신)에 연결할 수 있습니다.
사전 요구 사항
-
virtctl
툴을 설치했습니다. -
웹 콘솔에서 VM의 내부 FQDN을 식별하거나 VM을 헤드리스 서비스에 매핑하여 확인했습니다. 내부 FQDN 형식은 <
vm.spec.hostname>.<vm.spec.subdomain>.<vm.metadata.namespace>.svc.cluster.local
입니다.
프로세스
다음 명령을 입력하여 VM 콘솔에 연결합니다.
virtctl console vm-fedora
$ virtctl console vm-fedora
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 요청된 FQDN을 사용하여 VM에 연결하려면 다음 명령을 실행합니다.
ping myvm.mysubdomain.<namespace>.svc.cluster.local
$ ping myvm.mysubdomain.<namespace>.svc.cluster.local
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
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
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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이전 예에서
myvm.mysubdomain.default.svc.cluster.local
은 현재 VM에 할당된 클러스터 IP 주소인10.244.0.57
을 가리킵니다.