다중 환경에 대한 자동 DNS 관리로 Kubernetes 클러스터 배치

내부 및 외부 환경(예: 개발, 테스트 및 운영)에 대한 클라우드 DNS 전략을 관리하는 것은 자동화된 솔루션 없이 복잡하고 시간이 많이 걸릴 수 있습니다. 이상적으로는 사용자와 고객 모두 도메인으로 이동할 수 있어야 하며 DNS 솔루션은 올바른 환경의 IP 주소로 이동해야 합니다. 이 이상적인 시나리오는 사용자에게 친숙하며 인적 오류를 방지할 수 있습니다.

Kubernetes ExternalDNS는 DNS 솔루션을 자동화하는 기능을 제공하여 사용자가 글로벌 로드 밸런싱, 자동 페일오버, DNS 기반 트래픽 관리, DNSSEC(Domain Name System Security Extensions)와 같은 기본 제공 보안 기능 등 원하는 도메인으로 쉽게 이동할 수 있도록 합니다.

이 참조 아키텍처는 Oracle Cloud Infrastructure DNS 영역 및 Kubernetes ExternalDNS와 함께 단일 Kubernetes 클러스터 배포를 사용하여 여러 환경에 맞게 설계된 DNS 솔루션을 구성합니다.

구조

이 아키텍처는 OCI DNS 영역에 배포된 Oracle Cloud Infrastructure Container Engine for Kubernetes(OCI OKE) 클러스터를 사용하여 로드 밸런서를 통해 노출된 서비스에 대한 "레코드"를 보관합니다. 이 아키텍처에서 OKE 클러스터는 세 개의 워커 노드와 세 개의 서로 다른 네임스페이스를 배치 분리에 사용합니다. 다중 클러스터 대신 단일 클러스터를 사용하는 다중 환경 OKE 배치에 이 구조를 사용합니다.

다음 다이어그램은 이 참조 아키텍처를 보여 줍니다.



멀티 테넌트-oke-dns-architecture.zip

각 환경(개발, 테스트 및 운용)에는 네임스페이스, 포드, 서비스 등 자체 쿠버네티스 구성요소 세트가 있습니다. Kubernetes ExternalDNS를 사용하면 외부에 노출된 쿠버네티스 서비스에 대한 DNS 레코드를 자동으로 생성하고 관리할 수 있다. 따라서 외부 클라이언트가 클러스터 내의 서비스에 보다 쉽게 액세스할 수 있습니다. 쿠버네티스 구성요소는 Kubernetes ExternalDNS로 라우팅되고, OCI의 각 서비스 로드 밸런서를 가리키는 '레코드'를 생성한다.

다음 다이어그램은 이 소프트웨어 구조를 보여 줍니다.



쿠버네티스-외부-dns.zip

