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
권한이 있는 클러스터에 로그인했습니다.
프로세스
다음 명령을 실행하여 기본 편집기에서
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 1 # ...
- 1
- DNS 서버 활성화
- 파일을 저장하고 편집기를 종료합니다.
다음 예에 따라
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
이전에 검색한 외부 IP 주소를 엔터프라이즈 DNS 서버 레코드의
kubeSecondaryDNSNameServerIP
필드에 추가합니다. 예를 들면 다음과 같습니다.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 서버를 가리킵니다. 이렇게 하려면
kubeSecondaryDNSNameServerIP
값과 클러스터 FQDN을 엔터프라이즈 DNS 서버 레코드에 추가합니다. 예를 들면 다음과 같습니다.vm.<FQDN>. IN NS ns.vm.<FQDN>.
ns.vm.<FQDN>. IN A <kubeSecondaryDNSNameServerIP>
8.12.2. 클러스터 FQDN을 사용하여 보조 네트워크의 VM에 연결
클러스터의 FQDN(정규화된 도메인 이름)을 사용하여 보조 네트워크 인터페이스에 연결된 실행 중인 VM(가상 머신)에 액세스할 수 있습니다.
사전 요구 사항
- VM에 QEMU 게스트 에이전트가 설치되어 있어야 합니다.
- VM의 IP 주소는 공용입니다.
- 보조 네트워크에 대한 DNS 서버를 구성했습니다.
클러스터의 FQDN(정규화된 도메인 이름)을 검색했습니다.
FQDN을 가져오려면 다음과 같이
oc get
명령을 사용합니다.$ oc get dnses.config.openshift.io cluster -o json | jq .spec.baseDomain
프로세스
다음 명령을 실행하여 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>