Google Distributed Cloud (GDC) 에어갭 환경에서는 프로젝트 및 조직의 비용을 추적하기 위해 결제 계정이 필요합니다. 결제 계정을 조직 또는 프로젝트에 연결하지 않으면 리소스와 연결된 비용 데이터가 손실됩니다.
고객에게 서비스 사용량을 청구하려면 조직 내 모든 결제 계정에서 단일 가격표를 사용합니다.
시작하기 전에
조직 IAM 관리자에게 다음 필수 역할을 부여해 달라고 요청하세요. 이러한 역할은 프로젝트 수준 결제의 경우 프로젝트 네임스페이스에, 조직 수준 결제의 경우 플랫폼 네임스페이스에 바인딩됩니다.
- 조직 결제 계정 관리자: - BillingAccount리소스를 생성, 관리, 바인딩합니다. 조직 IAM 관리자에게- organization-billing-account-admin역할을 부여해 달라고 요청하세요.
- 조직 결제 계정 사용자: - BillingAccount리소스를 읽고, 나열하고, 바인딩합니다. 조직 IAM 관리자에게- organization-billing-account-user역할을 부여해 달라고 요청하세요.
- 조직 결제 계정 관리자: - BillingAccountBinding리소스를 읽고, 나열하고, 만들고, 업데이트합니다. 조직 IAM 관리자에게- organization-billing-manager역할을 부여해 달라고 요청하세요.
kubeconfig 파일 가져오기
관리 API 서버에 대해 명령어를 실행하려면 다음 리소스가 있어야 합니다.
- 관리 API 서버의 kubeconfig 파일이 없는 경우 로그인 및 생성합니다. 
- 관리 API 서버의 kubeconfig 파일 경로를 사용하여 이 안내의 - MANAGEMENT_API_SERVER_KUBECONFIG를 바꿉니다.
새 결제 계정 만들기
결제 계정은 name 및 namespace로 고유하게 식별됩니다. 결제 계정을 만들려면 커스텀 리소스를 사용하여 name 및 namespace를 설정하세요.
- YAML 파일을 만들고 - BillingAccount커스텀 리소스와 다음 콘텐츠를 추가합니다.- apiVersion: billing.gdc.goog/v1 kind: BillingAccount metadata: namespace: platform name: BIL_ACCOUNT_NAME spec: displayName: BIL_DISPLAY_NAME paymentSystemConfig: cloudBillingConfig: accountID: "012345-6789AB-CDEF01"- 다음 변수를 바꿉니다. - BIL_ACCOUNT_NAME: 결제 계정의 이름입니다.
예를 들면 test-billing-account입니다.
- BIL_DISPLAY_NAME: 결제 계정 표시 이름입니다.
예를 들면 "Test Billing Account"입니다.
 
- BIL_ACCOUNT_NAME: 결제 계정의 이름입니다.
예를 들면 
- 결제 구성 유형을 확인합니다. Distributed Cloud 결제 계정에는 다음 결제 구성 중 하나가 있어야 합니다. - cloudBillingConfig: 기본 결제 구성입니다. 이 구성은 Cloud Billing 계정 ID를 저장합니다.
- customConfig: 파트너가 조직에 청구할 결제 구성을 저장하는 맞춤 구성입니다.- customConfig는 필수 키- payment-config-type이 있는 키-값 문자열의 사전을 지원합니다.
 - 다음 예는 다양한 결제 구성을 위한 - BillingAccountYAML 파일 스니펫을 보여줍니다.- cloudBillingConfig- spec: paymentSystemConfig: cloudBillingConfig: accountID: CLOUD_BILLING_ACCOUNT_ID- CLOUD_BILLING_ACCOUNT_ID를Google Cloud 청구 계정 ID로 바꿉니다.- customConfig- spec: paymentSystemConfig: customConfig: "payment-config-type": PAYMENT_CONFIG_TYPE- PAYMENT_CONFIG_TYPE을 맞춤 결제 구성에 선택한 결제 구성 유형으로 바꿉니다.- 조직의 - customConfig구성 정보가 없는 경우 다음 세부정보를 입력합니다.- spec: paymentSystemConfig: customConfig: "payment-config-type": "N/A"- 다음 YAML 파일은 - cloudBillingConfig구성이 포함된 완전한- BillingAccount리소스를 보여줍니다.- apiVersion: billing.gdc.goog/v1 kind: BillingAccount metadata: namespace: platform name: test-billing-account spec: displayName: "Test Billing Account" paymentSystemConfig: cloudBillingConfig: accountID: "012345-6789AB-CDEF01"
