NLB용 DNS 하위 도메인 등록

클래식 인프라

이 컨텐츠는 클래식 클러스터의 NLB에 특정합니다. VPC 클러스터의 경우 DNS 하위 도메인에 VPC 로드 밸런서 호스트 이름 등록을 참조하십시오.

네트워크 로드 밸런서(NLB)를 설정한 후 하위 도메인을 작성하여 NLB IP에 대한 DNS 항목을 작성할 수 있습니다. TCP/HTTP(S) 모니터를 설정하여 각 하위 도메인 뒤에 있는 NLB IP 주소의 상태를 검사할 수도 있습니다.

하위 도메인
단일 구역 또는 다중 구역 클러스터에서 공용 NLB를 작성하는 경우 NLB IP 주소에 대한 하위 도메인을 작성하여 앱을 인터넷에 노출할 수 있습니다. 또한 IBM Cloud가 사용자에게 적합한 하위 도메인에 대한 와일드카드 SSL 인증서의 생성 및 유지보수를 관리합니다. 다중 구역 클러스터에서 하위 도메인을 작성하고 각 구역의 NLB IP 주소를 해당 하위 도메인 DNS 항목에 추가할 수 있습니다. 예를 들어, 미국 남부 지역의 세 개 구역에 사용자 앱에 적합한 NLB를 배치한 경우 세 개의 NLB IP 주소에 대한 하위 도메인 mycluster-a1b2cdef345678g9hi012j3kl4567890-0001.us-south.containers.appdomain.cloud를 작성할 수 있습니다. 사용자가 앱 하위 도메인에 액세스하면 클라이언트는 무작위로 이러한 IP 중 하나에 액세스하고 요청이 해당 NLB로 전송됩니다.

현재 사설 NLB에 대한 하위 도메인을 작성할 수 없습니다.

HTTP 모니터링을 사용하는 경우 모니터링 작업의 기본 사용자 에이전트는 NS1 HTTP Monitoring Job 입니다.

상태 검사 모니터
단일 하위 도메인 뒤에 있는 NLB IP 주소의 상태 검사를 사용으로 설정하여 해당 NLB IP 주소의 사용 가능 여부를 판별합니다. 하위 도메인에 대한 모니터를 사용으로 설정하면, 모니터 상태는 각 NLB IP를 검사하고 이러한 상태 검사를 기반으로 DNS 검색 결과가 지속적으로 업데이트되도록 합니다. 예를 들어, NLB의 IP 주소가 1.1.1.1, 2.2.2.23.3.3.3인 경우에 하위 도메인의 정상 오퍼레이션 DNS 검색은 모두 3개의 IP를 리턴하며 이 중에서 1개를 클라이언트가 무작위로 액세스합니다. IP 주소가 3.3.3.3인 NLB가 어떤 이유로든 사용 불가능하게 된 경우(예: 구역 장애로 인해), 해당 IP에 대한 상태 검사는 실패하며 모니터는 하위 도메인에서 실패한 IP를 제거합니다. 그리고 DNS 검색은 정상적인 1.1.1.12.2.2.2 IP만 리턴합니다.

다음 명령을 실행하여 클러스터의 NLB IP에 등록된 모든 하위 도메인을 볼 수 있습니다.

ibmcloud oc nlb-dns ls --cluster CLUSTER_NAME_OR_ID

DNS 마이크로서비스 업데이트는 비동기이며 적용하는 데 몇 분이 걸릴 수 있습니다. ibmcloud oc nlb-dns 명령을 실행하고 200확인 메시지를 수신하는 경우 변경사항이 구현될 때까지 대기해야 할 수도 있습니다. 하위 도메인의 상태를 확인하려면 ibmcloud oc nlb-dns ls 를 실행하고 출력에서 Status 열을 찾으십시오.

DNS 하위 도메인으로 NLB IP 등록

네트워크 로드 밸런서(NLB) IP 주소에 대한 하위 도메인을 작성하여 앱을 공용 인터넷에 노출합니다.

시작하기 전에:

