2단계: GKE 설치 및 설정

이 단계에서는 apigeectl을 다운로드 및 설치하고, 설치 디렉터리를 설정하고, Google Cloud 서비스 계정을 만들고, Apigee hybrid가 작동하는 데 필요한 TLS 사용자 인증 정보를 만드는 방법을 설명합니다.

apigeectl 다운로드 및 설치

apigeectl은 Kubernetes 클러스터에서 Apigee Hybrid 설치 및 관리를 위한 명령줄 인터페이스(CLI)입니다.

apigeectl을 가져오려면 다음 절차를 따르세요.

  1. 다음 명령어를 사용하여 운영체제용 출시버전 패키지를 다운로드합니다.

    Mac 64비트:

    curl -LO https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/1.1.1/apigeectl_mac_64.tar.gz

    Linux 64비트:

    curl -LO https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/1.1.1/apigeectl_linux_64.tar.gz

    Mac 32비트:

    curl -LO https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/1.1.1/apigeectl_mac_32.tar.gz

    Linux 32비트:

    curl -LO https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/1.1.1/apigeectl_linux_32.tar.gz
  2. Apigee hybrid 설치의 기본 디렉터리 역할을 하는 디렉터리를 시스템에 만듭니다.
  3. 방금 만든 기본 디렉터리에 다운로드한 gzip 파일 콘텐츠의 압축을 풉니다. 예를 들면 다음과 같습니다.

    tar xvzf filename.tar.gz -C path-to-base-directory
  4. 디렉터리를 기본 디렉터리로 변경합니다.
  5. tar 콘텐츠는 기본적으로 이름에 해당 버전과 플랫폼이 포함된 디렉터리로 확장됩니다(예: ./apigeectl_1.0.0-f7b96a8_linux_64). 다음 명령어를 사용하여 디렉터리 이름을 apigeectl로 변경합니다.

    mv apigeectl_1.0.0-f7b96a8_linux_64 apigeectl
  6. 이 디렉터리로 변경합니다. 예를 들면 다음과 같습니다.
    cd ./apigeectl

    이 디렉터리는 apigeectl 홈 디렉터리입니다. 여기에 apigeectl 실행 가능한 명령어가 있습니다.

  7. 다음 명령어를 사용하여 이 홈 디렉터리 경로를 저장할 환경 변수를 만듭니다.
    export APIGEECTL_HOME=$PWD
  8. 다음 명령어를 사용하여 변수에 올바른 경로가 포함되었는지 확인합니다.
    echo $APIGEECTL_HOME

프로젝트 디렉터리 구조 설정

아래에 설명된 디렉터리 구조는 권장되는 방식입니다. 이 방식은 Apigee Hybrid 출시 소프트웨어를 개발자가 만들어야 하는 구성 파일과 분리합니다. 만들려는 $APIGEECTL_HOME 변수 및 심볼릭 링크를 사용하면 원하는 경우 새 소프트웨어 버전으로 쉽게 전환할 수 있습니다. Apigee Hybrid 업그레이드도 참조하세요.

  1. 현재 위치가 기본 디렉터리(apigeectl 디렉터리가 위치한 디렉터리)인지 확인합니다.
  2. hybrid-files라는 새 폴더를 만듭니다. 디렉터리에 원하는 이름을 지정할 수 있지만 문서에서는 hybrid-files를 이름으로 일관되게 사용됩니다. 나중에 이 폴더에 구성 파일, 서비스 계정 키, TLS 인증서를 저장합니다. 이 폴더를 사용하면 구성 파일을 apigeectl 소프트웨어 설치와 별도로 유지할 수 있습니다.
    mkdir hybrid-files
  3. 현재 디렉터리 구조는 이제 다음과 같이 표시됩니다.
    pwd && ls
    /hybrid-base-directory
      apigeectl
      hybrid-files
  4. 다음 명령어를 사용하여 디렉터리를 hybrid-files 폴더로 변경합니다.
    cd hybrid-files
  5. hybrid-files 디렉터리 내에서 다음 명령어를 사용하여 나중에 만들 파일을 정리하기 위해 다음 하위 디렉터리를 만듭니다.
    mkdir overrides
    mkdir service-accounts
    mkdir certs
  6. hybrid-files 디렉터리 내에서 $APIGEECTL_HOME에 대해 다음 심볼릭 링크를 만듭니다. 이러한 링크를 사용하면 hybrid-files 디렉터리 내에서 apigeectl 명령어를 실행할 수 있습니다.
    ln -s $APIGEECTL_HOME/tools tools
    ln -s $APIGEECTL_HOME/config config
    ln -s $APIGEECTL_HOME/templates templates
    ln -s $APIGEECTL_HOME/plugins plugins
  7. 심볼릭 링크가 올바르게 생성되었는지 확인하려면 이 명령어를 실행하고 링크 경로가 올바른 위치를 가리키는지 확인합니다.
    ls -l | grep ^l
    

서비스 계정 만들기

Apigee Hybrid는 Google Cloud 서비스 계정을 사용하여 승인된 API 호출을 만들어 하이브리드 구성요소가 통신할 수 있도록 합니다. 이 단계에서는 Apigee Hybrid 명령줄 도구를 사용하여 서비스 계정 집합을 만듭니다. 또한 도구는 서비스 계정 비공개 키를 자동으로 다운로드합니다. 그런 다음 Apigee Hybrid 클러스터 구성 파일에 이러한 키를 추가해야 합니다.

