4.11.21. 선택 사항: 인그레스 DNS 레코드 추가

Kubernetes 매니페스트를 생성하고 Ignition 구성을 생성할 때 DNS 영역 구성을 제거한 경우, 인그레스 로드 밸런서를 가리키는 DNS 레코드를 수동으로 생성해야 합니다. 와일드카드 *.apps.{baseDomain}. 또는 특정 레코드를 생성할 수 있습니다. 사용자 요구사항에 따라 A, CNAME 및 기타 레코드를 사용할 수 있습니다.

사전 요구 사항

  • GCP 계정을 구성하십시오.
  • Kubernetes 매니페스트를 생성하고 Ignition 구성을 생성할 때 DNS 영역 구성을 제거하십시오.
  • GCP에서 VPC 및 관련 서브넷을 생성하고 구성하십시오.
  • GCP에서 네트워킹 및 로드 밸랜서를 생성하고 구성하십시오.
  • 컨트롤 플레인 및 컴퓨팅 역할을 생성합니다.
  • 부트스트랩 시스템을 생성합니다.
  • 컨트롤 플레인 시스템을 생성합니다.
  • 작업자 시스템을 생성합니다.

프로세스

  1. 인그레스 라우터가 로드 밸런서를 생성하고 EXTERNAL-IP 필드를 채울 때까지 기다립니다.

    $ oc -n openshift-ingress get service router-default

    출력 예

    NAME             TYPE           CLUSTER-IP      EXTERNAL-IP      PORT(S)                      AGE
    router-default   LoadBalancer   172.30.18.154   35.233.157.184   80:32288/TCP,443:31215/TCP   98

  2. 영역에 A 레코드를 추가합니다.

    • A 레코드를 사용하려면,

      1. 라우터 IP 주소에 대한 변수를 내보냅니다.

        $ export ROUTER_IP=`oc -n openshift-ingress get service router-default --no-headers | awk '{print $4}'`
      2. 프라이빗 영역에 A 레코드를 추가합니다.

        $ if [ -f transaction.yaml ]; then rm transaction.yaml; fi
        $ gcloud dns record-sets transaction start --zone ${INFRA_ID}-private-zone
        $ gcloud dns record-sets transaction add ${ROUTER_IP} --name \*.apps.${CLUSTER_NAME}.${BASE_DOMAIN}. --ttl 300 --type A --zone ${INFRA_ID}-private-zone
        $ gcloud dns record-sets transaction execute --zone ${INFRA_ID}-private-zone
      3. 외부 클러스터의 경우 퍼블릭 영역에 A 레코드를 추가합니다.

        $ if [ -f transaction.yaml ]; then rm transaction.yaml; fi
        $ gcloud dns record-sets transaction start --zone ${BASE_DOMAIN_ZONE_NAME}
        $ gcloud dns record-sets transaction add ${ROUTER_IP} --name \*.apps.${CLUSTER_NAME}.${BASE_DOMAIN}. --ttl 300 --type A --zone ${BASE_DOMAIN_ZONE_NAME}
        $ gcloud dns record-sets transaction execute --zone ${BASE_DOMAIN_ZONE_NAME}
    • 와일드카드를 사용하지 않고 명시적 도메인을 추가하려면 클러스터의 현재 경로에 대한 항목을 생성합니다.

      $ oc get --all-namespaces -o jsonpath='{range .items[*]}{range .status.ingress[*]}{.host}{"\n"}{end}{end}' routes

      출력 예

      oauth-openshift.apps.your.cluster.domain.example.com
      console-openshift-console.apps.your.cluster.domain.example.com
      downloads-openshift-console.apps.your.cluster.domain.example.com
      alertmanager-main-openshift-monitoring.apps.your.cluster.domain.example.com
      grafana-openshift-monitoring.apps.your.cluster.domain.example.com
      prometheus-k8s-openshift-monitoring.apps.your.cluster.domain.example.com