클러스터에 구성 적용
클러스터에 Apigee Hybrid를 설치하려면 다음 안내를 따르세요.
- 현재 위치가
hybrid-base-directory/hybrid-files
디렉터리인지 확인합니다. init
명령어를 실행합니다.$APIGEECTL_HOME/apigeectl init -f overrides/overrides.yaml
init
명령어는 Apigee 배포 서비스인 Apigee 배포 컨트롤러, Apigee 허용 웹훅을 설치하고 Apigee 이외의 구성요소인 Istio 및 Cert Manager를 배포합니다.- 배포 상태를 확인하려면 다음 명령어를 사용합니다.
$APIGEECTL_HOME/apigeectl check-ready -f overrides/overrides.yaml
그리고
kubectl get pods -n apigee-system
그리고
kubectl get pods -n istio-system
포드가 준비되면 다음 단계로 이동합니다.
- '테스트 실행' 설치를 수행합니다.
--dry-run=true
플래그를 사용하여apply
명령어를 실행합니다. 테스트 실행을 수행하면 클러스터를 실제로 변경하기 전에 오류를 확인할 수 있습니다.$APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml --dry-run=true
- 오류가 없으면 클러스터에 Apigee 관련 런타임 구성요소를 적용할 수 있습니다.
$APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml
- 배포 상태를 확인하려면 다음 명령어를 사용합니다.
$APIGEECTL_HOME/apigeectl check-ready -f overrides/overrides.yaml
pod가 모두 준비될 때까지 이 단계를 반복합니다. pod가 시작되는 데 몇 분 정도 걸릴 수 있습니다.
/etc/hosts에 Cassandra의 정적 호스트 이름 추가
이 단계에서는 Cassandra에 할당된 워커 노드의 IP 및 호스트 이름을 가져와 /etc/hosts
파일에 추가합니다. 호스트 네트워크를 사용하는 경우 pod는 노드 호스트 이름 및 IP를 사용합니다. 노드 호스트 이름은 DNS에 없으므로 각 Cassandra 워커 노드의 /etc/hosts
에 정적 호스트 이름 항목을 추가해야 합니다.
- 이 명령어를 실행하여 Cassandra 워커 노드를 가져옵니다. 매개변수
apigee-data
는 Cassandra가 할당되는 기본 노드 라벨입니다. 다른 노드 라벨을 사용한 경우 사용한 노드 라벨을 대체합니다. 워커 노드에 라벨을 지정하는 방법을 참조하세요.kubectl get nodes -l apigee.com/apigee-nodepool=apigee-data -o wide
결과 예시:
kubectl get nodes -o wide my-cluster1-844788cc8c-2gx7d NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME my-cluster1-844788cc8c-2gx7d Ready none 19d v1.14.7-gke.24 21.0.129.248 21.0.129.248 Ubuntu 18.04.3 LTS 4.15.0-62-generic docker://17.3.2
- 각 Cassandra 워커 노드의 이전 명령어에 의해 반환된 노드 이름 및 외부 IP를
/etc/hosts
파일에 추가합니다.cat /etc/hosts 127.0.0.1 localhost 21.0.129.248 my-cluster1-844788cc8c-2gx7d
동기화 담당자 액세스 사용 설정
- GCP 서비스 계정을 만들고 이 계정에 Apigee 조직 관리자 역할을 추가합니다. 이 서비스 계정은 이후 단계에서 수행할 API 호출을 인증하는 데 사용됩니다. GCP Console을 사용하면 서비스 계정을 쉽게 만들 수 있습니다. 자세한 내용은 GCP 문서의 서비스 계정 만들기 및 관리를 참조하세요.
- 서비스 계정 키를 시스템에 다운로드합니다. GCP 문서의 서비스 계정 키 만들기의 안내를 따릅니다.
- 다운로드한 서비스 계정 키를 서비스 계정 디렉터리로 이동합니다.
/hybrid-base-directory
/hybrid-files/service-accounts
- 다음 두 명령어를 실행하여 토큰을 가져옵니다.
export GOOGLE_APPLICATION_CREDENTIALS=org-admin-service-account-file
export TOKEN=$(gcloud auth application-default print-access-token)
여기서 org-admin-service-account-file은 Apigee 조직 관리자 역할로 다운로드한 서비스 계정 키에 대한 시스템의 경로입니다.
- setSyncAuthorization API를 호출하여 동기화 담당자에 필요한 권한을 사용 설정합니다.
curl -X POST -H "Authorization: Bearer $TOKEN" \ -H "Content-Type:application/json" \ "https://apigee.googleapis.com/v1/organizations/your_org_name:setSyncAuthorization" \ -d '{"identities":["serviceAccount:synchronizer-manager-service-account-email"]}'
각 항목의 의미는 다음과 같습니다.
your_org_name
: 하이브리드 조직의 이름입니다.synchronizer-manager-service-account-email
: Apigee 동기화 담당자 관리자 역할이 있는 서비스 계정의 이름입니다. 이름은 이메일 주소 형식과 같습니다. 예를 들면apigee-synchronizer@my-project.iam.gserviceaccount.com
입니다.
예를 들면 다음과 같습니다.
curl -X POST -H "Authorization: Bearer $TOKEN" \ -H "Content-Type:application/json" \ "https://apigee.googleapis.com/v1/organizations/my_org:setSyncAuthorization" \ -d '{"identities":["serviceAccount:apigee-synchronizer@my-project.iam.gserviceaccount.com"]}'
- 서비스 계정이 설정되었는지 확인하려면 다음 API를 호출하여 서비스 계정 목록을 가져옵니다.
curl -X POST -H "Authorization: Bearer $TOKEN" \ -H "Content-Type:application/json" \ "https://apigee.googleapis.com/v1/organizations/your_org_name:getSyncAuthorization" \ -d ''
결과는 다음과 유사합니다.
{ "identities":[ "serviceAccount:my-synchronizer-manager-service_account@my_project_id.iam.gserviceaccount.com" ], "etag":"BwWJgyS8I4w=" }
조직에 MART IP 추가
MART 엔드포인트의 IP 주소를 Apigee 조직에 추가해야 합니다. 재정의 파일에서 mart.hostAlias
속성 값을 설정하는 경우 이전에 이 값을 설정합니다.
관리 영역에는 MART를 통해 런타임 영역과 통신할 수 있도록 이 주소가 필요합니다.
조직에 MART IP를 추가하려면 다음 단계를 따르세요.
mart.hostAlias
속성의 재정의 파일에서 이전에 설정한 값을 가져옵니다. MART가 작동하려면 호스트 별칭이 정규화된 도메인 이름이어야 합니다.- 이전에 동기화 담당자 액세스 사용 설정 섹션에서 다운로드한 Apigee 조직 관리자 역할이 있는 서비스 계정 키를 찾습니다.
- 다음 두 명령어를 실행하여 토큰을 가져옵니다.
export GOOGLE_APPLICATION_CREDENTIALS=org-admin-service-account-file
export TOKEN=$(gcloud auth application-default print-access-token)
여기서 org-admin-service-account-file은 Apigee 조직 관리자 역할로 다운로드한 서비스 계정 키에 대한 시스템의 경로입니다.
- 다음 Management API를 호출하여 MART 엔드포인트로 조직을 업데이트합니다.
curl -v -X PUT \ https://apigee.googleapis.com/v1/organizations/your_org_name \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $TOKEN" \ -d '{ "name" : "your_org_name", "properties" : { "property" : [ { "name" : "features.hybrid.enabled", "value" : "true" }, { "name" : "features.mart.server.endpoint", "value" : "https://HOST_ALIAS_DNS" } ] } }'
예를 들면 다음과 같습니다. 도메인 이름에 프리픽스 'https://'를 추가해야 합니다.
curl -v -X PUT \ https://apigee.googleapis.com/v1/organizations/my_organization \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $TOKEN" \ -d '{ "name" : "my_organization", "properties" : { "property" : [ { "name" : "features.hybrid.enabled", "value" : "true" }, { "name" : "features.mart.server.endpoint", "value" : "https://foo-mart.example.com" } ] } }'
재정의 파일 저장
재정의 파일을 저장해야 합니다. 클러스터 구성에 향후 업그레이드, 패치 또는 기타 다른 수정을 수행하려면 이 파일이 필요합니다.