이 페이지에서는 Google Distributed Cloud (GDC) 에어 갭 어플라이언스 내에서 워크로드와 리소스에 액세스하고 이를 관리하는 방법을 설명합니다. 인증, 관리 API 서버와 Kubernetes 클러스터 모두에 대한 kubeconfig 파일 생성, 세션 비활성 관리 방법을 설명합니다. 이러한 프로세스를 이해하면 프로젝트와 워크로드에 안전하고 안정적으로 액세스할 수 있습니다.
GDC 콘솔 또는 gdcloud CLI를 통해 워크로드에 액세스합니다.
로그인
GDC 콘솔 또는 클러스터에 로그인하려면 다음 단계를 따르세요.
콘솔
새 브라우저 탭에서 다음 URL을 열어 GDC 에어갭 어플라이언스 사용자 인터페이스 (UI)에 액세스합니다.
https://GDC_URL
GDC_URL
을 인프라 운영자 (IO)가 제공하는 GDC에 액세스하는 데 사용하는 도메인 이름으로 바꿉니다. URL을 처음 열면 인프라 운영자 (IO)가 페이지를 구성한 경우 GDC가 ID 공급업체 로그인 페이지로 리디렉션합니다.
예를 들어 `org-1`이라는 조직의 콘솔에 로그인하면 다음 페이지가 표시됩니다.
CLI
액세스 권한이 있는 클러스터에 로그인할 수 있습니다. 모든 클러스터의 CLI 로그인 프로세스는 동일합니다. 클러스터 이름과 관련 kubeconfig
파일만 제공하고 각 클러스터에 별도로 로그인해야 합니다.
로그인하기 전에 다음 사항을 확인하세요.
- gdcloud CLI 바이너리를 다운로드하고 시스템에 설치합니다. 자세한 내용은 gdcloud CLI 다운로드를 참고하세요.
- gdcloud CLI 기본 구성을 설정하고 초기화합니다. 로그인 구성 엔드포인트를 가져오는 데 사용되는 올바른 조직 URL을 설정해야 합니다. 자세한 내용은 gdcloud CLI 설치를 참고하세요.
- 인증 플러그인
gdcloud-k8s-auth-plugin
을 설치합니다. 자세한 내용은 gdcloud CLI 인증을 참고하세요.
클러스터에 로그인하려면 다음 단계를 완료하세요.
gdcloud CLI 인스턴스를 인증하여 로그인합니다. 인증하는 방법에는 두 가지가 있습니다.
표준 브라우저 로그인: 브라우저에서 로그인할 때 이 인증 흐름을 사용합니다.
gdcloud auth login
보조 기기 로그인: 기본 기기에 브라우저가 없는 경우 이 인증 흐름을 사용합니다. 이 흐름은 브라우저 액세스 권한이 없는 기본 기기에서 로그인을 시작하고 브라우저 액세스 권한이 있는 보조 기기에서 로그인을 계속합니다.
브라우저가 없는 기본 기기에서 로그인을 시작합니다.
gdcloud auth login --no-browser
기본 기기의 명령어는 c단계에서 보조 기기에서 실행해야 하는 다른
gdcloud
명령어를 출력합니다.클러스터에 로그인의 1단계를 반복하여 보조 기기에 인증서를 다운로드합니다.
기본 기기에 인쇄된 명령어를 입력하여 보조 기기에서 로그인을 완료합니다(a단계).
이 작업은 구성된 ID 공급자(IdP)에 로그인하기 위해 브라우저를 엽니다. 초기 gcloud CLI 설정 중에 설정한 사용자 및 비밀번호를 제공하여 로그인합니다.
사용자 ID
kubeconfig
파일을 변수로 내보냅니다.export KUBECONFIG=/tmp/admin-kubeconfig-with-user-identity.yaml
사용자 ID로
kubeconfig
파일을 생성합니다.gdcloud clusters get-credentials CLUSTER_NAME
사용자 ID로
kubeconfig
파일이 생성됩니다. 다음 YAML 파일은 예시를 보여줍니다.apiVersion: v1 clusters: - cluster: certificate-authority-data: <REDACTED> server: https://10.200.0.32:443 name: cluster-name contexts: - context: cluster: cluster-name user: cluster-name-anthos-default-user name: cluster-name-cluster-name-anthos-default-user current-context: cluster-name-cluster-name-anthos-default-user kind: Config preferences: {} users: - name: cluster-name-anthos-default-user user: exec: apiVersion: client.authentication.k8s.io/v1 args: - --audience=root-admin command: gdcloud-k8s-auth-plugin env: null installHint: Run 'gdcloud components install gdcloud-k8s-auth-plugin' to use plugin interactiveMode: Never provideClusterInfo: false
클러스터에 액세스할 수 있는지 확인하려면 생성된
kubeconfig
파일로 사용자 ID를 사용하여 로그인합니다.kubectl --kubeconfig /tmp/admin-kubeconfig-with-user-identity.yaml version
로그아웃
GDC 콘솔에서 로그아웃하려면 다음 단계를 따르세요.
콘솔
메뉴 바에서
로그아웃을 클릭합니다.CLI
CLI에서 로그아웃합니다.
gdcloud auth revoke
kubeconfig 파일 수동 생성
KRM API를 직접 호출하여 kubectl CLI로 리소스를 관리하는 경우 관리하는 리소스 유형에 따라 리소스를 호스팅하는 클러스터의 kubeconfig 파일을 생성해야 합니다. 필요한 kubeconfig 파일을 확인하려면 리소스의 문서를 참고하세요.
리소스 유형에 따라 해당 설정을 완료합니다.
관리 API 서버 리소스
Management API 서버의 kubeconfig 파일을 생성하려면 다음 단계를 완료하세요.
MANAGEMENT_API_SERVER
환경 변수를 설정합니다.export MANAGEMENT_API_SERVER="root-admin"
관리 API 서버 kubeconfig 파일을 생성하고 사용자 인증 정보를 검증합니다.
export KUBECONFIG=${HOME}/${MANAGEMENT_API_SERVER:?}-kubeconfig.yaml rm ${KUBECONFIG:?} gdcloud clusters get-credentials ${MANAGEMENT_API_SERVER:?} [[ $(kubectl config current-context) == *${MANAGEMENT_API_SERVER:?}* ]] && echo "Success. Your kubeconfig is at $KUBECONFIG" || echo "Failure"
rm ${KUBECONFIG:?}
명령어는 홈 디렉터리의 기존 kubeconfig 파일을 삭제합니다. 새 kubeconfig 파일을 생성하면 기존 파일이 덮어쓰여집니다. 기존 파일을 덮어쓰거나 삭제하지 않으려면 다른 안전한 위치에 백업하세요.
Kubernetes 클러스터 리소스
다음 단계를 완료하여 베어메탈 Kubernetes 클러스터의 kubeconfig 파일을 생성합니다.
KUBERNETES_CLUSTER
환경 변수를 설정합니다.export KUBERNETES_CLUSTER="root-infra"
Kubernetes 클러스터 kubeconfig 파일을 생성하고 사용자 인증 정보를 검증합니다.
export KUBECONFIG=${HOME}/${KUBERNETES_CLUSTER:?}-kubeconfig.yaml rm ${KUBECONFIG:?} gdcloud clusters get-credentials ${KUBERNETES_CLUSTER:?} [[ $(kubectl config current-context) == *${KUBERNETES_CLUSTER:?}* ]] && echo "Success. Your kubeconfig is at $KUBECONFIG" || echo "Failure"
rm ${KUBECONFIG:?}
명령어는 홈 디렉터리의 기존 kubeconfig 파일을 삭제합니다. 새 kubeconfig 파일을 생성하면 기존 파일이 덮어쓰여집니다. 기존 파일을 덮어쓰거나 삭제하지 않으려면 다른 안전한 위치에 백업하세요.
세션 비활성 로그아웃
세션에서 15분 이상 활동이 없으면 GDC 콘솔과 gdcloud CLI에서 로그아웃됩니다. GDC는 세션 비활성 상태를 열려 있는 세션 중에 커서나 키보드 움직임과 같은 활성 참여가 없는 기간으로 간주합니다. 활성 세션은 사용자 활동이 있는 경우 최대 12시간 동안 지속됩니다.
콘솔
세션 비활성 상태의 경우 GDC 콘솔에서 로그아웃됩니다. GDC 콘솔에서 비활성으로 인해 로그아웃되기 2분 전에 로그아웃을 경고하는 대화상자가 표시됩니다.
활동이 없어 로그아웃된 후 다음 화면이 표시됩니다.
GDC 콘솔에 다시 로그인하려면 ID 공급업체를 선택하고 로그인 사용자 인증 정보를 추가합니다. 모니터링 대시보드와 같은 서비스를 사용하고 있는데 비활성으로 인해 GDC 콘솔에서 로그아웃된 경우 다시 로그인하여 액세스 권한을 얻으세요.
CLI
세션이 비활성 상태이면 gdcloud CLI에서 로그아웃됩니다. gdcloud CLI에서 로그아웃한 후 명령어를 실행하려고 하면 다음과 같은 승인 오류가 표시됩니다.
Error: error when creating kube client: unable to create k8sclient: Unauthorized
gdcloud CLI에 다시 로그인하려면 로그인의 CLI 단계를 따르세요.
kubectl
gdcloud CLI는 세션 비활성 상태가 되면 kubeconfig 파일을 만료합니다. 비활성 상태 후에 kubectl
명령어를 실행하려고 하면 승인 오류가 발생합니다.
error: You must be logged in to the server (Unauthorized)
다시 로그인하고 kubeconfig 파일을 사용하려면 로그인의 CLI 단계를 따르세요. 세션 제한 시간이 초과될 때마다 kubeconfig 파일을 재생성해야 합니다.
로그인 및 신규 사용자 활동 모니터링
로그인과 같은 활동은 감사 로그로 내보내집니다. 감사 로그 보기에 대한 자세한 내용은 감사 로그를 참고하세요.