클라우드에서 Kubernetes 클러스터 설정에 대해 알아보기

클라우드의 Kubernetes 기반 토폴로지에는 네트워킹 리소스, 컴퓨트 인스턴스 및 Kubernetes 노드를 포함한 다양한 구성 요소가 포함되어 있습니다. 이러한 복잡한 토폴로지를 효율적으로 배치하고 관리하려면 Terraform 구성 파일에서 클라우드 인프라를 코드(IaC) 로 정의합니다.

토폴로지를 변경하려면 적합한 Terraform 모듈의 버전을 지정하고, 리소스 정의를 업데이트하고, 수정된 구성을 적용합니다. 필요한 경우, 이전 버전의 기반 구조로 쉽게 롤백할 수 있습니다.

이 솔루션에 제공된 Terraform 구성 블록을 사용하여 클라우드 기반 Kubernetes 환경에 필요한 기반 구조를 배치합니다.

시작하기 전에

Oracle Cloud에서 Kubernetes 토폴로지를 구축하기 전에 구조 옵션에 대해 살펴보고 구조의 구성 요소를 이해합니다.

클라우드에서 컨테이너화된 애플리케이션에 대한 Kubernetes 토폴로지 디자인에 대해 알아보기 를 참조하십시오.

구조

이 솔루션이 Terraform 코드를 제공하는 샘플 토폴로지는 단일 Oracle Cloud Infrastructure 영역에 필요한 네트워킹 및 Kubernetes 리소스를 포함하는 단일 가상 클라우드 네트워크(VCN) 를 포함합니다.


Oracle Cloud의 Kubernetes 클라우드 아키텍처
구조는 다음 구성 요소로 구성됩니다.

주:

Terraform 코드에는 컨테이너화된 작업 로드의 네트워킹 요구 사항, 필요한 노드 풀 크기 및 수, 내결함성 제약 조건 등에 맞게 구조를 조정하는 데 사용할 수 있는 입력 변수가 포함되어 있습니다.
  • 가상 클라우드 네트워크(VCN)

    토폴로지의 모든 리소스가 단일 네트워크에 있습니다. 네트워크에 대한 CIDR 접두어를 정의합니다(기본값: 10.0.0/16).

  • 서브넷
    샘플 토폴로지의 VCN 에는 4개의 서브넷이 포함되어 있습니다. 서브넷의 크기를 정의합니다.
    서브넷 기본 CIDR 접두어 설명
    배타 서브넷 10.0.1.0/29 선택적 기본 호스트에 대한 공용 서브넷입니다.
    로드 밸런서 서브넷 공용(10.0.2.0/27(전용) 인 경우 10.0.2.32/27 로드 밸런서 노드의 서브넷입니다. 서브넷이 공용 또는 전용인지 여부를 선택합니다.
    관리 서브넷 10.0.1.8/29 선택적 관리 호스트에 대한 개인 서브넷으로, kubectl, helmOracle Cloud Infrastructure CLI와 같은 Kubernetes 클러스터를 관리하는 데 필요한 도구를 포함합니다.
    작업 노드 서브넷 10.0.64.0/18 Kubernetes 작업자 노드에 대한 서브넷입니다. 서브넷이 공용 또는 전용인지 여부를 선택합니다.

    모든 서브넷은 지역별 서브넷입니다. 즉, 영역 내 모든 가용성 도메인에 걸쳐 있으며 구조 다이어그램에서 AD1, AD2 및 AD3로 축약됩니다. 따라서 availability-domain 실패로부터 보호됩니다. 영역의 모든 가용성 도메인에 배치할 리소스에 대해 지역별 서브넷을 사용할 수 있습니다.

  • 네트워크 게이트웨이
    • 서비스 게이트웨이(선택사항)

      서비스 게이트웨이를 사용하면 VCN의 리소스가 공용 인터넷에 트래픽을 노출하지 않고 Oracle Cloud Infrastructure Object Storage, Oracle Cloud Infrastructure File Storage, Oracle Cloud Infrastructure Database 등의 Oracle 서비스에 액세스할 수 있습니다. 서비스 게이트웨이를 통한 연결은 VCN 내 리소스에서 시작할 수 있으며 리소스가 통신하는 서비스에서는 시작할 수 없습니다.

    • NAT 게이트웨이(선택사항)

      NAT 게이트웨이를 사용하면 VCN의 전용 서브넷에 연결된 컴퓨트 인스턴스가 공용 인터넷에 액세스할 수 있습니다. NAT 게이트웨이를 통한 연결은 공용 인터넷이 아닌 VCN 내의 리소스에서 시작할 수 있습니다.

    • 인터넷 게이트웨이

      인터넷 게이트웨이를 사용하면 VCN 내 공용 서브넷의 모든 리소스와 공용 인터넷 간의 연결이 가능합니다.

  • 배스턴 호스트(선택사항)

    기본 호스트는 클라우드 외부 토폴로지의 시작점으로 사용되는 컴퓨트 인스턴스입니다.

    기본 호스트는 일반적으로 DMZ에 프로비전됩니다. 이를 통해 클라우드 외부에서 직접 액세스할 수 없는 전용 네트워크에 배치하는 방식으로 중요한 리소스를 보호할 수 있습니다. 정기적으로 감사할 수 있는 알려진 단일 시작점을 표시합니다. 따라서 토폴로지에 대한 액세스 권한 없이 토폴로지에 더 많은 중요한 구성 요소를 표시하지 않습니다.

    샘플 토폴로지의 기본 호스트가 공용 서브넷에 연결되고 공용 IP 주소가 있습니다. 수신 보안 규칙은 공용 인터넷에서 기본 호스트에 대한 SSH 접속을 허용하도록 구성됩니다. 추가 보안 레벨을 제공하기 위해 특정 IP 주소 블록에서만 기본 호스트에 대한 SSH 액세스를 제한할 수 있습니다.

    기본 호스트를 통해 전용 서브넷의 Oracle Cloud Infrastructure 인스턴스에 액세스할 수 있습니다. 이렇게 하려면 기본 호스트에 접속한 다음 컴퓨터에서 인증서를 전달하여 다음 서버에 액세스할 수 있도록 ssh-agent 전달을 사용으로 설정합니다. 동적 SSH 터널링을 사용하여 전용 서브넷의 인스턴스에 액세스할 수도 있습니다. 동적 터널은 로컬 포트에 SOCKS 프록시를 제공하지만 이 접속은 원격 호스트에서 시작됩니다.

  • 로드 밸런서 노드(샘플 코드에 포함되지 않음)

    로드 밸런서 노드는 컨테이너화된 응용 프로그램을 실행하는 사용 가능한 Kubernetes 노드에 트래픽을 가로채고 분배합니다. 공용 인터넷에서 애플리케이션에 액세스할 수 있어야 하는 경우 공용 로드 밸런서를 사용합니다. 그렇지 않은 경우 공용 IP 주소가 없는 전용 로드 밸런서를 사용합니다. 구조에 로드 밸런서 노드가 표시되지 않습니다.

  • 관리 호스트(선택사항)

    관리 호스트를 사용하면 클라우드 외부에 있는 kubectl, helm, Oracle Cloud Infrastructure CLI와 같은 기반 구조 관리 툴 설치 및 실행을 방지할 수 있습니다. 샘플 토폴로지의 관리 호스트는 전용 서브넷에 있으며 기본 호스트를 통해 액세스할 수 있습니다. 관리 호스트에서 Oracle Cloud Infrastructure CLI를 실행할 수 있으려면 인스턴스 주체로 지정해야 합니다.

  • Kubernetes 작업자 노드

    Kubernetes 작업자 노드는 컨테이너화된 응용 프로그램을 배치할 수 있는 컴퓨트 인스턴스입니다. 샘플 토폴로지에서 모든 작업자 노드는 단일 노드 풀에 있으며 전용 서브넷에 연결됩니다. 노드 풀 수, 각 풀의 크기 및 요구 사항에 따라 공용 서브넷을 사용할지 여부를 사용자 정의할 수 있습니다.

    작업자 노드가 전용 서브넷에 첨부된 경우에는 공용 인터넷에서 직접 액세스할 수 없습니다. 사용자는 로드 밸런서를 통해 컨테이너화된 응용 프로그램에 액세스할 수 있습니다.

    작업자 노드에 대한 SSH 액세스를 사용으로 설정하는 경우 관리자는 기본 호스트를 통해 작업자 노드에 SSH 접속을 생성할 수 있습니다.

    이 구조에는 세 개의 작업자 노드가 표시되는데 각 노드는 영역 내 고유한 가용성 도메인(AD1, AD2 및 AD3) 에 표시됩니다.

    주:

    컨테이너화된 응용 프로그램을 배치할 영역에 단일 가용성 도메인이 포함된 경우 작업자 노드는 가용성 도메인 내의 FD(오류 도메인) 에 분산됩니다.

필수 서비스 및 권한 정보

이 솔루션은 다음 서비스 및 권한을 필요로 합니다.

서비스 권한 필요
Oracle Cloud Infrastructure Identity and Access Management 동적 그룹 및 정책을 관리합니다.
Oracle Cloud Infrastructure Networking Vcn, 서브넷, 인터넷 게이트웨이, NAT 게이트웨이, 서비스 게이트웨이, 경로 테이블 및 보안 목록을 관리합니다.
Oracle Cloud Infrastructure Compute 컴퓨트 인스턴스를 관리합니다.
Oracle Cloud Infrastructure Container Engine for Kubernetes 클러스터 및 노드 풀을 관리합니다.

클러스터 생성 및 배치를 위한 정책 구성 을 참조하십시오.