하나 이상의 NLB IP 주소에 대한 하위 도메인을 작성하려면 다음을 수행하십시오.

  1. NLB에 대한 EXTERNAL-IP 주소를 가져오십시오. 하나의 앱을 노출하는 다중 구역 클러스터의 각 구역에 NLB가 있는 경우 각 NLB에 대해 IP를 가져오십시오.

    oc get svc
    

    다음 출력 예에서 NLB EXTERNAL-IPs168.2.4.588.2.4.5입니다.

    NAME             TYPE           CLUSTER-IP       EXTERNAL-IP       PORT(S)                AGE
    lb-myapp-dal10   LoadBalancer   172.21.xxx.xxx   168.2.4.5         1883:30303/TCP         6d
    lb-myapp-dal12   LoadBalancer   172.21.xxx.xxx   88.2.4.5          1883:31303/TCP         6d
    
  2. DNS 하위 도메인을 작성하여 IP를 등록하십시오. 여러 개의 IP 주소를 지정하려면 ‘ --ip ’ 옵션을 여러 번 사용하십시오.

    ibmcloud oc nlb-dns create classic --cluster <cluster_name_or_id> --ip <NLB_IP> --ip <NLB2_IP>
    
  3. 하위 도메인이 작성되었는지 확인하십시오.

    ibmcloud oc nlb-dns ls --cluster <cluster_name_or_id>
    

    출력 예

    Hostname                                                                                IP(s)              Health Monitor   SSL Cert Status           SSL Cert Secret Name
    mycluster-a1b2cdef345678g9hi012j3kl4567890-0001.us-south.containers.appdomain.cloud     ["168.2.4.5"]      None             created                   <certificate>
    
  4. 선택사항: 이전 단계에서 작성한 IBM 제공 하위 도메인을 가리키도록 사용자 정의 도메인을 설정하십시오.

    • 도메인 이름 서비스(DNS) 제공업체와 협력하여 사용자 지정 도메인을 등록하십시오.
    • IBM Cloud DNS 사용하여 사용자 정의 도메인을 등록합니다.

    로드 밸런서 구성에서 service.kubernetes.io/ibm-load-balancer-cloud-provider-dns-name 어노테이션을 사용하여 사용자 지정 도메인을 등록할 수도 있습니다.

  5. 표준 이름 레코드(CNAME)로 IBM 제공 도메인을 지정하여 사용자 정의 도메인의 별명을 정의하십시오.

  6. 웹 브라우저에서 작성한 하위 도메인을 통해 앱에 액세스하려면 URL을 입력하십시오.

그 다음에는 상태 모니터를 작성하여 하위 도메인의 상태 검사를 사용으로 설정할 수 있습니다.

하위 도메인 형식 이해

NLB의 하위 도메인은 <cluster_name>-<globally_unique_account_HASH>-0001.<region>.containers.appdomain.cloud 형식을 따릅니다.

예를 들어, NLB에 대해 작성하는 하위 도메인이 mycluster-a1b2cdef345678g9hi012j3kl4567890-0001.us-south.containers.appdomain.cloud와 같이 표시될 수 있습니다. 다음 표는 하위 도메인의 각 컴포넌트에 대해 설명합니다.

NLB 하위 도메인 형식 이해
NLB 하위 도메인 컴포넌트 설명
* 하위 도메인에 대한 와일드카드가 기본적으로 클러스터에 대해 등록됩니다.
<cluster_name>

클러스터의 이름입니다. - 클러스터 이름이 26자 이하이고 이 지역에서 고유하면 전체 클러스터 이름이 포함되고 수정되지 않습니다(myclustername).

  • 클러스터 이름이 26자 이하이고 이 지역에 동일한 이름의 기존 클러스터가 있는 경우 전체 클러스터 이름이 포함되고 대시와 6개의 무작위 문자가 추가됩니다(myclustername-ABC123).
  • 클러스터 이름이 26자 이상이고 이 지역에서 고유한 경우 클러스터 이름의 처음 24자만 사용됩니다(myveryverylongclusternam).
  • 클러스터 이름이 26자 이상이고 이 지역에 동일한 이름의 기존 클러스터가 있는 경우 클러스터 이름의 처음 17자만 사용되고 대시와 6개의 무작위 문자가 추가됩니다(myveryverylongclu-ABC123).
