14.5. 사용자 정의 도메인 Ingress 컨트롤러 생성


  1. 사용자 정의 도메인 Ingress 컨트롤러의 인증서를 프로비저닝하도록 인증서 리소스를 생성하고 구성합니다.

    참고

    다음 예제에서는 단일 도메인 인증서를 사용합니다. SAN 및 와일드카드 인증서도 지원됩니다.

    $ cat << EOF | oc apply -f -
    apiVersion: cert-manager.io/v1
    kind: Certificate
    metadata:
      name: custom-domain-ingress-cert
      namespace: openshift-ingress
    spec:
      secretName: custom-domain-ingress-cert-tls
      issuerRef:
         name: letsencrypt-production
         kind: ClusterIssuer
      commonName: "${DOMAIN}"
      dnsNames:
      - "${DOMAIN}"
    EOF
  2. 인증서가 발행되었는지 확인합니다.

    참고

    Let's Encrypt에서 이 인증서를 발급하는 데 몇 분이 걸립니다. 5분 이상 걸리는 경우 oc -n openshift-ingress describe certificate.cert-manager.io/custom-domain-ingress-cert 를 실행하여 cert-manager에서 보고한 모든 문제를 확인합니다.

    $ oc -n openshift-ingress get certificate.cert-manager.io/custom-domain-ingress-cert

    출력 예

    NAME                         READY   SECRET                           AGE
    custom-domain-ingress-cert   True    custom-domain-ingress-cert-tls   9m53s

  3. IngressController 리소스를 생성합니다.

    $ cat << EOF | oc apply -f -
    apiVersion: operator.openshift.io/v1
    kind: IngressController
    metadata:
      name: custom-domain-ingress
      namespace: openshift-ingress-operator
    spec:
      domain: ${DOMAIN}
      defaultCertificate:
        name: custom-domain-ingress-cert-tls
      endpointPublishingStrategy:
        loadBalancer:
          dnsManagementPolicy: Unmanaged
          providerParameters:
            aws:
              type: NLB
            type: AWS
          scope: External
        type: LoadBalancerService
    EOF
    주의

    IngressController 예제에서는 AWS 계정에서 인터넷에 액세스할 수 있는 NLB(Network Load Balancer)를 생성합니다. 대신 내부 NLB를 프로비저닝하려면 IngressController 리소스를 생성하기 전에 .spec.endpointPublishingStrategy.loadBalancer.scope 매개변수를 Internal 로 설정합니다.

  4. 사용자 정의 도메인 IngressController가 외부 로드 밸런서를 성공적으로 생성했는지 확인합니다.

    $ oc -n openshift-ingress get service/router-custom-domain-ingress

    출력 예

    NAME                           TYPE           CLUSTER-IP      EXTERNAL-IP                                                                     PORT(S)                      AGE
    router-custom-domain-ingress   LoadBalancer   172.30.174.34   a309962c3bd6e42c08cadb9202eca683-1f5bbb64a1f1ec65.elb.us-east-1.amazonaws.com   80:31342/TCP,443:31821/TCP   7m28s

  5. 사용자 정의 도메인 Ingress 컨트롤러에 대한 DNS 확인을 활성화하기 위해 필요한 DNS 변경 사항이 포함된 문서를 준비합니다.

    $ INGRESS=$(oc -n openshift-ingress get service/router-custom-domain-ingress -ojsonpath="{.status.loadBalancer.ingress[0].hostname}")
    $ cat << EOF > "${SCRATCH}/create-cname.json"
    {
      "Comment":"Add CNAME to custom domain endpoint",
      "Changes":[{
          "Action":"CREATE",
          "ResourceRecordSet":{
            "Name": "*.${DOMAIN}",
          "Type":"CNAME",
          "TTL":30,
          "ResourceRecords":[{
            "Value": "${INGRESS}"
          }]
        }
      }]
    }
    EOF
  6. 승인을 위해 Amazon Route 53에 변경 사항을 제출합니다.

    $ aws route53 change-resource-record-sets \
      --hosted-zone-id ${ZONE_ID} \
      --change-batch file://${SCRATCH}/create-cname.json
    참고

    와일드카드 CNAME 레코드는 사용자 정의 도메인 Ingress 컨트롤러를 사용하여 배포하는 모든 새 애플리케이션에 대해 새 레코드를 생성할 필요가 없지만 이러한 각 애플리케이션에서 사용하는 인증서는 와일드카드 인증서가 아닙니다.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.