<ph type="x-smartling-placeholder"></ph>
현재 Apigee Edge 문서를 보고 있습니다.
Apigee X 문서. 정보
소개
이 주제에서는 Kubernetes 클러스터에서 Edge Microgateway를 사이드카 프록시. 사이드카 배포에는 수동 및 자동의 두 가지 옵션이 있습니다. 인코더-디코더입니다. 이 주제에서는 두 옵션을 모두 설명합니다.
자세한 내용은 Kubernetes의 Edge Microgateway 소개를 참조하세요.
시작하기 전에
기본 요건에 설명된 단계를 완료합니다.
테스트 서비스 배포
간단한 'hello' 배포 확인하고 배포를 확인합니다.
샘플을 배포합니다.
kubectl apply -f samples/helloworld/helloworld.yaml --namespace=default
서비스가 실행 중인지 확인합니다. 새 버전이 출시될 때까지 잠시 기다려야 할 수 있습니다. 포드가 실행 중인 상태로 회전합니다.
kubectl get pods --namespace=default
출력 예시:
NAME READY STATUS RESTARTS AGE helloworld-569d6565f9-lwrrv 1/1 Running 0 17m
테스트 서비스 배포를 삭제합니다. 사용 설정 후 나중에 다시 설치합니다. 사이드카 삽입:
kubectl delete -f samples/helloworld/helloworld.yaml --namespace=default
수동 사이드카 삽입 사용
두 사이드카 삽입 옵션 중 수동 사이드카 삽입이 더 간단하고 간단합니다.
단일 kubectl
명령어로 실행할 수 있습니다.
Edge Microgateway 구성
다음 명령어는 Apigee 조직에 Edge Microgateway를 구성합니다.
프록시 edgemicro-auth
를 배포합니다.
다음 명령어를 실행합니다.
edgemicro configure -o [org] -e [env] -u [username]
각 항목의 의미는 다음과 같습니다.
org
: Edge 조직 이름입니다 (조직 관리자여야 함).env
: 조직의 환경 (예: 테스트 또는 프로덕션)입니다.username
: Apigee 계정과 연결된 이메일 주소입니다.
예
edgemicro configure -o myorg -e test -u jdoe@example.com
출력 (아래 예 참고)은 파일에 저장됩니다.
.$HOME/.edgemicro/org_name-env_name-config.yaml
current nodejs version is v6.9.1 current edgemicro version is 2.5.25 password: file doesn't exist, setting up Give me a minute or two... this can take a while... App edgemicro-auth deployed. checking org for existing KVM KVM already exists in your org configuring host edgemicroservices.apigee.net for region us-west1 saving configuration information to: /Users/jdoe/.edgemicro/myorg-test-config.yaml vault info: -----BEGIN CERTIFICATE----- MIICpDCCAYwCCQCV9eBcO9a5WzANBgkqhkiG9w0BAQsFADAUMRIwEAYDVQQDDAls b2NhbGhvc3QwHhcNMagwODA5MDAzMDEzWhcNMTgwODEwMDAzMDEzWjAUMRIwEAYD VQQDDBlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDh nAHT7JHX/WvWHRFb8FLm53SPIDld5LyPOUfINdEyhSIEeXoOUKg4EPweJPVSC9Vm Hw4ZMtEqWJM/XsQWvLe8ylRJa5wgmzmFCqAsuzs9+rmc9KvJqjpOh2uRTUf7KKfT iXL2UEseprcI5g8zNyqKyEf/ecWIwz3AkkPAZebVTsrdDfIDHvkyhhvlAHZAB9kn GtqP3N8kOlv4KQto9Gr7GYUGUIDugt7gM1F611+RBS+fYRi32GUAq/UQDkhYL8cp oIJiF7UYkk2+9t9CdOCDuIUCvJioHJQd0xvDpkC9f6LvwjwnCwku+4F2Q63+av5I mJoZJQPvW5aP53Qkk+kHAgMBAAEwDKYJKoZIhvcNAQELBQADggEBALyUBolXUFN8 1bf268nR+gS8MOFDTxO1bUz+bKuT/g3K1PuNUJTueT+0L1H2OiZUzazAqwn2sqzN lQuvLg6LjxjlNkqTJGiJvGDcYVq45dv7UyxAZxhqxTxhlQ+Yu5R9pbQnzujezHpH 6gtCoCkSt/QqiJ3YsmsVu5is+HpIJepMt0CyMh5tK9j87hl46QhHklaVfQ3ycMVm /wNPR/pjizg1FDUeq4nj/7DBVbMf9net/BDaZLeSW1HJ1vcsCXIcSZfQd4QymGFn 8ADrND7ydVjwO/s23soPDTy0g4yLIZvky2tpT8d7YahNqSv2n7sXsLxruzcyCoQ4 w+e3Z3F7IKI= -----END CERTIFICATE----- The following credentials are required to start edge micro key: 1a3b2754c7f20614817b86e09895825ecc252d34df6c4be21ae24356f09e6eb4 secret: 16ad2431de73f07f57a6d44048f08d93b63f783bf1f2ac4221182aa7289c7cef edgemicro configuration complete!
Edge Microgateway를 사이드카로 삽입
Edge Microgateway를 사이드카 프록시로 서비스 포드에 수동으로 삽입하려면 다음 명령어를 실행합니다. 명령어를 실행합니다
kubectl apply -f <(edgemicroctl -org=your_org -env=your_env -key=your_key -sec=your_secret -conf=config_file_path -svc=service_deployment_file)
각 항목의 의미는 다음과 같습니다.
your_org
-edgemicro configure
명령어에서 지정한 Apigee 조직입니다.your_env
-edgemicro configure
명령어에서 지정한 환경입니다.your_key
-edgemicro configure
명령어에서 반환된 키입니다.your_secret
-edgemicro configure
명령어에서 반환된 보안 비밀입니다.config_file_path
-edgemicro configure
명령어에서 반환된 Edge Micro 구성 파일의 경로입니다.service_deployment_file
- 해당 포드가 수행될 서비스의 배포 파일 경로입니다. 가져올 수 있습니다 예를 들면samples/helloworld/helloworld.yaml
입니다.
예를 들면 다음과 같습니다.
kubectl apply -f <(edgemicroctl -org=myorg -env=test-key=0e3ecea28a64099410594406b30e54439af5265f8 -sec=e3919250bee37c69cb2e5b41170b488e1c1d -conf=/Users/jdoe/.edgemicro/myorg-test-config.yaml -svc=samples/helloworld/helloworld.yaml)
구성 테스트
서비스 배포를 확인합니다.
kubectl get services -n default
출력 예시:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE helloworld NodePort 10.15.254.163 <none> 8081:32401/TCP 56s kubernetes ClusterIP 10.15.240.1 <none> 443/TCP 41m
이제 Edge Microgateway의 사이드카 배포를 테스트할 준비가 되었습니다. 이동 자세한 단계는 프록시를 테스트하세요.
자동 사이드카 삽입 사용
다음 단계에서는 Kubernetes 클러스터입니다 이 설정을 통해 Edge Microgateway를 사이드카로 삽입할 수 있습니다. GKE로 가져올 수 있습니다
사이드카 인젝터 설치
ConfigMap 설치 Edge Microgateway의 사이드카 삽입을 가능하게 합니다.
kubectl apply -f install/kubernetes/edgemicro-sidecar-injector-configmap-release.yaml
다음 스크립트를 실행하여 webhook 서비스를 설치합니다. 웹훅 서비스는 자동 사이드카 삽입:
./install/kubernetes/webhook-create-signed-cert.sh \ --service edgemicro-sidecar-injector \ --namespace edgemicro-system \ --secret sidecar-injector-certs
웹훅 설치 파일에 CA 번들을 추가합니다. Kubernetes는 api-server는 이 파일을 사용하여 웹훅을 호출합니다.
cat install/kubernetes/edgemicro-sidecar-injector.yaml | \ ./install/kubernetes/webhook-patch-ca-bundle.sh > \ install/kubernetes/edgemicro-sidecar-injector-with-ca-bundle.yaml
Edge Microgateway 사이드카 인젝터 웹훅을 설치합니다.
kubectl apply -f install/kubernetes/edgemicro-sidecar-injector-with-ca-bundle.yaml
출력 예시:
service "edgemicro-sidecar-injector" created serviceaccount "edgemicro-sidecar-injector-service-account" created deployment "edgemicro-sidecar-injector" created mutatingwebhookconfiguration "edgemicro-sidecar-injector" created
Edge Microgateway 사이드카 인젝터 웹훅이 실행 중인지 확인합니다.
kubectl -n edgemicro-system get deployment -ledgemicro=sidecar-injector
출력 예시:
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE edgemicro-sidecar-injector 1 1 1 1 12m
클러스터에서 사이드카 삽입 포드가 실행 중인지 확인합니다. 네임스페이스
edgemicro-system
에는 다음을 포함하여 시스템 서비스가 설치됩니다. 인그레스 컨트롤러, 기본 HTTP 백엔드, 사이드카 인젝터:kubectl get pods -n edgemicro-system
출력 예시:
NAME READY STATUS RESTARTS AGE default-http-backend-55c6c69b88-gfnfd 1/1 Running 0 1h edgemicro-ingress-controller-64444469bf-jhn8b 1/1 Running 3 1h edgemicro-sidecar-injector-7d95698fbf-cq84q 1/1 Running 0 3m
Edge Microgateway 구성 및 삽입
다음 단계에서는 대화형 스크립트를 실행하여 Edge Microgateway를 만듭니다. Kubernetes 네임스페이스입니다 그런 다음 구성을 Kubernetes 클러스터에 추가할 수 있습니다
다음 대화형 스크립트를 실행하고 요청된 매개변수를 제공합니다. 이 명령어는 다음 단계에서 사용할 구성 프로필을 생성합니다.
./install/kubernetes/webhook-edgemicro-patch.sh
입력 매개변수에 대한 자세한 내용은 참조를 확인하세요.
샘플 입력:
Namespace to deploy application [default]:
Enter를 누릅니다.
Authenticate with OAuth Token ("n","Y") [N/y]
n을 입력합니다.
Apigee username [required]:
Apigee 사용자 이름 (이메일 주소)을 입력합니다. 예:
jdoe@google.com
Apigee password [required]:
Apigee 비밀번호를 입력합니다.
Apigee organization [required]:
Apigee 조직 이름을 입력하세요.
Apigee environment [required]:
조직의 환경 이름을 입력합니다. 예: 'test'
Virtual Host [default]:
Enter를 누릅니다.
Is this Private Cloud ("n","y") [N/y]:
퍼블릭 클라우드를 사용하는 경우 n을 입력합니다.
Edgemicro Key. Press Enter to generate:
Enter를 누릅니다.
Edgemicro Secret. Press Enter to generate:
Enter를 누릅니다.
Edgemicro org-env-config.yaml. Press Enter to generate:
Enter를 누릅니다.
출력 예시:
current nodejs version is v6.9.1 current edgemicro version is 2.5.25 config initialized to /Users/jdoe/.edgemicro/default.yaml Configure for Cloud ****************************************************************************************** Config file is Generated in /Users/jdoe/Work/GITHUB/microgateway_2.5.25_Darwin_x86_64/config directory. Please make changes as desired. *****************************************************************************************
Do you agree to proceed("n","y") [N/y]:
y를 입력합니다.
출력 예시:
Configuring Microgateway with key:daacf75dd660d160b801c9117fb1ec0935896615479e39dbbae88be81a2d84 secret:a60fd57c1db9f3a06648173fb541cb9c59188d3b6037a76f490ebf7a6584b0 config:~/.edgemicro/jdoe-test-config.yaml ******************************************************************************************************** kubectl apply -f install/kubernetes/edgemicro-config-namespace-bundle.yaml ********************************************************************************************************
출력의 마지막 줄에 제공된 명령어를 실행합니다. 이
kubectl
명령어 생성된 Edge Microgateway 구성 프로필을 Kubernetes에 삽입합니다.kubectl apply -f install/kubernetes/edgemicro-config-namespace-bundle.yaml
웹훅 삽입 상태를 확인합니다. 현재 이 기능은 사용 설정되어 있지 않습니다.
kubectl get namespace -L edgemicro-injection
출력 예시:
NAME STATUS AGE EDGEMICRO-INJECTION default Active 1d edgemicro-system Active 1d kube-public Active 1d kube-system Active 1d
다음 명령어를 실행하여 웹훅에 웹훅 삽입을 사용 설정합니다.
kubectl label namespace default edgemicro-injection=enabled
웹훅 삽입 상태를 다시 확인하세요. 이제 사용 설정되었습니다.
kubectl get namespace -L edgemicro-injection
출력 예시:
NAME STATUS AGE EDGEMICRO-INJECTION default Active 1d enabled edgemicro-system Active 1d kube-public Active 1d kube-system Active 1d
테스트 서비스 배포
이제 테스트 서비스를 다시 배포합니다. Edge Microgateway가 자동으로 삽입됨 서비스의 포드로 복사됩니다
kubectl apply -f samples/helloworld/helloworld.yaml --namespace=default
Edge Microgateway가 테스트와 함께 포드에 삽입되었는지 확인합니다. 서비스:
kubectl get pods --namespace=default --watch
출력 예시:
NAME READY STATUS RESTARTS AGE
helloworld-6987878fc4-pkw8h 0/2 PodInitializing 0 12s
helloworld-6987878fc4-pkw8h 2/2 Running 0 26s
상태가 Running
로 변경되면 ctrl-c
를 눌러 명령어를 종료합니다.
이제 Edge Microgateway의 자동 사이드카 배포를 테스트할 준비가 되었습니다. 이동 자세한 단계는 프록시를 테스트하세요.
프록시 테스트
사이드카 배포를 사용하면 서비스의 API 프록시가 자동으로 생성됩니다. 해야 할 일 'Edge Microgateway 인식'을 만들 필요가 없음 사용할 수 있습니다
인그레스 IP 주소 가져오기
인그레스의 외부 IP를 사용하여 서비스를 호출할 수 있습니다. 액세스할 수 있습니다
인그레스 컨트롤러의 외부 IP 주소를 가져옵니다.
kubectl get ing -o wide
출력 예시:
NAME HOSTS ADDRESS PORTS AGE gateway * 35.238.13.54 80 1m
인그레스의
EXTERNAL-IP
값을 복사하고 변수로 내보냅니다. 나 는 변수를 수동으로 설정할 수 있습니다.export GATEWAY_IP=external_ip
예를 들면 다음과 같습니다.
export GATEWAY_IP=35.238.249.62
또는 다음 명령어를 사용하여 자동으로 설정할 수 있습니다.
export GATEWAY_IP=$(kubectl describe ing gateway --namespace default | grep "Address" | cut -d ':' -f2 | tr -d "[:space:]")
변수를 내보냈는지 확인합니다. 예를 들면 다음과 같습니다.
echo $GATEWAY_IP
출력 예시:
35.238.249.62
서비스를 호출합니다.
curl $GATEWAY_IP
출력:
{"error":"missing_authorization","error_description":"Missing Authorization header"}
이제 API 제품 및 개발자 앱을 구성하여 누락된 승인 오류를 해결합니다. 유효한 API 키를 가져올 수 있습니다. 승인에 키를 추가하는 경우 헤더를 사용하면 호출이 성공하고 이 오류가 표시되지 않습니다.
Apigee Edge에서 구성요소 만들기
다음으로 Apigee Edge에서 API 제품과 개발자 앱을 만듭니다.
API 제품 만들기
- Apigee Edge에 로그인합니다.
- 측면 탐색 메뉴에서 게시 > API 제품을 선택합니다.
- +API 제품을 클릭합니다. 제품 페이지가 표시됩니다.
다음과 같이 제품 페이지를 작성합니다. 아래에 언급되지 않은 필드의 경우 기본값을 사용할 수 있습니다 안내되기 전까지 저장하지 않습니다.
이름 hello-world-product
표시 이름 Edge Micro hello product
환경 test
경로 섹션에서 + 커스텀 리소스를 클릭합니다.
/
경로를 추가합니다.+ 커스텀 리소스를 다시 클릭하고
/**
경로를 추가합니다.API 프록시 섹션에서 + API 프록시를 클릭하고 edgemicro-auth를 추가합니다.
API 제품을 저장합니다.
개발자 앱 만들기
- 측면 탐색 메뉴에서 앱을 선택합니다.
- + 앱을 클릭합니다. 개발자 앱 세부정보 페이지가 표시됩니다.
다음과 같이 개발자 앱 페이지를 작성합니다. 사용자의 안내가 있을 때까지 저장하지 마세요. 하세요.
이름 hello-world-app
표시 이름 Edge Micro hello app
개발자 드롭다운 메뉴에서 개발자를 선택합니다. '사용자 인증 정보' 섹션에서 + 제품을 클릭하고 방금 만든
hello-world-product
입니다.저장을 클릭합니다.
모든 개발자 앱이 나열된 페이지로 돌아옵니다.
방금 만든 앱
hello-world-app
을 선택합니다.소비자 키 옆에 있는 표시를 클릭합니다.
고객 키 값을 복사합니다. 이 값은 안전한 API 호출에 사용할 API 키
helloworld
서비스잠시만 기다려 주세요. Apigee에서 변경한 내용이 적용되려면 몇 분 정도 걸립니다. Edge를 사용하여 인스턴스에 배포된 Edge Microgateway 인스턴스와 동기화 kube-APIserver입니다
API 호출
구성 변경사항을 마이크로게이트웨이로 가져온 후에는 다음 테스트를 실행합니다.
API 키 없이 API 호출 다음과 같은 오류 메시지가 표시됩니다. 아래:
curl $GATEWAY_IP
예상 출력:
{"error":"missing_authorization","error_description":"Missing Authorization header"}
API를 성공적으로 호출하려면 API 키가 필요합니다.
만든 개발자 앱에서 고객 키를 가져옵니다. 이 값은 테스트 프록시를 호출하는 데 필요한 API 키:
curl -H 'x-api-key:your-edge-api-key' $GATEWAY_IP
예를 들면 다음과 같습니다.
curl -H "x-api-key:DeX2eEesYAdRJ5Gdbo77nT9uUfJZql19" $GATEWAY_IP
출력:
Hello world
'Hello World' 배포된 helloworld 서비스에 의해 반환되는 있습니다 해당 서비스에 대한 호출이 먼저 Edge Microgateway를 통해 전달됨 확인할 수 있습니다 'Hello world' Edge Microgateway를 성공적으로 구성한 것입니다. helloworld 서비스 포드에서 사이드카 프록시로 작동합니다.
다음 단계
자세한 내용은 태스크 섹션을 참조하세요. 커스텀 플러그인 추가, 배포 확장, 구성 변경, 수행할 수 있는 다른 태스크가 있는지 확인하세요.