Kubernetes 통합을 위한 기본 요건

Apigee Edge 문서입니다.
Apigee X 문서로 이동
정보

이 주제에서는 Kubernetes 클러스터에 Edge Microgateway를 서비스로 설치하기 전에 완료해야 하는 단계를 설명합니다.

이 주제에서는 다음을 설명합니다.

  • Kubernetes 클러스터의 최소 요구사항입니다.
  • Edge Microgateway를 설치하고 구성하는 방법
  • Edge Microgateway의 기본 구성을 Kubernetes 클러스터에 설치하는 방법

Kubernetes 클러스터 요구사항

Kubernetes 클러스터에는 다음이 필요합니다.

  • Kubernetes 버전 1.9 이상
  • Kubernetes CLI kubectl v1.9 이상
  • 각각 vCPU 2개를 가진 노드가 3개 이상 있는 클러스터

예: Google Kubernetes Engine (GKE)에서 Kubernetes 클러스터 만들기

Kubernetes 관리 머신 설정

Kubernetes 관리 머신은 Kubernetes 클러스터에 명령어를 실행하는 데 사용하는 로컬 머신입니다. 이 머신은 일반적으로 Kubernetes VM에 액세스할 수 있는 데스크톱 머신입니다.

Kubernetes 관리 머신에 다음 유틸리티를 설치해야 합니다.

  • kubectl 명령줄 인터페이스 1.9 이상을 설치합니다.

  • (GKE만 해당) GKE에서 Kubernetes를 실행하는 경우 gcloud를 설치합니다.

GKE에서 Kubernetes 클러스터 만들기

  1. Google Cloud Platform (GCP)의 Google Kubernetes Engine (GKE) 대시보드에 로그인합니다.
  2. 클러스터 만들기를 클릭합니다.
  3. 표준 클러스터를 선택합니다.
  4. 클러스터의 이름을 입력합니다.
  5. 영역을 선택합니다.
  6. Cluster Version 1.9.7-gke-*를 선택합니다. 예: 1.9.7-gke.6
  7. 노드 크기를 3개로 선택합니다.
  8. 메모리가 7.5GB인 vCPU 2개를 선택합니다.
  9. 만들기를 클릭합니다.

    다음 스크린샷은 이전 단계에 설명된 대로 입력된 GKE 대시보드를 보여줍니다.

    GKE 대시보드

클러스터 사용자 인증 정보 가져오기

  1. GKE 프로젝트 이름을 설정합니다.

    gcloud config set project projectName
  2. GKE 프로젝트 영역을 설정합니다.

    gcloud config set compute/zone zoneName
  3. gcloud 컨테이너 사용자 인증 정보를 가져옵니다.

    gcloud container clusters get-credentials cluster-name --zone zone --project project-name

    각 항목의 의미는 다음과 같습니다.

    • cluster-name은 만든 Kubernetes 클러스터의 이름입니다.
    • zone은 클러스터가 있는 영역입니다.
    • project-name는 GCP 프로젝트 이름입니다.

    예를 들면 다음과 같습니다.

    gcloud container clusters get-credentials edgemicrogateway-cluster --zone us-central1-a --project edgemicro-project
  4. 다음 명령어를 다음과 같이 정확하게 실행합니다. 이 명령어는 클러스터 관리자 권한을 현재 사용자에게 부여합니다. Edge Microgateway 서비스에 필요한 RBAC 규칙을 만들려면 다음과 같은 관리자 권한이 필요합니다.

    kubectl create clusterrolebinding cluster-admin-binding --clusterrole=cluster-admin --user=$(gcloud config get-value core/account)
    

