KubeVirt user guide : Network – DNS records

VirtualMachineInstance당 고유한 DNS 레코드를 만들려면 spec.hostnamespec.subdomain 를 설정할 수 있습니다. 하위 도메인이 설정되어 있고 하위 도메인과 일치하는 이름을 가진 헤드리스 서비스가 있는 경우 kube-dns는 서비스 선택기와 일치하는 모든 VirtualMachineInstance에 대해 고유한 DNS 항목을 만듭니다. 추가 정보는 DNS for Services and Pods 문서를 참조하세요.

다음 예제는 VirtualMachine과 VirtualMachineInstance의 레이블과 하위 도메인과 일치하는 헤드리스 서비스로 구성됩니다.

apiVersion: kubevirt.io/v1
kind: VirtualMachineInstance
metadata:
  name: vmi-fedora
  labels:
    expose: me
spec:
  hostname: "myvmi"
  subdomain: "mysubdomain"
  domain:
    devices:
      disks:
      - disk:
          bus: virtio
        name: containerdisk
      - disk:
          bus: virtio
        name: cloudinitdisk
    resources:
      requests:
        memory: 1024M
  terminationGracePeriodSeconds: 0
  volumes:
  - name: containerdisk
    containerDisk:
      image: kubevirt/fedora-cloud-registry-disk-demo:latest
  - cloudInitNoCloud:
      userDataBase64: IyEvYmluL2Jhc2gKZWNobyAiZmVkb3JhOmZlZG9yYSIgfCBjaHBhc3N3ZAo=
    name: cloudinitdisk
---
apiVersion: v1
kind: Service
metadata:
  name: mysubdomain
spec:
  selector:
    expose: me
  clusterIP: None
  ports:
  - name: foo # Actually, no port is needed.
    port: 1234
    targetPort: 1234

결과적으로, 예를 들어 virtctl console vmi-fedora를 통해 VirtualMachineInstance에 들어가서 myvmi.mysubdomain을 ping하면 VirtualMachineInstance(서비스가 아닌)의 IP인 10.244.0.57을 가리키는 myvmi.mysubdomain.default.svc.cluster.local의 DNS 항목을 찾을 수 있습니다:

[fedora@myvmi ~]$ ping myvmi.mysubdomain
PING myvmi.mysubdomain.default.svc.cluster.local (10.244.0.57) 56(84) bytes of data.
64 bytes from myvmi.mysubdomain.default.svc.cluster.local (10.244.0.57): icmp_seq=1 ttl=64 time=0.029 ms
[fedora@myvmi ~]$ ip a
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 0a:58:0a:f4:00:39 brd ff:ff:ff:ff:ff:ff
    inet 10.244.0.57/24 brd 10.244.0.255 scope global dynamic eth0
       valid_lft 86313556sec preferred_lft 86313556sec
    inet6 fe80::858:aff:fef4:39/64 scope link
       valid_lft forever preferred_lft forever

따라서 spec.hostname과 spec.subdomain은 <vmi.spec.hostname>.<vmi.spec.subdomain> 형식의 DNS A 레코드로 변환됩니다. spec.hostname이 설정되지 않은 경우 VirtualMachineInstance 이름 자체로 돌아갑니다. 그러면 결과 DNS A 레코드는 다음과 같습니다: <vmi.metadata.name>.<vmi.spec.subdomain>.<vmi.metadata.namespace>.svc.cluster.local

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

You May Also Like
Read More

Kustomize Glossary

출처 : https://kubectl.docs.kubernetes.io/references/kustomize/glossary/ Application 애플리케이션은 데이터베이스가 지원하는 웹서버 앞의 로드 밸런서와 같이 공통된 목적으로 관련된 k8 리소스의 그룹입니다.…
Read More

KubeVirt user guide : Architecture

KubeVirt는 서비스 지향 아키텍처와 choreography 패턴을 사용하여 구축되었습니다. 스택 가상화 서비스가 필요한 사용자는 Virtualization API(아래 참조)에 말하고, 이는…