키를 만듭니다.

  1. 현재 위치가 base_directory/hybrid-files 디렉터리인지 확인합니다.
  2. hybrid-files 디렉터리 내에서 다음 명령어를 실행합니다. 이 명령어는 apigee-metrics 구성요소의 서비스 계정을 만들고 다운로드한 키를 ./service-accounts 디렉터리에 배치합니다.
    ./tools/create-service-account apigee-metrics ./service-accounts

    다음 프롬프트가 표시되면 y를 입력합니다.

    [INFO]: gcloud configured project ID is project_id.
     Press: y to proceed with creating service account in project: project_id
     Press: n to abort.

    도구로 할당된 정확한 이름이 있는 SA를 처음 만들면 도구에서 SA를 만들므로 추가적으로 해야 할 작업은 없습니다.

    하지만 다음 메시지 및 프롬프트가 표시되면 y를 입력하여 새 키를 생성합니다.

    [INFO]: Service account apigee-metrics@project_id.iam.gserviceaccount.com already exists.
    ...
     [INFO]: The service account might have keys associated with it. It is recommended to use existing keys.
     Press: y to generate new keys.(this does not de-activate existing keys)
     Press: n to skip generating new keys.
     
  3. 이제 다음 명령어를 사용하여 나머지 서비스 계정을 만듭니다.
    ./tools/create-service-account apigee-synchronizer ./service-accounts
    ./tools/create-service-account apigee-udca ./service-accounts
    ./tools/create-service-account apigee-mart ./service-accounts
    ./tools/create-service-account apigee-cassandra ./service-accounts
    ./tools/create-service-account apigee-logger ./service-accounts
  4. 서비스 계정 키가 생성되었는지 확인합니다. 이러한 비공개 키를 안전하게 보관할 책임은 사용자에게 있습니다. 키 파일 이름에는 Google Cloud 프로젝트 이름이 프리픽스로 추가됩니다. 예를 들면 다음과 같습니다.
    ls ./service-accounts
    gcp-project-id-apigee-cassandra.json
    gcp-project-id-apigee-logger.json
    gcp-project-id-apigee-mart.json
    gcp-project-id-apigee-metrics.json
    gcp-project-id-apigee-synchronizer.json
    gcp-project-id-apigee-udca.json

TLS 인증서 만들기

Apigee Hybrid 구성에 MART 및 런타임 인그레스 게이트웨이에 대한 TLS 인증서를 제공해야 합니다. MART 게이트웨이에 사용되는 사용자 인증 정보는 인증 기관(CA)에서 승인해야 합니다. 이 빠른 시작(비프로덕션 무료 체험판 설치)에서 런타임 게이트웨이는 자체 서명 사용자 인증 정보를 수락할 수 있습니다.

이 단계에서는 TLS 사용자 인증 정보 파일을 만들어 base_directory/hybrid-files/certs 디렉터리에 추가합니다. 3단계: 클러스터 구성에서는 파일 경로를 클러스터 구성 파일에 추가합니다.

런타임 게이트웨이의 TLS 사용자 인증 정보 만들기

런타임 인그레스 게이트웨이(API 프록시 트래픽을 처리하는 게이트웨이)에는 TLS 인증서/키 쌍이 필요합니다. 이 빠른 시작 설치에서는 자체 서명 사용자 인증 정보를 사용할 수 있습니다. 다음 단계에서는 사용자 인증 정보를 생성하는 데 openssl이 사용됩니다.

  1. 현재 위치가 base_directory/hybrid-files 디렉터리인지 확인합니다.
  2. 다음 명령어를 사용하여 hybrid-files 디렉터리 내에서 다음 명령어를 실행합니다.
    openssl req  -nodes -new -x509 -keyout ./certs/keystore.key -out \
        ./certs/keystore.pem -subj '/CN=mydomain.net' -days 3650

    이 명령어는 빠른 시작 설치에 사용할 수 있는 자체 서명 인증서/키 쌍을 만듭니다. CN mydomain.net은 자체 서명 사용자 인증 정보로 원하는 모든 값이 될 수 있습니다.

  3. 다음 명령어를 사용하여 파일이 ./certs 디렉터리에 있는지 확인합니다.
    ls ./certs
      keystore.pem
      keystore.key

    여기서 keystore.pem은 자체 서명 TLS 인증서 파일이고 keystore.key는 키 파일입니다.

MART 게이트웨이의 TLS 사용자 인증 정보 만들기

시작하기 전에의 설명대로 MART 게이트웨이 구성에 승인된 TLS 인증서/키 쌍을 사용해야 합니다. 아직 사용하지 않았다면 지금 이러한 사용자 인증 정보를 가져오거나 만드세요.

  1. 인증 기관에서 승인한 TLS 인증서/키 쌍을 가져오거나 만듭니다. Let's Encrypt CA를 사용하여 이러한 사용자 인증 정보를 얻는 방법을 보여주는 예시가 제공됩니다. 인증서의 일반 이름(CN)은 유효한 DNS 이름이어야 합니다. 예시 단계는 TLS 사용자 인증 정보 얻기: 예시를 참조하세요.
  2. 사용자 인증 정보를 base_directory/hybrid-files/certs 디렉터리에 복사합니다.
  3. 완료되면 ./certs 디렉터리에 두 개의 사용자 인증 정보 파일 쌍이 있어야 합니다. 예를 들면 다음과 같습니다.
    ls ./certs
      fullchain.pem
      privkey.key
      keystore.pem
      keystore.key

    여기서 fullchain.pem은 승인된 TLS 인증서 파일이고 privkey.key는 승인된 키 파일입니다.

요약

이제 Kubernetes 클러스터에서 Apigee Hybrid를 구성, 배포, 관리할 수 있는 홈이 제공됩니다. 다음 단계로 하이브리드 런타임 구성요소를 클러스터에 배포하기 위해 Kubernetes에서 사용될 파일을 만듭니다.

1 2 (다음) 3단계: 클러스터 구성 4