아키텍처의 구성 요소는 다음과 같습니다.

  • 지역

    Oracle Cloud Infrastructure 지역은 가용성 도메인이라는 하나 이상의 데이터 센터를 포함하는 지역화된 지리적 영역입니다. 지역은 다른 지역과는 독립적이며, 거리는 국가 또는 대륙에 걸쳐 분리될 수 있습니다.

  • 가용성 도메인

    가용성 도메인은 한 지역 내의 독립형 독립형 데이터 센터입니다. 각 가용성 도메인의 물리적 리소스는 결함 허용을 제공하는 다른 가용성 도메인의 리소스와 격리됩니다. 가용성 도메인은 전원이나 냉각과 같은 인프라나 내부 가용성 도메인 네트워크를 공유하지 않습니다. 따라서 특정 가용성 도메인에서 장애가 발생해도 해당 지역의 다른 가용성 도메인에 영향을 주지 않습니다.

  • 결함 도메인

    장애 도메인은 가용성 도메인 내의 하드웨어 및 인프라 그룹입니다. 가용성 도메인에는 독립적인 전원 및 하드웨어가 있는 결함 도메인이 3개 있습니다. 여러 장애 도메인에 리소스를 배포할 때 애플리케이션은 장애 도메인 내의 물리적 서버 장애, 시스템 유지 관리 및 전원 장애를 견딜 수 있습니다.

  • VCN(가상 클라우드 네트워크) 및 서브넷

    VCN은 Oracle Cloud Infrastructure 지역에서 설정한 커스터마이징 가능한 소프트웨어 정의 네트워크입니다. 기존 데이터 센터 네트워크와 마찬가지로 VCN을 사용하면 네트워크 환경을 완전히 제어할 수 있습니다. VCN은 VCN 생성 후 변경할 수 있는 겹치지 않는 여러 CIDR 블록을 가질 수 있습니다. VCN을 서브넷으로 분할할 수 있으며, 영역 또는 가용성 도메인으로 범위를 지정할 수 있습니다. 각 서브넷은 VCN의 다른 서브넷과 겹치지 않는 연속적인 주소 범위로 구성됩니다. 서브넷을 생성한 후 크기를 변경할 수 있습니다. 서브넷은 공용 또는 전용일 수 있습니다.

  • 로드 밸런서

    Oracle Cloud Infrastructure Load Balancing Service는 단일 시작점에서 백엔드의 여러 서버로 트래픽을 자동으로 배포합니다.

  • 보안 목록

    각 서브넷에 대해 서브넷에 들어오고 나가야 하는 트래픽의 소스, 대상 및 유형을 지정하는 보안 규칙을 생성할 수 있습니다.

  • Kubernetes용 컨테이너 엔진

    Oracle Cloud Infrastructure Container Engine for Kubernetes는 컨테이너화된 애플리케이션을 클라우드에 배포하는 데 사용할 수 있는 확장 가능하고 가용성이 뛰어난 완전 관리형 서비스입니다. 애플리케이션에 필요한 컴퓨트 리소스를 지정하면 Container Engine for Kubernetes가 기존 테넌시의 Oracle Cloud Infrastructure에서 프로비저닝합니다. Container Engine for Kubernetes는 Kubernetes를 사용하여 호스트 클러스터 전반에서 컨테이너화된 애플리케이션의 배포, 확장 및 관리를 자동화합니다.

  • DNS

    Oracle Cloud Infrastructure DNS(도메인 이름 시스템) 서비스는 확장성이 뛰어난 글로벌 애니캐스트 DNS(도메인 이름 시스템) 네트워크로, 향상된 DNS 성능, 복원성 및 확장성을 제공하므로 최종 사용자가 어디에서나 최대한 빨리 고객의 애플리케이션에 연결할 수 있습니다.

  • 공용/전용 DNS 영역

    Oracle Cloud Infrastructure DNS 서비스를 사용하면 영역을 관리할 수 있습니다. 영역은 DNS 이름 공간의 일부입니다. 권한 시작 레코드(SOA)는 영역을 정의합니다. 영역에는 별도로 지정하지 않는 한 트리의 자체 아래에 있는 모든 레이블이 포함됩니다.

권장사항

다음 권장 사항을 시작점으로 사용합니다. 요구 사항은 여기에 설명된 아키텍처와 다를 수 있습니다.
  • VCN(가상 클라우드 네트워크)

    VCN을 생성할 때 VCN의 서브넷에 연결할 리소스 수를 기준으로 필요한 CIDR 블록 수와 각 블록의 크기를 결정합니다. 표준 전용 IP 주소 공간 내에 있는 CIDR 블록을 사용합니다.

    서브넷을 설계할 때 트래픽 흐름 및 보안 요구 사항을 고려합니다. 특정 계층 또는 역할 내의 모든 리소스를 보안 경계로 사용할 수 있는 동일한 서브넷에 연결합니다.

  • 로드 밸런서 대역폭

    로드 밸런서를 생성하는 동안 고정 대역폭을 제공하는 사전 정의된 구성을 선택하거나, 대역폭 범위를 설정하는 사용자정의(유연한) 구성을 지정하고, 서비스가 트래픽 패턴에 따라 대역폭을 자동으로 확장하도록 할 수 있습니다. 두 접근 방법 모두 로드 밸런서를 생성한 후 언제든지 구성을 변경할 수 있습니다.

고려사항

단일 Oracle Cloud Infrastructure Container Engine for Kubernetes 클러스터 내에 여러 환경을 배포하는 경우 다음 사항을 고려하십시오.

  • 보안

    Kubernetes 네트워크 정책을 사용하여 네임스페이스 연결을 분리하고 역할 기반 액세스 제어에 의존하여 네임스페이스 관리에 대한 액세스를 제어하는 것이 좋습니다.

배치

Oracle Cloud Infrastructure DNS를 사용하도록 Kubernetes ExternalDNS를 구성하는 지침은 Oracle Cloud Infrastructure Documentation"Configuring ExternalDNS to use Oracle Cloud Infrastructure DNS"에서 확인할 수 있습니다.

추가 탐색

자동 DNS 관리를 통한 Oracle Container Engine for Kubernetes 클러스터 배포에 대해 자세히 알아보십시오.

다음 추가 리소스를 검토하십시오.

확인

작성자:

  • Guido Alejandro Ferreyra