Kubernetes 통합을 위한 기본 요건

현재 Apigee Edge 문서가 표시되고 있습니다.
Apigee X 문서로 이동
정보

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

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

  • Kubernetes 클러스터의 최소 요구사항
  • Edge Micro Gateway를 설치하고 구성하는 방법입니다.
  • Edge Micro Gateway의 기본 구성을 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 container 사용자 인증 정보를 가져옵니다.

    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 Micro Gateway 서비스에 필요한 RBAC 규칙을 만들려면 관리자 권한이 필요합니다.

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

Kubernetes용 Edge Microgateway 설치

  1. Kubernetes용 Edge Micro Gateway를 다운로드합니다. 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 Micro게이트를 Kubernetes에 삽입합니다.
  4. edgemicroctl 클라이언트를 PATH에 추가합니다. 예를 들어 MacOS 또는 Linux 시스템에서 다음 명령어를 실행합니다.

    export PATH=$PWD/bin:$PATH
  5. 기본 Edge Micro Gateway 설정을 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 Micro Gateway 설치

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

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

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

    edgemicro init

    추가 도움이 필요하면 Edge Micro Gateway 설치를 참조하세요.

다음 단계

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