8.12. 클러스터 FQDN을 사용하여 가상 머신에 액세스
클러스터의 FQDN(정규화된 도메인 이름)을 사용하여 클러스터 외부에서 보조 네트워크 인터페이스에 연결된 VM(가상 머신)에 액세스할 수 있습니다.
클러스터 FQDN을 사용하여 VM에 액세스하는 것은 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.
8.12.1. 보조 네트워크에 대한 DNS 서버 구성
CNAO(Cluster Network Addons Operator)는 HyperConverged
CR(사용자 정의 리소스)에서 deployKubeSecondaryDNS
기능 게이트를 활성화할 때 DNS(Domain Name Server) 서버 및 모니터링 구성 요소를 배포합니다.
사전 요구 사항
-
OpenShift CLI(
oc
)를 설치합니다. - 클러스터에 대한 로드 밸런서를 구성했습니다.
-
cluster-admin
권한이 있는 클러스터에 로그인했습니다.
프로세스
다음 예에 따라
oc expose
명령을 실행하여 클러스터 외부에 DNS 서버를 노출하는 로드 밸런서 서비스를 생성합니다.$ oc expose -n openshift-cnv deployment/secondary-dns --name=dns-lb \ --type=LoadBalancer --port=53 --target-port=5353 --protocol='UDP'
다음 명령을 실행하여 외부 IP 주소를 검색합니다.
$ oc get service -n openshift-cnv
출력 예
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE dns-lb LoadBalancer 172.30.27.5 10.46.41.94 53:31829/TCP 5s
다음 명령을 실행하여 기본 편집기에서
HyperConverged
CR을 편집합니다.$ oc edit hyperconverged kubevirt-hyperconverged -n openshift-cnv
다음 예에 따라 DNS 서버 및 모니터링 구성 요소를 활성화합니다.
apiVersion: hco.kubevirt.io/v1beta1 kind: HyperConverged metadata: name: kubevirt-hyperconverged namespace: openshift-cnv spec: featureGates: deployKubeSecondaryDNS: true kubeSecondaryDNSNameServerIP: "10.46.41.94" 1 # ...
- 1
- 로드 밸런서 서비스에서 노출하는 외부 IP 주소를 지정합니다.
- 파일을 저장하고 편집기를 종료합니다.
다음 명령을 실행하여 클러스터 FQDN을 검색합니다.
$ oc get dnses.config.openshift.io cluster -o jsonpath='{.spec.baseDomain}'
출력 예
openshift.example.com
다음 방법 중 하나를 사용하여 DNS 서버를 가리킵니다.
로컬 머신의
resolv.conf
파일에kubeSecondaryDNSNameServerIP
값을 추가합니다.참고resolv.conf
파일을 편집하면 기존 DNS 설정을 덮어씁니다.kubeSecondaryDNSNameServerIP
값과 클러스터 FQDN을 엔터프라이즈 DNS 서버 레코드에 추가합니다. 예를 들면 다음과 같습니다.vm.<FQDN>. IN NS ns.vm.<FQDN>.
ns.vm.<FQDN>. IN A 10.46.41.94
8.12.2. 클러스터 FQDN을 사용하여 보조 네트워크의 VM에 연결
클러스터의 FQDN(정규화된 도메인 이름)을 사용하여 보조 네트워크 인터페이스에 연결된 실행 중인 VM(가상 머신)에 액세스할 수 있습니다.
사전 요구 사항
- VM에 QEMU 게스트 에이전트가 설치되어 있어야 합니다.
- VM의 IP 주소는 공용입니다.
- 보조 네트워크에 대한 DNS 서버를 구성했습니다.
- 클러스터의 FQDN(정규화된 도메인 이름)을 검색했습니다.
프로세스
다음 명령을 실행하여 VM 구성에서 네트워크 인터페이스 이름을 검색합니다.
$ oc get vm -n <namespace> <vm_name> -o yaml
출력 예
apiVersion: kubevirt.io/v1 kind: VirtualMachine metadata: name: example-vm namespace: example-namespace spec: running: true template: spec: domain: devices: interfaces: - bridge: {} name: example-nic # ... networks: - multus: networkName: bridge-conf name: example-nic 1
- 1
- 네트워크 인터페이스의 이름을 확인합니다.
ssh
명령을 사용하여 VM에 연결합니다.$ ssh <user_name>@<interface_name>.<vm_name>.<namespace>.vm.<cluster_fqdn>