<globally_unique_account_HASH> 전세계적으로 고유한 HASH가 IBM Cloud 계정에 대해 작성됩니다. 클러스터에서 NLB에 대해 작성하는 모든 하위 도메인이 전세계적으로 고유한 이 HASH를 사용합니다.
0001 사용자가 작성하는 각 서브도메인의 카운터 역할을 합니다.
<region> 클러스터가 작성된 지역입니다.
containers.appdomain.cloud Red Hat OpenShift on IBM Cloud 하위 도메인에 대한 하위 도메인입니다.

상태 모니터를 작성하여 하위 도메인의 상태 검사를 사용으로 설정

단일 하위 도메인 뒤에 있는 NLB IP 주소의 상태 검사를 사용으로 설정하여 해당 NLB IP 주소의 사용 가능 여부를 판별합니다.

Calico DNAT 이전 네트워크 정책, VPC 보안 그룹, VPC ACL(액세스 제어 목록) 또는 다른 사용자 지정 방화벽 솔루션을 사용하여 인그레스 또는 라우터 서비스로 들어오는 트래픽을 차단하는 경우, 상태 모니터링 엔드포인트에서 들어오는 트래픽을 허용해야 합니다. 자세한 내용은 인그레스 하위 도메인 모니터링을 위한 수신 네트워크 트래픽 허용에 대한 문서를 참조하세요.

시작하기 전에 DNS 호스트 이름으로 NLB IP를 등록하십시오.

  1. 하위 도메인의 이름을 가져오십시오. 출력에서는 호스트에 **의 **상태Unconfigured 모니터가 있다는 점에 유의하십시오.

    ibmcloud oc nlb-dns monitor ls --cluster <cluster_name_or_id>
    

    출력 예

    Hostname                                                                                   Status         Type    Port   Path
    mycluster-a1b2cdef345678g9hi012j3kl4567890-0001.us-south.containers.appdomain.cloud        Unconfigured   N/A     0      N/A
    
  2. 하위 도메인에 대한 상태 검사 모니터를 작성하십시오. 구성 매개변수를 포함하지 않으면 기본값이 사용됩니다.

    ibmcloud oc nlb-dns monitor configure --cluster <cluster_name_or_id> --nlb-host <host_name> --enable --type <type> --path <path> --timeout <timeout> --interval <interval> --port <port> --header <header>
    
    -c, --cluster <cluster_name_or_ID>
    필수: 하위 도메인이 등록된 클러스터의 이름 또는 ID입니다.
    --nlb-host <host_name>
    필수: 상태 검사 모니터를 사용으로 설정할 하위 도메인입니다.
    --enable
    이 옵션을 포함하면 하위 도메인에 대한 새로운 상태 확인 모니터를 활성화할 수 있습니다.
    --type <type>
    상태 검사에 사용할 프로토콜: HTTP, HTTPS 또는 TCP. 기본값: HTTP.
    --path <path>
    typeHTTPS인 경우: 상태 검사에 대한 엔드포인트 경로입니다. 기본값: /
    --timeout <timeout>
    IP가 접속 불가능한 상태로 간주되기 전의 시간(초)입니다. 상태 검사는 IP에 다시 접속하기 전에 interval 매개변수에 지정된 시간(초)을 기다립니다. 값은 1에서 60 사이의 정수여야 합니다. 기본값: 5
    --interval <interval>
    각 상태 검사 간의 간격(초)입니다. 짧은 간격은 장애 복구 시간이 개선되지만 IP에 대한 로드가 증가될 수 있습니다. 값은 60에서 300 사이의 정수여야 합니다. 기본값: 60.
    --port <port>
    상태 검사에 연결할 포트 번호입니다. typeTCP인 경우 이 매개변수는 필수입니다. typeHTTP 또는 HTTPS인 경우 80(HTTP) 또는 443(HTTPS) 이외의 포트를 사용하는 경우에만 포트를 정의하십시오. TCP의 기본값은 0입니다. HTTP의 기본값은 80입니다. HTTPS의 기본값은 443입니다.
    --header <header>
    typeHTTP 또는 HTTPS 인 경우 필수 사항: HTTP 상태 확인 요청 헤더는 Host 헤더로만 제한됩니다. 이 플래그는 HTTP 또는 HTTPS 유형에만 유효합니다. 이 플래그는 다음 형식의 값을 허용합니다: --header Header-Name=value. 모니터를 업데이트하면 기존 헤더가 지정된 헤더로 대체됩니다. 기존 헤더를 모두 삭제하려면 값을 비워둔 플래그 --header "" 를 지정하십시오.

    명령 예

    ibmcloud oc nlb-dns monitor configure --cluster mycluster --nlb-host mycluster-a1b2cdef345678g9hi012j3kl4567890-0001.us-south.containers.appdomain.cloud --enable --type HTTPS --path /alive --timeout 5 --interval 60 --header Host=example.com
    
  3. 상태 검사 모니터가 올바른 설정으로 구성되었는지 확인하십시오.

    ibmcloud oc nlb-dns monitor get --cluster <cluster_name_or_id> --nlb-host <host_name>
    

    출력 예

    Status:           enabled
    Type:             https
    Method:           GET
    Path:             /alive
    Expected Codes:   2xx
    Port:             443
    Timeout:          5
    Interval:         60
    Headers:
    Host:      example.com
    
  4. 서브도메인의 상태 검사 상태를 보십시오.

    ibmcloud oc nlb-dns monitor ls --cluster <cluster_name_or_id>
    

    출력 예

    Hostname                                                                                Status      Type    Port   Path
    mycluster-a1b2cdef345678g9hi012j3kl4567890-0001.us-south.containers.appdomain.cloud     enabled     https   443    /alive
    