- YAML 파일을 저장합니다. - kubectlCLI를 실행하여 청구할 특정 조직 또는 프로젝트의 Management API 서버에 리소스를 적용합니다.- kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG apply -f billingaccount.yaml- MANAGEMENT_API_SERVER_KUBECONFIG를 관리 API 서버 kubeconfig 파일로 바꿉니다.
조직 또는 프로젝트를 결제 계정에 연결
이 섹션에서는 조직 또는 프로젝트를 BillingAccount에 연결하는 단계를 설명합니다.
프로젝트 연결
프로젝트를 BillingAccount에 연결하려면 다음 단계를 따르세요.
- 파일에 다음 내용을 추가합니다( - billingaccountbinding.yaml).- billingAccountRef섹션에서- name필드를 연결하려는- BillingAccount의- name필드의 콘텐츠로 채웁니다.
- metadata섹션에서- BillingAccount리소스의 동일한 필드에 있는 콘텐츠로- namespace필드를 채웁니다.
 - 이 예시에서 프로젝트 네임스페이스는 PROJECT_NAME입니다. - apiVersion: billing.gdc.goog/v1 kind: BillingAccountBinding metadata: name: billing namespace: PROJECT_NAME spec: billingAccountRef: name: BIL_ACCOUNT_NAME namespace: platform- PROJECT_NAME을 결제 계정에 바인딩된 프로젝트의 이름으로 바꿉니다.
- 다음 - kubectl명령어를 실행하여- billingaccountbinding.yaml파일을 적용합니다.- kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG apply -f billingaccountbinding.yaml
조직 연결
조직을 BillingAccount에 연결하려면 다음 단계를 따르세요.
- 다음 콘텐츠를 YAML 파일 - billingaccountbinding.yaml에 추가합니다.- billingAccountRef섹션에서 연결하려는- BillingAccount의- name필드에 있는 콘텐츠로- name필드를 채웁니다.
- metadata섹션에서- BillingAccount리소스의 동일한 필드의 콘텐츠로- namespace필드를 채웁니다. 이 예에서 조직 네임스페이스는- platform입니다.
 - apiVersion: billing.gdc.goog/v1 kind: BillingAccountBinding metadata: name: billing namespace: platform spec: billingAccountRef: name: BIL_ACCOUNT_NAME namespace: platform
- 다음 - kubectl명령어를 실행하여- billingaccountbinding.yaml파일을 적용합니다.- kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG apply -f billingaccountbinding.yaml
조직 또는 프로젝트에서 결제 계정 연결 해제
Distributed Cloud에서는 결제 계정을 삭제할 수 없습니다. 결제 구성을 변경해야 하는 경우 BillingAccountBinding를 수정하여 기존 결제 계정에서 조직 또는 프로젝트를 연결 해제해야 합니다. 이 사용 사례의 시나리오에는 다음 예가 포함됩니다.
- 회사 내 회계 규칙에 따라 개발자 및 프로덕션 수준 워크로드와 관련된 요금을 별도의 계정으로 분할해야 합니다.
- 1년 기간의 고객 계약에 요금을 청구하기 위해 결제 계정을 만듭니다. 계약이 만료되면 1년을 초과하는 남은 기간에 대해 요금을 청구해야 합니다.
조직 또는 프로젝트에서 결제 계정을 연결 해제하려면 다음을 수행하세요.
- 프로젝트에 연결할 새 - BillingAccount를 만듭니다. 이 계정은 이전 계정을 대체합니다.
- 프로젝트 또는 - platform네임스페이스에서- BillingAccountBinding리소스 YAML 파일을 찾아 다음 필드를 수정합니다.- billingAccountRef섹션에서- name필드에 새- BillingAccount이름을 입력합니다.
 
다음 예시는 계정 expired-billing-account이 프로젝트 project-one에 연결된 BillingAccountBinding YAML 파일을 보여줍니다.
  apiVersion: billing.gdc.goog/v1
  kind: BillingAccountBinding
  metadata:
    # The name of a BillingAccountBinding will typically always be `billing`.
    name: billing
    # This is the project.
    namespace: project-one
  spec:
    billingAccountRef:
      # This is an example of a BillingAccount that has expired.
      name: expired-billing-account
      namespace: platform
다음 예에서는 new billing account이라는 새 계정을 연결하도록 수정된 이전 예의 BillingAccountBinding YAML 파일을 보여줍니다.
  apiVersion: billing.gdc.goog/v1
  kind: BillingAccountBinding
  metadata:
    name: billing
    # This is the project.
    namespace: project-one
  spec:
    billingAccountRef:
      # This is the example of the new BillingAccount.
      name: new-billing-account
      namespace: platform