Kubernetes용 Edge Microgateway 설치

  1. Kubernetes용 Edge Microgateway를 다운로드합니다. macOS 또는 Linux 머신을 사용하는 경우 버전 이름을 지정하여 최신 버전 또는 특정 버전을 다운로드할 수 있습니다.

    최신 버전을 다운로드하려면 다음 단계를 따르세요.

    curl -L https://raw.githubusercontent.com/apigee-internal/microgateway/master/kubernetes/release/downloadEdgeMicrok8s.sh | sh -

    버전 번호로 특정 버전을 가져옵니다. 버전 번호 앞에 'v' 문자를 붙여야 합니다. 예: v3.0.2

    curl -L https://raw.githubusercontent.com/apigee-internal/microgateway/master/kubernetes/release/downloadEdgeMicrok8s.sh | sh -s  version

    예를 들면 다음과 같습니다.

    curl -L https://raw.githubusercontent.com/apigee-internal/microgateway/master/kubernetes/release/downloadEdgeMicrok8s.sh | sh -s v3.0.2
  2. 디렉터리를 설치 디렉터리 microgateway_Version_OS_ARCH로 변경합니다. 예를 들면 다음과 같습니다.

    cd microgateway_2.5.26_Darwin_x86_64
  3. 설치 디렉터리를 검사합니다.

    • /install/kubernetes - Kubernetes에 배포하기 위한 구성 .yaml 파일입니다.
    • /samples - 설치를 테스트하기 위한 샘플 애플리케이션입니다.
    • /bin - edgemicroctl 실행 파일입니다. edgemicroctl 명령어는 Edge Microgateway를 Kubernetes에 삽입합니다.
  4. PATHedgemicroctl 클라이언트를 추가합니다. 예를 들어 macOS 또는 Linux 시스템에서 다음 명령어를 실행합니다.

    export PATH=$PWD/bin:$PATH
  5. 기본 Edge Microgateway 설정을 Kubernetes 클러스터에 적용합니다. 다음 명령어는 edgemicro-system 네임스페이스와 클러스터 역할을 만듭니다.

    kubectl apply -f install/kubernetes/edgemicro.yaml
  6. 클러스터에 NGINX 인그레스 컨트롤러를 설치합니다. 다른 Nginix 컨트롤러가 실행되고 있지 않은지 확인합니다. kubectl get pods를 실행하여 확인할 수 있습니다.

    kubectl apply -f install/kubernetes/edgemicro-nginx-gke.yaml

설치 확인

  1. 인그레스 컨트롤러가 시작되었는지 확인하려면 다음 명령어를 실행합니다.

    kubectl get pods --all-namespaces -l app=edgemicro-ingress --watch

    다음 샘플 출력에서 볼 수 있듯이 프로세스가 시작되는 데 1~2분 정도 걸립니다. STATUSRunning로 변경되기 전에 오류 및 다시 시작 주기가 여러 번 표시되는 것은 정상입니다.

    NAMESPACE          NAME                                            READY     STATUS             RESTARTS   AGE
    edgemicro-system   edgemicro-ingress-controller-64444469bf-wjhrn   0/1       CrashLoopBackOff   1          33s
    edgemicro-system   edgemicro-ingress-controller-64444469bf-wjhrn   0/1       Error              2          33s
    edgemicro-system   edgemicro-ingress-controller-64444469bf-wjhrn   0/1       CrashLoopBackOff   2          40s
    edgemicro-system   edgemicro-ingress-controller-64444469bf-wjhrn   0/1       Running            3          1m
    edgemicro-system   edgemicro-ingress-controller-64444469bf-wjhrn   1/1       Running            3          1m
    
  2. 인그레스가 실행되면 Ctrl+C를 입력하여 위 명령어를 취소할 수 있습니다.

  3. 이 명령어를 실행하여 Kubernetes 서비스가 배포되었는지 확인합니다. 아래의 예시 출력과 유사한 출력이 표시됩니다.

    kubectl get svc -n edgemicro-system
    

    출력 예시:

    NAME                        TYPE           CLUSTER-IP     EXTERNAL-IP    PORT(S)                     AGE
    default-http-backend        ClusterIP      10.19.255.106  <none>         80/TCP                       2h
    edgemicro-ingress           LoadBalancer   10.19.247.156  35.224.24.13   80:30176/TCP,443:32325/TCP   2h
    
  4. 모든 포드가 실행 중인지 확인합니다.

    kubectl get pods -n edgemicro-system
    

    출력 예시:

    NAME                                            READY     STATUS    RESTARTS   AGE
    default-http-backend-55c6c69b88-2lvtw           1/1       Running   0          4m
    edgemicro-ingress-controller-64444469bf-wjhrn   1/1       Running   3          4m
    

Edge Microgateway 설치

  1. Edge Microgateway 2.5.26 이상 버전이 설치되어 있어야 합니다. 다음을 입력하여 확인할 수 있습니다.

    edgemicro --version
  2. Edge Microgateway 2.5.26 이상이 설치되어 있지 않으면 다음과 같이 설치 스크립트를 실행합니다.

    npm install edgemicro -g
  3. Edge Microgateway를 처음 설치했거나 업그레이드한 경우 다음 명령어를 실행합니다.

    edgemicro init

    추가 지원이 필요한 경우 Edge Microgateway 설치를 참고하세요.

다음 단계

이제 Kubernetes에 Edge Microgateway를 배포할 준비가 되었습니다.