하위 도메인에서 IP와 모니터의 업데이트 및 제거

생성한 하위 도메인에서 NLB IP 주소를 추가하고 제거할 수 있습니다. 필요에 따라 하위 도메인에 대한 상태 검사 모니터를 사용 및 사용 안함으로 설정할 수도 있습니다.

NLB IP

나중에 동일한 앱을 노출하도록 클러스터의 다른 구역에서 더 많은 NLB를 추가하는 경우 NLB IP를 기존 하위 도메인에 추가할 수 있습니다.

ibmcloud oc nlb-dns add --cluster <cluster_name_or_id> --ip <NLB_IP> --ip <NLB2_IP> ... --nlb-host <host_name>

하위 도메인으로 더 이상 등록하지 않을 NLB의 IP 주소도 제거할 수 있습니다. 제거할 각 IP 주소에 대해 다음 명령을 실행해야 합니다. 하위 도메인에서 모든 IP를 제거하는 경우 하위 도메인은 계속해서 존재하지만 IP가 이와 연관되지 않습니다.

ibmcloud oc nlb-dns rm classic --cluster <cluster_name_or_id> --ip <ip> --nlb-host <host_name>

상태 검사 모니터

상태 모니터 구성을 변경해야 하는 경우 특정 설정을 변경할 수 있습니다. 변경하려는 설정에 대한 옵션만 포함하십시오.

ibmcloud oc nlb-dns monitor configure --cluster <cluster_name_or_id> --nlb-host <host_name> --type <type> --path <path> --timeout <timeout> --interval <interval> --port <port> --header <header>

다음 명령을 실행하여 언제든지 하위 도메인에 대한 상태 검사 모니터를 사용 안함으로 설정할 수 있습니다.

ibmcloud oc nlb-dns monitor disable --cluster <cluster_name_or_id> --nlb-host <host_name>

하위 도메인에 대한 모니터를 사용으로 다시 설정하려면 다음 명령을 실행하십시오.

ibmcloud oc nlb-dns monitor enable --cluster <cluster_name_or_id> --nlb-host <host_name>